fooder-api/fooder/controller/entry.py

19 lines
704 B
Python

from fooder.context import Context
from fooder.controller.base import ModelController
from fooder.domain import Entry
from fooder.model.entry import EntryCreateModel, EntryUpdateModel
class EntryController(ModelController[Entry]):
@classmethod
async def create(
cls, ctx: Context, meal_id: int, data: EntryCreateModel
) -> "EntryController":
obj = Entry(grams=data.grams, product_id=data.product_id, meal_id=meal_id)
await ctx.repo.entry.create(obj)
return cls(ctx, obj)
async def update(self, data: EntryUpdateModel) -> None:
if data.grams is not None:
self.obj.grams = data.grams
await self.ctx.repo.entry.update(self.obj)