Add invitation code validation and auto-generation for guests
Validate uniqueness of invitation codes during guest creation to prevent duplicates. Automatically generate an 8-character code if none is provided, ensuring consistent data handling. Updated tests and schemas to support these changes.
This commit is contained in:
@@ -13,6 +13,14 @@ router = APIRouter()
|
||||
|
||||
@router.post("/", response_model=GuestRead, operation_id="create_guest")
|
||||
def create_guest(guest_in: GuestCreate, db: Session = Depends(get_db)):
|
||||
if guest_in.invitation_code:
|
||||
existing_guest = guest_crud.get_by_invitation_code(db, guest_in.invitation_code)
|
||||
if existing_guest:
|
||||
raise HTTPException(
|
||||
status_code=400, detail="Guest with this invitation code already exists"
|
||||
)
|
||||
else:
|
||||
guest_in.invitation_code = str(uuid.uuid4())[:8]
|
||||
guest = guest_crud.create(db, obj_in=guest_in)
|
||||
return guest
|
||||
|
||||
|
||||
Reference in New Issue
Block a user