Add API endpoint to retrieve all guest gift reservations

Introduced a new route to fetch all guest gift reservations, ensuring API compatibility with GiftPurchase objects. Refactored CRUD functions to optimize data fetching and avoid N+1 queries. Added validation to restrict access to non-public event-related reservations.
This commit is contained in:
2025-03-19 10:16:55 +01:00
parent 79f08a1208
commit fe3f2b0894
2 changed files with 54 additions and 9 deletions

View File

@@ -1048,3 +1048,21 @@ def read_gift_purchases_by_guest(
raise HTTPException(status_code=403, detail="Not enough permissions")
return gift_purchase_crud.get_gift_reservations_by_guest(db, guest_id=guest_id)
@router.get(
"/purchases/guest/all",
response_model=List[GiftPurchase],
operation_id="read_guests_gift_purchases"
)
def read_all_guest_gift_reservations(
*,
db: Session = Depends(get_db),
) -> Any:
"""
Retrieve all guest gift reservations.
"""
reservations = gift_purchase_crud.get_all_guest_gift_reservations(db=db)
if not reservations:
reservations = []
return reservations