11import logging
22from datetime import date , timedelta
3- from typing import Literal
43from itertools import zip_longest
4+ from typing import Literal
55
66from auth_lib .fastapi import UnionAuth
77from fastapi import APIRouter , Depends , Query , status
1111
1212from calendar_backend .exceptions import NotEnoughCriteria , ObjectNotFound
1313from calendar_backend .methods import list_calendar
14- from calendar_backend .models import Event , Group , Lecturer , Room , EventsRooms , EventsGroups , EventsLecturers
14+ from calendar_backend .models import Event , EventsGroups , EventsLecturers , EventsRooms , Group , Lecturer , Room
1515from calendar_backend .routes .models import EventGet
1616from calendar_backend .routes .models .event import (
1717 EventPatch ,
@@ -200,7 +200,6 @@ async def patch_event_by_name(
200200async def patch_event (
201201 id : int , event_inp : EventPatch , _ = Depends (UnionAuth (scopes = ["timetable.event.update" ]))
202202) -> EventGet :
203-
204203 # проверяем, что событие с таким id существует
205204 Events = db .session .query (Event ).filter (Event .id == id ).one_or_none ()
206205 if not Events :
@@ -211,14 +210,16 @@ async def patch_event(
211210 all_rooms = [room .id for room in db .session .query (Room ).all ()]
212211 all_groups = [group .id for group in db .session .query (Group ).all ()]
213212 all_lecturers = [lecturer .id for lecturer in db .session .query (Lecturer ).all ()]
214- # проверяем cуществование заданных в body (room_, group_, lecturer_)*id
215- for r , g , l in zip_longest (event_upd_data .get ("room_id" ), event_upd_data .get ("group_id" ), event_upd_data .get ("lecturer_id" ), fillvalue = None ):
213+ # проверяем cуществование заданных в body (room_, group_, lecturer_)*id
214+ for r , g , l in zip_longest (
215+ event_upd_data .get ("room_id" ), event_upd_data .get ("group_id" ), event_upd_data .get ("lecturer_id" ), fillvalue = None
216+ ):
216217 if r not in all_rooms :
217- raise ObjectNotFound (type = type (Room ), ids = r )
218+ raise ObjectNotFound (type = type (Room ), ids = r )
218219 if g not in all_groups :
219- raise ObjectNotFound (type = type (Group ), ids = g )
220+ raise ObjectNotFound (type = type (Group ), ids = g )
220221 if l not in all_lecturers :
221- raise ObjectNotFound (type = type (Lecturer ), ids = l )
222+ raise ObjectNotFound (type = type (Lecturer ), ids = l )
222223
223224 def add_new_remove_old_ids (dbsession , event_id , artefact : str , event_instance , negotiator_instance ) -> None :
224225 """Вспомогательная фукнция описывающая удаление старых и добавление новых (room_, group_, lecturer_)*id - артефактов"""
@@ -227,16 +228,20 @@ def add_new_remove_old_ids(dbsession, event_id, artefact: str, event_instance, n
227228 # получаем множетсво страрых артефактов
228229 old_artefacts = event_artefacts - set (event_upd_data .get (f"{ artefact } _id" ))
229230 # получаем множество новых артефактов
230- new_artefacts = set (event_upd_data .get (f"{ artefact } _id" )) - event_artefacts
231+ new_artefacts = set (event_upd_data .get (f"{ artefact } _id" )) - event_artefacts
231232 # получаем артефакты к удалению(уникальные старые)
232233 to_remove = old_artefacts - new_artefacts
233234 # получаем артефакты к созданию(уникальные новые)
234235 to_add = new_artefacts - old_artefacts
235236
236237 if to_remove :
237- dbsession .query (negotiator_instance ).filter (negotiator_instance .event_id == event_id , getattr (negotiator_instance , f"{ artefact } _id" ).in_ (to_remove )).delete ()
238+ dbsession .query (negotiator_instance ).filter (
239+ negotiator_instance .event_id == event_id , getattr (negotiator_instance , f"{ artefact } _id" ).in_ (to_remove )
240+ ).delete ()
238241 if to_add :
239- dbsession .bulk_insert_mappings (negotiator_instance , [{"event_id" : f"{ event_id } " , f"{ artefact } _id" : id_to_add } for id_to_add in to_add ])
242+ dbsession .bulk_insert_mappings (
243+ negotiator_instance , [{"event_id" : f"{ event_id } " , f"{ artefact } _id" : id_to_add } for id_to_add in to_add ]
244+ )
240245
241246 add_new_remove_old_ids (db .session , id , "room" , Events , EventsRooms )
242247 add_new_remove_old_ids (db .session , id , "group" , Events , EventsGroups )
0 commit comments