from fastapi import UploadFile from typing import Dict, Optional from watchfiles import awatch from app.controllers.abc import ILevelController from app.services.abc import ILevelService class LevelController(ILevelController): def __init__(self, level_service: ILevelService): self._service = level_service async def generate_exercises(self, dto): return await self._service.generate_exercises(dto) async def get_level_exam(self): return await self._service.get_level_exam() async def get_level_utas(self): return await self._service.get_level_utas() async def upload_level(self, exercises: UploadFile, solutions: Optional[UploadFile] = None): return await self._service.upload_level(exercises, solutions) async def get_custom_level(self, data: Dict): return await self._service.get_custom_level(data)