File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -52,6 +52,15 @@ async def get_events_for_this_year_month(
5252 return events
5353
5454
55+ async def get_event_by_eid (
56+ db_session : AsyncSession ,
57+ eid : int
58+ ) -> EventDB | None :
59+ return (await db_session .execute (
60+ select (EventDB ).where (EventDB .eid == eid )
61+ )).scalar_one_or_none ()
62+
63+
5564async def create_event (
5665 db_session : AsyncSession ,
5766 info : EventDB
Original file line number Diff line number Diff line change @@ -94,6 +94,39 @@ async def create_event(
9494 return new_event
9595
9696
97+ @router .patch (
98+ "/{eid}" ,
99+ description = "Update an Event detail" ,
100+ response_model = Event ,
101+ responses = {
102+ 404 :{"description" : "Event doesn't exist." }
103+ },
104+ operation_id = "update_event"
105+ )
106+ async def update_event (
107+ db_session : database .DBSession ,
108+ eid : int ,
109+ body : EventUpdate
110+ ):
111+ event_info = await event .crud .get_event_by_eid (db_session , eid )
112+
113+ if event_info is None :
114+ raise HTTPException (
115+ status_code = status .HTTP_404_NOT_FOUND ,
116+ detail = "Event doesn't exist."
117+ )
118+
119+ updated_event = body .model_dump (exclude_unset = True )
120+ for key , value in updated_event .items ():
121+ setattr (event_info , key , value )
122+
123+ await db_session .commit ()
124+ await db_session .refresh (event_info )
125+
126+ return event_info
127+
128+
129+
97130@router .delete (
98131 "/{eid}" ,
99132 description = "Delete an event" ,
You can’t perform that action at this time.
0 commit comments