17 lines
577 B
Python
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)
|