This commit is contained in:
parent
af6c753e90
commit
2123f55eab
5 changed files with 38 additions and 5 deletions
|
|
@ -19,21 +19,24 @@ services:
|
||||||
build:
|
build:
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
context: .
|
context: .
|
||||||
|
platform: linux/amd64
|
||||||
networks:
|
networks:
|
||||||
- fooder
|
- fooder
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
|
command: "uvicorn fooder.app:app --host 0.0.0.0 --port 8000 --workers 1 --reload"
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
image: registry.domandoman.xyz/fooder/api
|
image: registry.domandoman.xyz/fooder/api
|
||||||
networks:
|
networks:
|
||||||
- fooder
|
- fooder
|
||||||
|
platform: linux/amd64
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
command: "uvicorn fooder.tasks_app:app --host 0.0.0.0 --port 8000 --workers 1"
|
command: "uvicorn fooder.tasks_app:app --host 0.0.0.0 --port 8000 --workers 1 --reload"
|
||||||
|
|
||||||
cron:
|
cron:
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
@ -41,6 +44,7 @@ services:
|
||||||
build:
|
build:
|
||||||
dockerfile: Dockerfile.cron
|
dockerfile: Dockerfile.cron
|
||||||
context: .
|
context: .
|
||||||
|
platform: linux/amd64
|
||||||
networks:
|
networks:
|
||||||
- fooder
|
- fooder
|
||||||
env_file:
|
env_file:
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ from ..model.meal import (
|
||||||
CreateMealFromPresetPayload,
|
CreateMealFromPresetPayload,
|
||||||
CreateMealPayload,
|
CreateMealPayload,
|
||||||
Meal,
|
Meal,
|
||||||
|
RenameMealPayload,
|
||||||
SaveMealPayload,
|
SaveMealPayload,
|
||||||
)
|
)
|
||||||
from ..model.preset import Preset
|
from ..model.preset import Preset
|
||||||
|
|
@ -48,6 +49,17 @@ class SaveMeal(AuthorizedController):
|
||||||
raise HTTPException(status_code=400, detail=e.args[0])
|
raise HTTPException(status_code=400, detail=e.args[0])
|
||||||
|
|
||||||
|
|
||||||
|
class RenameMeal(AuthorizedController):
|
||||||
|
async def call(self, meal_id: int, payload: RenameMealPayload) -> Meal:
|
||||||
|
async with self.async_session.begin() as session:
|
||||||
|
meal = await DBMeal.get_by_id(session, self.user.id, meal_id)
|
||||||
|
if meal is None:
|
||||||
|
raise HTTPException(status_code=404, detail="meal not found")
|
||||||
|
meal.name = payload.name
|
||||||
|
await session.flush()
|
||||||
|
return Meal.from_orm(meal)
|
||||||
|
|
||||||
|
|
||||||
class DeleteMeal(AuthorizedController):
|
class DeleteMeal(AuthorizedController):
|
||||||
async def call(self, meal_id: int) -> None:
|
async def call(self, meal_id: int) -> None:
|
||||||
async with self.async_session.begin() as session:
|
async with self.async_session.begin() as session:
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,6 @@ class CreateEntryPayload(BaseModel):
|
||||||
class UpdateEntryPayload(BaseModel):
|
class UpdateEntryPayload(BaseModel):
|
||||||
"""CreateEntryPayload."""
|
"""CreateEntryPayload."""
|
||||||
|
|
||||||
grams: Optional[float]
|
grams: Optional[float] = None
|
||||||
product_id: Optional[int]
|
product_id: Optional[int] = None
|
||||||
meal_id: Optional[int]
|
meal_id: Optional[int] = None
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,12 @@ class CreateMealPayload(BaseModel):
|
||||||
diary_id: int
|
diary_id: int
|
||||||
|
|
||||||
|
|
||||||
|
class RenameMealPayload(BaseModel):
|
||||||
|
"""RenameMealPayload."""
|
||||||
|
|
||||||
|
name: str
|
||||||
|
|
||||||
|
|
||||||
class SaveMealPayload(BaseModel):
|
class SaveMealPayload(BaseModel):
|
||||||
"""SaveMealPayload."""
|
"""SaveMealPayload."""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
from fastapi import APIRouter, Depends, Request
|
from fastapi import APIRouter, Depends, Request
|
||||||
|
|
||||||
from ..controller.meal import CreateMeal, CreateMealFromPreset, DeleteMeal, SaveMeal
|
from ..controller.meal import CreateMeal, CreateMealFromPreset, DeleteMeal, RenameMeal, SaveMeal
|
||||||
from ..model.meal import (
|
from ..model.meal import (
|
||||||
CreateMealFromPresetPayload,
|
CreateMealFromPresetPayload,
|
||||||
CreateMealPayload,
|
CreateMealPayload,
|
||||||
Meal,
|
Meal,
|
||||||
|
RenameMealPayload,
|
||||||
SaveMealPayload,
|
SaveMealPayload,
|
||||||
)
|
)
|
||||||
from ..model.preset import Preset
|
from ..model.preset import Preset
|
||||||
|
|
@ -31,6 +32,16 @@ async def save_meal(
|
||||||
return await contoller.call(meal_id, data)
|
return await contoller.call(meal_id, data)
|
||||||
|
|
||||||
|
|
||||||
|
@router.patch("/{meal_id}", response_model=Meal)
|
||||||
|
async def rename_meal(
|
||||||
|
request: Request,
|
||||||
|
meal_id: int,
|
||||||
|
data: RenameMealPayload,
|
||||||
|
contoller: RenameMeal = Depends(RenameMeal),
|
||||||
|
):
|
||||||
|
return await contoller.call(meal_id, data)
|
||||||
|
|
||||||
|
|
||||||
@router.delete("/{meal_id}")
|
@router.delete("/{meal_id}")
|
||||||
async def delete_meal(
|
async def delete_meal(
|
||||||
request: Request,
|
request: Request,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue