diff --git a/src/api/dependacies/task_dep.py b/src/api/dependacies/task_dep.py index cd070cd..de56b78 100644 --- a/src/api/dependacies/task_dep.py +++ b/src/api/dependacies/task_dep.py @@ -1,12 +1,27 @@ +from enum import Enum from typing import Annotated from fastapi import Depends, Query from pydantic import BaseModel +class StatEnum(str, Enum): + open = "open" + closed = "closed" + in_progress = "in_progress" + todo = "todo" + + class Pagination(BaseModel): page: int | None = Query(default=0, ge=0) limit: int | None = Query(default=30, ge=0, le=50) -PaginationTasks = Annotated[Pagination, Depends()] +PaginationTasksDep = Annotated[Pagination, Depends()] + + +class Status(BaseModel): + status: StatEnum | None = Query(default=None) + + +StatusTaskDep = Annotated[Status, Depends()] \ No newline at end of file diff --git a/src/api/v1/tasks.py b/src/api/v1/tasks.py index e9fbd46..0e050fe 100644 --- a/src/api/v1/tasks.py +++ b/src/api/v1/tasks.py @@ -3,7 +3,7 @@ from typing import Annotated from fastapi import APIRouter, Depends from src.api.dependacies.db_dep import sessionDep -from src.api.dependacies.task_dep import PaginationTasks +from src.api.dependacies.task_dep import PaginationTasksDep, StatusTaskDep from src.api.dependacies.user_dep import ActiveUser, TaskOwnerDep from src.schemas.tasks import TaskADDRequest from src.services.tasks import TaskService @@ -13,7 +13,7 @@ router = APIRouter(prefix="/tasks", tags=["Tasks"]) @router.get("/") -async def get_tasks(session: sessionDep, user: ActiveUser, page: PaginationTasks): +async def get_tasks(session: sessionDep, user: ActiveUser, page: PaginationTasksDep, status: StatusTaskDep): result = await UserService(session).get_user_with_tasks(user.id) return result