from typing import Annotated from fastapi import APIRouter, Depends from src.api.dependacies.db_dep import sessionDep from src.api.dependacies.user_dep import ActiveUser, TaskOwnerDep from src.schemas.tasks import TaskADDRequest from src.services.tasks import TaskService from src.services.users import UserService router = APIRouter(prefix="/tasks", tags=["Tasks"]) @router.get("/") async def get_tasks(session: sessionDep, user: ActiveUser): result = await UserService(session).get_user_with_tasks(user.id) return result @router.get("/{id}") async def get_task_id(session: sessionDep, id: int, _: TaskOwnerDep): task = await TaskService(session).get_task(id) return task @router.post("/") async def post_task( task_data: Annotated[TaskADDRequest, Depends()], session: sessionDep, user: ActiveUser, ): result = await TaskService(session).create_task( user_id=user.id, task_data=task_data ) return result @router.delete("/{id}") async def delete_task( session: sessionDep, id: int, _: TaskOwnerDep, ): await TaskService(session).delete_task(id)