fooder-api/fooder/controller/diary.py

26 lines
882 B
Python
Raw Permalink Normal View History

2023-04-01 16:19:12 +02:00
from datetime import date
2024-08-04 16:17:16 +02:00
2023-04-01 16:19:12 +02:00
from fastapi import HTTPException
from ..domain.diary import Diary as DBDiary
2024-08-04 16:17:16 +02:00
from ..model.diary import Diary
2023-04-01 16:19:12 +02:00
from .base import AuthorizedController
class GetDiary(AuthorizedController):
async def call(self, date: date) -> Diary:
async with self.async_session() as session:
diary = await DBDiary.get_diary(session, self.user.id, date)
if diary is not None:
return Diary.from_orm(diary)
else:
try:
await DBDiary.create(session, self.user.id, date)
await session.commit()
return Diary.from_orm(
await DBDiary.get_diary(session, self.user.id, date)
)
except AssertionError as e:
raise HTTPException(status_code=400, detail=e.args[0])