55from sqlalchemy import ScalarResult , insert , select
66from sqlalchemy .exc import DBAPIError , IntegrityError , NoResultFound
77from sqlalchemy .ext .asyncio import AsyncSession
8- from sqlalchemy .orm import selectinload
98
109from syncmaster .db .models import Group , GroupMemberRole , Queue , User , UserGroup
1110from syncmaster .db .repositories .repository_with_owner import RepositoryWithOwner
1514from syncmaster .exceptions .group import GroupNotFoundError
1615from syncmaster .exceptions .queue import DuplicatedQueueNameError , QueueNotFoundError
1716
18- # TODO: remove HTTP response schemes from repositories, these are different layers
19- from syncmaster .schemas .v1 .queue import UpdateQueueSchema
20-
2117
2218class QueueRepository (RepositoryWithOwner [Queue ]):
2319 def __init__ (self , session : AsyncSession ):
@@ -37,12 +33,7 @@ async def read_by_id(
3733 self ,
3834 queue_id : int ,
3935 ) -> Queue :
40- stmt = (
41- select (Queue )
42- .where (Queue .id == queue_id )
43- .options (selectinload (Queue .transfers ))
44- .options (selectinload (Queue .group ))
45- )
36+ stmt = select (Queue ).where (Queue .id == queue_id )
4637 try :
4738 result : ScalarResult [Queue ] = await self ._session .scalars (stmt )
4839 return result .one ()
@@ -69,16 +60,12 @@ async def paginate(
6960 page_size = page_size ,
7061 )
7162
72- async def update (
73- self ,
74- queue_id : int ,
75- queue_data : UpdateQueueSchema ,
76- ) -> Queue :
63+ async def update (self , queue_id : int , name : str , description : str ) -> Queue :
7764 try :
7865 return await self ._update (
7966 Queue .id == queue_id ,
80- name = queue_data . name ,
81- description = queue_data . description ,
67+ name = name ,
68+ description = description ,
8269 )
8370 except IntegrityError as e :
8471 self ._raise_error (e )
0 commit comments