Skip to content

Commit 481a507

Browse files
committed
Reregistering now edits the first registration, no more duplicates
1 parent db01d57 commit 481a507

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

app/models/registration.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff 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,

0 commit comments

Comments
 (0)