@@ -40,17 +40,20 @@ async def create_new_event(request: Request, session=Depends(get_db)):
40
40
end = datetime .strptime (data ['end_date' ] + ' ' + data ['end_time' ],
41
41
'%Y-%m-%d %H:%M' )
42
42
user = session .query (User ).filter_by (id = 1 ).first ()
43
- user = user if user else create_user (
"u" ,
"p" ,
"[email protected] " ,
session )
43
+ user = user if user else create_user (username = "u" , password = "p" ,
44
+ email = "[email protected] " ,
language = "" ,
45
+ session = session )
44
46
owner_id = user .id
45
47
location_type = data ['location_type' ]
46
48
is_zoom = location_type == 'vc_url'
47
49
location = data ['location' ]
50
+ category_id = data .get ('category_id' )
48
51
49
52
if is_zoom :
50
53
validate_zoom_link (location )
51
54
52
55
event = create_event (session , title , start , end , owner_id , content ,
53
- location )
56
+ location , category_id = category_id )
54
57
return RedirectResponse (router .url_path_for ('eventview' ,
55
58
event_id = event .id ),
56
59
status_code = status .HTTP_302_FOUND )
@@ -74,7 +77,8 @@ async def eventview(request: Request, event_id: int,
74
77
'start' : datetime ,
75
78
'end' : datetime ,
76
79
'content' : (str , type (None )),
77
- 'location' : (str , type (None ))
80
+ 'location' : (str , type (None )),
81
+ 'category_id' : (int , type (None ))
78
82
}
79
83
80
84
@@ -109,14 +113,13 @@ def by_id(db: Session, event_id: int) -> Event:
109
113
110
114
111
115
def is_end_date_before_start_date (
112
- start_date : datetime , end_date : datetime ) -> bool :
116
+ start_date : datetime , end_date : datetime ) -> bool :
113
117
"""Check if the start date is earlier than the end date"""
114
118
115
119
return start_date > end_date
116
120
117
121
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 ]):
120
123
allowed = 1
121
124
try :
122
125
start_date = event .get ('start' , old_event .start )
@@ -127,8 +130,8 @@ def check_change_dates_allowed(
127
130
allowed = 0
128
131
if allowed == 0 :
129
132
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" )
132
135
133
136
134
137
def 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:
163
166
except (AttributeError , SQLAlchemyError ) as e :
164
167
logger .exception (str (e ))
165
168
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" )
168
171
169
172
170
173
def update_event (event_id : int , event : Dict , db : Session
@@ -181,7 +184,10 @@ def update_event(event_id: int, event: Dict, db: Session
181
184
return event_updated
182
185
183
186
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 ):
185
191
"""Creates an event and an association."""
186
192
187
193
event = create_model (
@@ -192,6 +198,7 @@ def create_event(db, title, start, end, owner_id, content=None, location=None):
192
198
content = content ,
193
199
owner_id = owner_id ,
194
200
location = location ,
201
+ category_id = category_id ,
195
202
)
196
203
create_model (
197
204
db , UserEvent ,
@@ -240,7 +247,6 @@ def _delete_event(db: Session, event: Event):
240
247
@router .delete ("/{event_id}" )
241
248
def delete_event (event_id : int ,
242
249
db : Session = Depends (get_db )):
243
-
244
250
# TODO: Check if the user is the owner of the event.
245
251
event = by_id (db , event_id )
246
252
participants = get_participants_emails_by_event (db , event_id )
0 commit comments