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