from dependency_injector.wiring import Provide, inject from fastapi import APIRouter, Depends, Request from app.dtos.training import FetchTipsDTO from app.middlewares import Authorized, IsAuthenticatedViaBearerToken from app.controllers.abc import ITrainingController controller = "training_controller" training_router = APIRouter() @training_router.post( '/tips', dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] ) @inject async def get_reading_passage( data: FetchTipsDTO, training_controller: ITrainingController = Depends(Provide[controller]) ): return await training_controller.fetch_tips(data) @training_router.post( '/', dependencies=[Depends(Authorized([IsAuthenticatedViaBearerToken]))] ) @inject async def training_content( request: Request, training_controller: ITrainingController = Depends(Provide[controller]) ): data = await request.json() return await training_controller.get_training_content(data)