File tree Expand file tree Collapse file tree 2 files changed +38
-9
lines changed
Expand file tree Collapse file tree 2 files changed +38
-9
lines changed Original file line number Diff line number Diff line change 1+ from config .models import User
2+ from config .dao import BaseDAO
3+
4+
5+ class UserDAO (BaseDAO ):
6+ """
7+ DAO для CRUD пользователя
8+ """
9+ model = User
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ class BaseDAO:
2626 items = ModelDAO.find_all_items_by_args(
2727 session = session,
2828 one_to_many = (Model.tag,),
29+ many_to_many = (Model.users, Model.stations,)
2930 name='model',
3031 )
3132 # Создание сущности
@@ -108,15 +109,34 @@ async def add(cls,
108109 session : AsyncSession ,
109110 ** values ,
110111 ) -> BaseModel :
111- async with session .begin ():
112- instance = cls .model (** values )
113- session .add (instance = instance )
114- try :
115- await session .commit ()
116- except SQLAlchemyError as ex :
117- await session .rollback ()
118- raise ex
119- return instance
112+ instance = cls .model (** values )
113+ session .add (instance = instance )
114+ try :
115+ await session .commit ()
116+ except SQLAlchemyError as ex :
117+ await session .rollback ()
118+ raise ex
119+ return instance
120+
121+ @classmethod
122+ async def update (cls ,
123+ session : AsyncSession ,
124+ instance : BaseModel ,
125+ ** values ,
126+ ) -> BaseModel :
127+ [setattr (instance , name , value )
128+ for name , value
129+ in values .items ()]
130+ await session .commit ()
131+ return instance
132+
133+ @classmethod
134+ async def delete (cls ,
135+ session : AsyncSession ,
136+ instance : BaseModel ,
137+ ) -> None :
138+ await session .delete (instance )
139+ await session .commit ()
120140
121141
122142def struct_options_statment (model : BaseModel ,
You can’t perform that action at this time.
0 commit comments