You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.5 KiB
Python

from typing import List, Optional
from fastapi import APIRouter, Depends
from fastapi.responses import JSONResponse
from pydantic import BaseModel
from src.aeros_project.router import router as aeros_project_router
from src.aeros_simulation.router import router as aeros_simulation_router
from src.auth.service import JWTBearer
from src.dashboard_model.router import router as dashboard_model_router
from src.aeros_equipment.router import router as aeros_equipment_router
class ErrorMessage(BaseModel):
msg: str
class ErrorResponse(BaseModel):
detail: Optional[List[ErrorMessage]]
api_router = APIRouter(
default_response_class=JSONResponse,
responses={
400: {"model": ErrorResponse},
401: {"model": ErrorResponse},
403: {"model": ErrorResponse},
404: {"model": ErrorResponse},
500: {"model": ErrorResponse},
},
)
@api_router.get("/healthcheck", include_in_schema=False)
def healthcheck():
return {"status": "ok"}
authenticated_api_router = APIRouter(
dependencies=[Depends(JWTBearer())],
)
authenticated_api_router.include_router(
dashboard_model_router, prefix="/dashboard_model"
)
aeros_routes = APIRouter(prefix="/aeros")
aeros_routes.include_router(aeros_simulation_router, prefix="/simulation")
aeros_routes.include_router(aeros_project_router, prefix="/project")
aeros_routes.include_router(aeros_equipment_router, prefix="/equipment")
authenticated_api_router.include_router(aeros_routes)
api_router.include_router(authenticated_api_router)