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
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)
|