diff --git a/fastfood/repository/dish.py b/fastfood/repository/dish.py index 52090b4..7935d49 100644 --- a/fastfood/repository/dish.py +++ b/fastfood/repository/dish.py @@ -4,8 +4,8 @@ from fastapi import Depends from sqlalchemy import delete, select, update from sqlalchemy.ext.asyncio import AsyncSession -from fastfood import models from fastfood.dbase import get_async_session +from fastfood.models import Dish from fastfood.schemas import Dish_db @@ -13,20 +13,20 @@ class DishRepository: def __init__(self, session: AsyncSession = Depends(get_async_session)): self.db = session - async def get_dishes(self, menu_id: UUID, submenu_id: UUID): - query = select(models.Dish).where( - models.Dish.parent_submenu == submenu_id, + async def get_dishes(self, menu_id: UUID, submenu_id: UUID) -> list[Dish]: + query = select(Dish).where( + Dish.parent_submenu == submenu_id, ) dishes = await self.db.execute(query) - return dishes.scalars().all() + return [x for x in dishes.scalars().all()] async def create_dish_item( self, menu_id: UUID, submenu_id: UUID, dish_data: Dish_db, - ): - new_dish = models.Dish(**dish_data.model_dump()) + ) -> Dish: + new_dish = Dish(**dish_data.model_dump()) new_dish.parent_submenu = submenu_id self.db.add(new_dish) await self.db.commit() @@ -38,8 +38,8 @@ class DishRepository: menu_id: UUID, submenu_id: UUID, dish_id: UUID, - ): - query = select(models.Dish).where(models.Dish.id == dish_id) + ) -> Dish | None: + query = select(Dish).where(Dish.id == dish_id) submenu = await self.db.execute(query) return submenu.scalars().one_or_none() @@ -49,15 +49,11 @@ class DishRepository: submenu_id: UUID, dish_id: UUID, dish_data: Dish_db, - ): - query = ( - update(models.Dish) - .where(models.Dish.id == dish_id) - .values(**dish_data.model_dump()) - ) + ) -> Dish: + query = update(Dish).where(Dish.id == dish_id).values(**dish_data.model_dump()) await self.db.execute(query) await self.db.commit() - qr = select(models.Dish).where(models.Dish.id == dish_id) + qr = select(Dish).where(Dish.id == dish_id) updated_submenu = await self.db.execute(qr) return updated_submenu.scalars().one() @@ -66,7 +62,8 @@ class DishRepository: menu_id: UUID, submenu_id: UUID, dish_id: UUID, - ): - query = delete(models.Dish).where(models.Dish.id == dish_id) + ) -> int: + query = delete(Dish).where(Dish.id == dish_id) await self.db.execute(query) await self.db.commit() + return 200 diff --git a/fastfood/service/dish.py b/fastfood/service/dish.py index d0c834b..fc7b648 100644 --- a/fastfood/service/dish.py +++ b/fastfood/service/dish.py @@ -22,12 +22,14 @@ class DishService: async def read_dishes(self, menu_id: UUID, submenu_id: UUID): data = await self.dish_repo.get_dishes(menu_id, submenu_id) + if data: + print(type(data[0])) response = [] for row in data: dish = row.__dict__ dish['price'] = str(dish['price']) response.append(dish) - return data + return response async def create_dish( self,