1+ from importlib import import_module
2+
13import sentry_sdk
24from fastapi import APIRouter , FastAPI
35from fastapi .routing import APIRoute
46from starlette .middleware .cors import CORSMiddleware
57
6- from app .auth import router as auth_router
78from app .config import settings
8- from app .items import router as items_router
9- from app .private import router as private_router
10- from app .users import router as users_router
11- from app .utils import router as utils_router
9+ from app .constants import APP_PATH
1210
1311
1412def custom_generate_unique_id (route : APIRoute ) -> str :
@@ -34,13 +32,17 @@ def custom_generate_unique_id(route: APIRoute) -> str:
3432 allow_headers = ["*" ],
3533 )
3634
35+
3736api_router = APIRouter ()
38- api_router .include_router (auth_router .router )
39- api_router .include_router (users_router .router )
40- api_router .include_router (utils_router .router )
41- api_router .include_router (items_router .router )
4237
43- if settings .ENVIRONMENT == "local" :
44- api_router .include_router (private_router .router )
38+ for model_files in APP_PATH .glob ("*/router.py" ):
39+ module_name = model_files .parent .name
40+ router = import_module (f"app.{ module_name } .router" ).router
41+
42+ if module_name == "private" :
43+ if settings .ENVIRONMENT == "local" :
44+ api_router .include_router (router )
45+ else :
46+ api_router .include_router (router )
4547
4648app .include_router (api_router , prefix = settings .API_V1_STR )
0 commit comments