fooder-api/fooder/repository/entry.py

17 lines
577 B
Python

from sqlalchemy import select
from fooder.domain import Entry
from fooder.domain.diary import Diary
from fooder.domain.meal import Meal
from fooder.repository.base import RepositoryBase
class EntryRepository(RepositoryBase[Entry]):
async def get_by_id_and_user(self, entry_id: int, user_id: int) -> Entry:
stmt = (
select(Entry)
.join(Meal, Entry.meal_id == Meal.id)
.join(Diary, Meal.diary_id == Diary.id)
.where(Entry.id == entry_id, Diary.user_id == user_id)
)
return await self._get(stmt=stmt)