31 lines
991 B
Python
31 lines
991 B
Python
# Entity: RouteOptimization
|
|
|
|
from fastapi import APIRouter, Depends, HTTPException, status
|
|
from sqlalchemy.orm import Session
|
|
from typing import List
|
|
from core.database import get_db
|
|
from models.route_optimization import RouteOptimization
|
|
from schemas.route_optimization import RouteOptimizationSchema
|
|
from helpers.route_optimization_helpers import get_optimized_route
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/routeoptimization", status_code=200, response_model=RouteOptimizationSchema)
|
|
async def get_route_optimization(
|
|
start_location: str,
|
|
end_location: str,
|
|
waypoints: List[str],
|
|
db: Session = Depends(get_db)
|
|
):
|
|
optimized_route = get_optimized_route(
|
|
db,
|
|
start_location=start_location,
|
|
end_location=end_location,
|
|
waypoints=waypoints
|
|
)
|
|
if not optimized_route:
|
|
raise HTTPException(
|
|
status_code=status.HTTP_404_NOT_FOUND,
|
|
detail="Could not generate optimized route"
|
|
)
|
|
return optimized_route |