@@ -40,17 +40,20 @@ async def create_new_event(request: Request, session=Depends(get_db)):
4040 end = datetime .strptime (data ['end_date' ] + ' ' + data ['end_time' ],
4141 '%Y-%m-%d %H:%M' )
4242 user = session .query (User ).filter_by (id = 1 ).first ()
43- user = user if user else create_user ("u" , "p" , "e@mail.com" , session )
43+ user = user if user else create_user (username = "u" , password = "p" ,
44+ email = "e@mail.com" , language = "" ,
45+ session = session )
4446 owner_id = user .id
4547 location_type = data ['location_type' ]
4648 is_zoom = location_type == 'vc_url'
4749 location = data ['location' ]
50+ category_id = data .get ('category_id' )
4851
4952 if is_zoom :
5053 validate_zoom_link (location )
5154
5255 event = create_event (session , title , start , end , owner_id , content ,
53- location )
56+ location , category_id = category_id )
5457 return RedirectResponse (router .url_path_for ('eventview' ,
5558 event_id = event .id ),
5659 status_code = status .HTTP_302_FOUND )
@@ -74,7 +77,8 @@ async def eventview(request: Request, event_id: int,
7477 'start' : datetime ,
7578 'end' : datetime ,
7679 'content' : (str , type (None )),
77- 'location' : (str , type (None ))
80+ 'location' : (str , type (None )),
81+ 'category_id' : (int , type (None ))
7882}
7983
8084
@@ -109,14 +113,13 @@ def by_id(db: Session, event_id: int) -> Event:
109113
110114
111115def is_end_date_before_start_date (
112- start_date : datetime , end_date : datetime ) -> bool :
116+ start_date : datetime , end_date : datetime ) -> bool :
113117 """Check if the start date is earlier than the end date"""
114118
115119 return start_date > end_date
116120
117121
118- def check_change_dates_allowed (
119- old_event : Event , event : Dict [str , Any ]):
122+ def check_change_dates_allowed (old_event : Event , event : Dict [str , Any ]):
120123 allowed = 1
121124 try :
122125 start_date = event .get ('start' , old_event .start )
@@ -127,8 +130,8 @@ def check_change_dates_allowed(
127130 allowed = 0
128131 if allowed == 0 :
129132 raise HTTPException (
130- status_code = status .HTTP_400_BAD_REQUEST ,
131- detail = "Invalid times" )
133+ status_code = status .HTTP_400_BAD_REQUEST ,
134+ detail = "Invalid times" )
132135
133136
134137def is_fields_types_valid (to_check : Dict [str , Any ], types : Dict [str , Any ]):
@@ -163,8 +166,8 @@ def _update_event(db: Session, event_id: int, event_to_update: Dict) -> Event:
163166 except (AttributeError , SQLAlchemyError ) as e :
164167 logger .exception (str (e ))
165168 raise HTTPException (
166- status_code = status .HTTP_500_INTERNAL_SERVER_ERROR ,
167- detail = "Internal server error" )
169+ status_code = status .HTTP_500_INTERNAL_SERVER_ERROR ,
170+ detail = "Internal server error" )
168171
169172
170173def update_event (event_id : int , event : Dict , db : Session
@@ -181,7 +184,10 @@ def update_event(event_id: int, event: Dict, db: Session
181184 return event_updated
182185
183186
184- def create_event (db , title , start , end , owner_id , content = None , location = None ):
187+ def create_event (db : Session , title : str , start , end , owner_id : int ,
188+ content : str = None ,
189+ location : str = None ,
190+ category_id : int = None ):
185191 """Creates an event and an association."""
186192
187193 event = create_model (
@@ -192,6 +198,7 @@ def create_event(db, title, start, end, owner_id, content=None, location=None):
192198 content = content ,
193199 owner_id = owner_id ,
194200 location = location ,
201+ category_id = category_id ,
195202 )
196203 create_model (
197204 db , UserEvent ,
@@ -240,7 +247,6 @@ def _delete_event(db: Session, event: Event):
240247@router .delete ("/{event_id}" )
241248def delete_event (event_id : int ,
242249 db : Session = Depends (get_db )):
243-
244250 # TODO: Check if the user is the owner of the event.
245251 event = by_id (db , event_id )
246252 participants = get_participants_emails_by_event (db , event_id )
0 commit comments