File tree Expand file tree Collapse file tree 1 file changed +22
-2
lines changed Expand file tree Collapse file tree 1 file changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -75,9 +75,29 @@ async def get_events_by_volunteer(
7575 async def create_registration (
7676 self , registration : CreateRegistrationRequest , volunteer_id : str
7777 ) -> Registration :
78+ event_obj_id = ObjectId (registration .event_id )
79+ volunteer_obj_id = ObjectId (volunteer_id )
80+
81+ existing = await self .registrations .find_one (
82+ {"event_id" : event_obj_id , "volunteer_id" : volunteer_obj_id }
83+ )
84+
85+ if existing :
86+ await self .registrations .update_one (
87+ {"_id" : existing ["_id" ]},
88+ {
89+ "$set" : {
90+ "registration_status" : RegistrationStatus .UPCOMING ,
91+ "registered_at" : datetime .now (),
92+ }
93+ },
94+ )
95+ updated_doc = await self .registrations .find_one ({"_id" : existing ["_id" ]})
96+ return self ._to_registration (updated_doc )
97+
7898 registration_data = {
79- "event_id" : ObjectId ( registration . event_id ) ,
80- "volunteer_id" : ObjectId ( volunteer_id ) ,
99+ "event_id" : event_obj_id ,
100+ "volunteer_id" : volunteer_obj_id ,
81101 "registered_at" : datetime .now (),
82102 "registration_status" : RegistrationStatus .UPCOMING ,
83103 "clocked_in" : False ,
You can’t perform that action at this time.
0 commit comments