import datetime import logging import os from fastapi import Depends, FastAPI, Request from fastapi.openapi.docs import get_swagger_ui_html from fastapi.openapi.utils import get_openapi # from fastapi.openapi.docs import get_swagger_ui_html # from fastapi.openapi.utils import get_openapi from .routers_v3 import current, players, results, schedules, standings, teams, transactions, battingstats, \ pitchingstats, fieldingstats, draftpicks, draftlist, managers, awards, draftdata, keepers, stratgame, stratplay, \ injuries, decisions, divisions date = f'{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day}' log_level = logging.INFO if os.environ.get('LOG_LEVEL') == 'INFO' else 'WARN' logging.basicConfig( filename=f'logs/database/{date}.log', format='%(asctime)s - sba-database - %(levelname)s - %(message)s', level=log_level ) app = FastAPI( root_path='/api', responses={404: {'description': 'Not found'}}, docs_url='/api/docs', redoc_url='/api/redoc' ) logging.info(f'Starting up now...') app.include_router(current.router) app.include_router(players.router) app.include_router(results.router) app.include_router(schedules.router) app.include_router(teams.router) app.include_router(transactions.router) app.include_router(standings.router) app.include_router(battingstats.router) app.include_router(pitchingstats.router) app.include_router(fieldingstats.router) app.include_router(draftpicks.router) app.include_router(draftlist.router) app.include_router(managers.router) app.include_router(awards.router) app.include_router(draftdata.router) app.include_router(keepers.router) app.include_router(stratgame.router) app.include_router(stratplay.router) app.include_router(injuries.router) app.include_router(decisions.router) app.include_router(divisions.router) logging.info(f'Loaded all routers.') @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='SBa API Docs', version=f'0.1.1', routes=app.routes) # @app.get("/api") # async def root(): # return {"message": "Hello Bigger Applications!"}