mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-05-24 01:12:54 -04:00
rewrite get_all routes to use a pagination pattern to allow for better implementations of search, filter, and sorting on the frontend or by any client without fetching all the data. Additionally we added a CI check for running the Nuxt built to confirm that no TS errors were present. Finally, I had to remove the header support for the Shopping lists as the browser caching based off last_updated header was not allowing it to read recent updates due to how we're handling the updated_at property in the database with nested fields. This will have to be looked at in the future to reimplement. I'm unsure how many other routes have a similar issue. Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
from fastapi import BackgroundTasks, Depends
|
|
|
|
from mealie.routes._base import BaseAdminController, controller
|
|
from mealie.routes._base.routers import UserAPIRouter
|
|
from mealie.schema.response.pagination import PaginationQuery
|
|
from mealie.schema.server.tasks import ServerTask, ServerTaskNames, ServerTaskPagination
|
|
from mealie.services.server_tasks import BackgroundExecutor, test_executor_func
|
|
|
|
router = UserAPIRouter()
|
|
|
|
|
|
@controller(router)
|
|
class AdminServerTasksController(BaseAdminController):
|
|
@router.get("/server-tasks", response_model=ServerTaskPagination)
|
|
def get_all(self, q: PaginationQuery = Depends(PaginationQuery)):
|
|
response = self.repos.server_tasks.page_all(
|
|
pagination=q,
|
|
override=ServerTask,
|
|
)
|
|
|
|
response.set_pagination_guides(router.url_path_for("get_all"), q.dict())
|
|
return response
|
|
|
|
@router.post("/server-tasks", response_model=ServerTask, status_code=201)
|
|
def create_test_tasks(self, bg_tasks: BackgroundTasks):
|
|
bg_executor = BackgroundExecutor(self.group.id, self.repos, bg_tasks)
|
|
return bg_executor.dispatch(ServerTaskNames.default, test_executor_func)
|