diff --git a/endpoints/ride.get.py b/endpoints/ride.get.py index e69de29..b91d579 100644 --- a/endpoints/ride.get.py +++ b/endpoints/ride.get.py @@ -0,0 +1,28 @@ +from fastapi import APIRouter, Depends, HTTPException, status +from sqlalchemy.orm import Session +from typing import List +from core.database import get_db +from models.ride import Ride +from schemas.ride import RideSchema, RideCreate +from helpers.ride_helpers import get_all_rides, create_ride + +router = APIRouter() + +@router.get("/ride", status_code=200, response_model=List[RideSchema]) +async def get_rides( + db: Session = Depends(get_db) +): + """Get all dispatched rides""" + rides = get_all_rides(db) + return rides + +@router.post("/ride", status_code=status.HTTP_201_CREATED, response_model=RideSchema) +async def dispatch_ride( + ride: RideCreate, + db: Session = Depends(get_db) +): + """Dispatch a new ride""" + new_ride = create_ride(db=db, ride=ride) + if not new_ride: + raise HTTPException(status_code=400, detail="Ride could not be dispatched") + return new_ride \ No newline at end of file