diff --git a/endpoints/booking.get.py b/endpoints/booking.get.py index 0946e37..9a0c541 100644 --- a/endpoints/booking.get.py +++ b/endpoints/booking.get.py @@ -1,14 +1,11 @@ - from fastapi import APIRouter, Depends -# TODO: Import db session, schemas, models as needed +from typing import List +from schemas.booking import BookingSchema +from helpers.booking_helpers import get_all_bookings +from db import Session, get_db router = APIRouter() -@router.get("/booking") # Operates on the base path -async def get_booking( # Function name reflects resource (plural) - # db: Session = Depends(get_db) # Example dependency -): - """Endpoints for booking: Get resource(s)""" - # TODO: Implement logic to fetch booking (e.g., a list or single object) - print(f"Fetching booking") - return [] # Placeholder +@router.get("/booking", response_model=List[BookingSchema]) +def get_bookings(db: Session = Depends(get_db)): + return get_all_bookings(db) \ No newline at end of file diff --git a/endpoints/booking.post.py b/endpoints/booking.post.py index 06ef2a7..d0fab55 100644 --- a/endpoints/booking.post.py +++ b/endpoints/booking.post.py @@ -1,20 +1,19 @@ - from fastapi import APIRouter, Depends, status, HTTPException -# TODO: Import db session, schemas, models as needed -# from pydantic import BaseModel # Example +from sqlalchemy.orm import Session +from core.database import get_db +from schemas.booking import BookingCreate, BookingResponse +from helpers.booking_helpers import create_booking router = APIRouter() -# TODO: Define request body schema if needed -# class booking_Create(BaseModel): -# name: str # Example field - -@router.post("/booking", status_code=status.HTTP_201_CREATED) # Operates on the base path -async def create_booking( - # item: booking_Create, # Example request body - # db: Session = Depends(get_db) # Example dependency +@router.post("/booking", status_code=status.HTTP_201_CREATED, response_model=BookingResponse) +async def create_booking_endpoint( + booking_data: BookingCreate, + db: Session = Depends(get_db) ): - """Endpoints for booking: Create resource""" - # TODO: Implement logic to create a new booking - print(f"Creating new booking") # with data: {item.dict()}") - return {"message": "booking created successfully"} # Placeholder + """Endpoint for creating a new booking resource""" + try: + booking = create_booking(db=db, booking_data=booking_data) + return booking + except Exception as e: + raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e)) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 596e6f3..cdb3d39 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,7 @@ sqlalchemy>=1.4.0 python-dotenv>=0.19.0 bcrypt>=3.2.0 alembic>=1.13.1 +db +jose +passlib +pydantic