mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-01-02 23:21:21 -05:00
Consolidate frontend types (#1245)
This commit is contained in:
committed by
GitHub
parent
6a88a59981
commit
479900e912
@@ -1,25 +1,12 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from mealie.routes._base import BaseAdminController, controller
|
||||
from mealie.schema._mealie import MealieModel
|
||||
from mealie.schema.admin.email import EmailReady, EmailSuccess, EmailTest
|
||||
from mealie.services.email import EmailService
|
||||
|
||||
router = APIRouter(prefix="/email")
|
||||
|
||||
|
||||
class EmailReady(MealieModel):
|
||||
ready: bool
|
||||
|
||||
|
||||
class EmailSuccess(MealieModel):
|
||||
success: bool
|
||||
error: str = None
|
||||
|
||||
|
||||
class EmailTest(MealieModel):
|
||||
email: str
|
||||
|
||||
|
||||
@controller(router)
|
||||
class AdminEmailController(BaseAdminController):
|
||||
@router.get("", response_model=EmailReady)
|
||||
|
||||
@@ -9,7 +9,7 @@ from mealie.routes._base import BaseUserController, controller
|
||||
from mealie.routes._base.mixins import HttpRepo
|
||||
from mealie.schema import mapper
|
||||
from mealie.schema.meal_plan import CreatePlanEntry, ReadPlanEntry, SavePlanEntry, UpdatePlanEntry
|
||||
from mealie.schema.meal_plan.new_meal import CreatRandomEntry
|
||||
from mealie.schema.meal_plan.new_meal import CreateRandomEntry
|
||||
from mealie.schema.meal_plan.plan_rules import PlanRulesDay
|
||||
from mealie.schema.recipe.recipe import Recipe
|
||||
from mealie.schema.response.responses import ErrorResponse
|
||||
@@ -42,7 +42,7 @@ class GroupMealplanController(BaseUserController):
|
||||
return self.repo.get_today(group_id=self.group_id)
|
||||
|
||||
@router.post("/random", response_model=ReadPlanEntry)
|
||||
def create_random_meal(self, data: CreatRandomEntry):
|
||||
def create_random_meal(self, data: CreateRandomEntry):
|
||||
"""
|
||||
create_random_meal is a route that provides the randomized funcitonality for mealplaners.
|
||||
It operates by following the rules setout in the Groups mealplan settings. If not settings
|
||||
|
||||
@@ -7,13 +7,7 @@ from mealie.core.dependencies.dependencies import temporary_zip_path
|
||||
from mealie.core.security import create_file_token
|
||||
from mealie.routes._base import BaseUserController, controller
|
||||
from mealie.schema.group.group_exports import GroupDataExport
|
||||
from mealie.schema.recipe.recipe_bulk_actions import (
|
||||
AssignCategories,
|
||||
AssignTags,
|
||||
BulkActionsResponse,
|
||||
DeleteRecipes,
|
||||
ExportRecipes,
|
||||
)
|
||||
from mealie.schema.recipe.recipe_bulk_actions import AssignCategories, AssignTags, DeleteRecipes, ExportRecipes
|
||||
from mealie.schema.response.responses import SuccessResponse
|
||||
from mealie.services.recipe.recipe_bulk_service import RecipeBulkActionsService
|
||||
|
||||
@@ -26,15 +20,16 @@ class RecipeBulkActionsController(BaseUserController):
|
||||
def service(self) -> RecipeBulkActionsService:
|
||||
return RecipeBulkActionsService(self.repos, self.user, self.group)
|
||||
|
||||
@router.post("/tag", response_model=BulkActionsResponse)
|
||||
# TODO Should these actions return some success response?
|
||||
@router.post("/tag")
|
||||
def bulk_tag_recipes(self, tag_data: AssignTags):
|
||||
self.service.assign_tags(tag_data.recipes, tag_data.tags)
|
||||
|
||||
@router.post("/categorize", response_model=BulkActionsResponse)
|
||||
@router.post("/categorize")
|
||||
def bulk_categorize_recipes(self, assign_cats: AssignCategories):
|
||||
self.service.assign_categories(assign_cats.recipes, assign_cats.categories)
|
||||
|
||||
@router.post("/delete", response_model=BulkActionsResponse)
|
||||
@router.post("/delete")
|
||||
def bulk_delete_recipes(self, delete_recipes: DeleteRecipes):
|
||||
self.service.delete_recipes(delete_recipes.recipes)
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ from mealie.schema.recipe import Recipe, RecipeImageTypes, ScrapeRecipe
|
||||
from mealie.schema.recipe.recipe import CreateRecipe, CreateRecipeByUrlBulk, RecipeSummary
|
||||
from mealie.schema.recipe.recipe_asset import RecipeAsset
|
||||
from mealie.schema.recipe.recipe_scraper import ScrapeRecipeTest
|
||||
from mealie.schema.recipe.request_helpers import RecipeZipTokenResponse, UpdateImageResponse
|
||||
from mealie.schema.response.responses import ErrorResponse
|
||||
from mealie.schema.server.tasks import ServerTaskNames
|
||||
from mealie.services import urls
|
||||
@@ -59,10 +60,6 @@ class RecipeGetAll(GetAll):
|
||||
load_food: bool = False
|
||||
|
||||
|
||||
class UpdateImageResponse(BaseModel):
|
||||
image: str
|
||||
|
||||
|
||||
class FormatResponse(BaseModel):
|
||||
jjson: list[str] = Field(..., alias="json")
|
||||
zip: list[str]
|
||||
@@ -81,10 +78,10 @@ class RecipeExportController(BaseRecipeController):
|
||||
def get_recipe_formats_and_templates(self):
|
||||
return TemplateService().templates
|
||||
|
||||
@router_exports.post("/{slug}/exports")
|
||||
@router_exports.post("/{slug}/exports", response_model=RecipeZipTokenResponse)
|
||||
def get_recipe_zip_token(self, slug: str):
|
||||
"""Generates a recipe zip token to be used to download a recipe as a zip file"""
|
||||
return {"token": create_recipe_slug_token(slug)}
|
||||
return RecipeZipTokenResponse(token=create_recipe_slug_token(slug))
|
||||
|
||||
@router_exports.get("/{slug}/exports", response_class=FileResponse)
|
||||
def get_recipe_as_format(self, slug: str, template_name: str, temp_dir=Depends(temporary_dir)):
|
||||
|
||||
@@ -5,17 +5,17 @@ from fastapi import HTTPException, status
|
||||
from mealie.core.security import create_access_token
|
||||
from mealie.routes._base import BaseUserController, controller
|
||||
from mealie.routes._base.routers import UserAPIRouter
|
||||
from mealie.schema.user import CreateToken, LoingLiveTokenIn, LongLiveTokenInDB
|
||||
from mealie.schema.user import CreateToken, DeleteTokenResponse, LongLiveTokenIn, LongLiveTokenInDB, LongLiveTokenOut
|
||||
|
||||
router = UserAPIRouter(prefix="/users", tags=["Users: Tokens"])
|
||||
|
||||
|
||||
@controller(router)
|
||||
class UserApiTokensController(BaseUserController):
|
||||
@router.post("/api-tokens", status_code=status.HTTP_201_CREATED)
|
||||
@router.post("/api-tokens", status_code=status.HTTP_201_CREATED, response_model=LongLiveTokenOut)
|
||||
def create_api_token(
|
||||
self,
|
||||
token_name: LoingLiveTokenIn,
|
||||
token_name: LongLiveTokenIn,
|
||||
):
|
||||
"""Create api_token in the Database"""
|
||||
|
||||
@@ -33,9 +33,9 @@ class UserApiTokensController(BaseUserController):
|
||||
new_token_in_db = self.repos.api_tokens.create(token_model)
|
||||
|
||||
if new_token_in_db:
|
||||
return {"token": token}
|
||||
return LongLiveTokenOut(token=token)
|
||||
|
||||
@router.delete("/api-tokens/{token_id}")
|
||||
@router.delete("/api-tokens/{token_id}", response_model=DeleteTokenResponse)
|
||||
def delete_api_token(self, token_id: int):
|
||||
"""Delete api_token from the Database"""
|
||||
token: LongLiveTokenInDB = self.repos.api_tokens.get(token_id)
|
||||
@@ -45,6 +45,6 @@ class UserApiTokensController(BaseUserController):
|
||||
|
||||
if token.user.email == self.user.email:
|
||||
deleted_token = self.repos.api_tokens.delete(token_id)
|
||||
return {"token_delete": deleted_token.name}
|
||||
return DeleteTokenResponse(token_delete=deleted_token.name)
|
||||
else:
|
||||
raise HTTPException(status.HTTP_403_FORBIDDEN)
|
||||
|
||||
Reference in New Issue
Block a user