26 lines
897 B
Python
26 lines
897 B
Python
from fooder.context import Context
|
|
from fooder.controller.base import ModelController
|
|
from fooder.domain import Meal
|
|
from fooder.model.meal import MealCreateModel, MealUpdateModel
|
|
|
|
|
|
class MealController(ModelController[Meal]):
|
|
@classmethod
|
|
async def create(
|
|
cls, ctx: Context, diary_id: int, data: MealCreateModel
|
|
) -> "MealController":
|
|
order = (
|
|
data.order
|
|
if data.order is not None
|
|
else await ctx.repo.meal.next_order(diary_id)
|
|
)
|
|
obj = Meal(name=data.name, order=order, diary_id=diary_id)
|
|
await ctx.repo.meal.create(obj)
|
|
return cls(ctx, obj)
|
|
|
|
async def update(self, data: MealUpdateModel) -> None:
|
|
if data.name is not None:
|
|
self.obj.name = data.name
|
|
if data.order is not None:
|
|
self.obj.order = data.order
|
|
await self.ctx.repo.meal.update(self.obj)
|