mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-13 03:13:12 -05:00
feat: re-write get all routes to use pagination (#1424)
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>
This commit is contained in:
@@ -12,6 +12,7 @@ from slugify import slugify
|
||||
from mealie.core.config import get_app_dirs
|
||||
from mealie.db.models.recipe.recipe import RecipeModel
|
||||
from mealie.schema._mealie import MealieModel
|
||||
from mealie.schema.response.pagination import PaginationBase, PaginationQuery
|
||||
|
||||
from .recipe_asset import RecipeAsset
|
||||
from .recipe_comments import RecipeCommentOut
|
||||
@@ -32,15 +33,27 @@ class RecipeTag(MealieModel):
|
||||
orm_mode = True
|
||||
|
||||
|
||||
class RecipeTagPagination(PaginationBase):
|
||||
items: list[RecipeTag]
|
||||
|
||||
|
||||
class RecipeCategory(RecipeTag):
|
||||
pass
|
||||
|
||||
|
||||
class RecipeCategoryPagination(PaginationBase):
|
||||
items: list[RecipeCategory]
|
||||
|
||||
|
||||
class RecipeTool(RecipeTag):
|
||||
id: UUID4
|
||||
on_hand: bool = False
|
||||
|
||||
|
||||
class RecipeToolPagination(PaginationBase):
|
||||
items: list[RecipeTool]
|
||||
|
||||
|
||||
class CreateRecipeBulk(BaseModel):
|
||||
url: str
|
||||
categories: list[RecipeCategory] = None
|
||||
@@ -114,6 +127,14 @@ class RecipeSummary(MealieModel):
|
||||
return user_id
|
||||
|
||||
|
||||
class RecipePaginationQuery(PaginationQuery):
|
||||
load_food: bool = False
|
||||
|
||||
|
||||
class RecipePagination(PaginationBase):
|
||||
items: list[RecipeSummary]
|
||||
|
||||
|
||||
class Recipe(RecipeSummary):
|
||||
recipe_ingredient: list[RecipeIngredient] = []
|
||||
recipe_instructions: Optional[list[RecipeStep]] = []
|
||||
|
||||
Reference in New Issue
Block a user