28 lines
900 B
Python
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 |