21 lines
801 B
Python
21 lines
801 B
Python
from fooder.context import Context
|
|
from fooder.controller.base import ModelController
|
|
from fooder.domain import PresetEntry
|
|
from fooder.domain.preset import Preset
|
|
from fooder.model.entry import EntryCreateModel, EntryUpdateModel
|
|
|
|
|
|
class PresetEntryController(ModelController[PresetEntry]):
|
|
@classmethod
|
|
async def create(
|
|
cls, ctx: Context, preset: Preset, data: EntryCreateModel
|
|
) -> "PresetEntryController":
|
|
obj = PresetEntry(grams=data.grams, product_id=data.product_id)
|
|
obj.preset = preset
|
|
await ctx.repo.preset_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.preset_entry.update(self.obj)
|