28 lines
900 B
Python

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