from typing import List, Optional from fastapi import APIRouter, Depends from schemas.route import RouteCreate, RouteSchema from helpers.route_helpers import create_route, get_routes, validate_unique_route from sqlalchemy.orm import Session from core.database import get_db router = APIRouter() @router.post("/routing", status_code=201, response_model=RouteSchema) async def create_new_route( route: RouteCreate, db: Session = Depends(get_db) ): if not validate_unique_route(db, route): return {"detail": "Route with the same name or path already exists"} new_route = create_route(db, route) return new_route @router.get("/routing", status_code=200, response_model=List[RouteSchema]) async def get_all_routes( name: Optional[str] = None, path: Optional[str] = None, db: Session = Depends(get_db) ): routes = get_routes(db, name, path) return routes