import os from fastapi import FastAPI, Request from fastapi.openapi.docs import get_swagger_ui_html from fastapi.openapi.utils import get_openapi # from fastapi.staticfiles import StaticFiles # from fastapi.templating import Jinja2Templates from .routers_v2 import ( current, awards, teams, rarity, cardsets, players, packtypes, packs, cards, events, results, rewards, decisions, batstats, pitstats, notifications, paperdex, gamerewards, gauntletrewards, gauntletruns, battingcards, battingcardratings, pitchingcards, pitchingcardratings, cardpositions, scouting, mlbplayers, stratgame, stratplays) app = FastAPI( root_path='/api', responses={404: {'description': 'Not found'}}, docs_url='/api/docs', redoc_url='/api/redoc' ) # app.mount("/static", StaticFiles(directory="storage/static"), name="static") # templates = Jinja2Templates(directory=os.path.dirname(os.path.abspath(__file__))) app.include_router(current.router) app.include_router(awards.router) app.include_router(teams.router) app.include_router(rarity.router) app.include_router(cardsets.router) app.include_router(players.router) app.include_router(packtypes.router) app.include_router(packs.router) app.include_router(cards.router) app.include_router(events.router) app.include_router(results.router) app.include_router(rewards.router) app.include_router(batstats.router) app.include_router(pitstats.router) app.include_router(notifications.router) app.include_router(paperdex.router) app.include_router(gamerewards.router) app.include_router(gauntletrewards.router) app.include_router(gauntletruns.router) app.include_router(battingcards.router) app.include_router(battingcardratings.router) app.include_router(pitchingcards.router) app.include_router(pitchingcardratings.router) app.include_router(cardpositions.router) app.include_router(scouting.router) app.include_router(mlbplayers.router) app.include_router(stratgame.router) app.include_router(stratplays.router) app.include_router(decisions.router) @app.get("/api/docs", include_in_schema=False) async def get_docs(req: Request): print(req.scope) return get_swagger_ui_html(openapi_url=req.scope.get('root_path')+'/openapi.json', title='Swagger') @app.get("/api/openapi.json", include_in_schema=False) async def openapi(): return get_openapi(title='Paper Dynasty API', version=f'0.1.1', routes=app.routes)