From 88ace64d13a7a05b4a26617ef87176e33669e982 Mon Sep 17 00:00:00 2001 From: IluaAir Date: Tue, 30 Sep 2025 22:19:43 +0300 Subject: [PATCH] add priority filter --- src/api/dependacies/task_dep.py | 8 ++++++-- src/api/dependacies/user_dep.py | 2 -- src/repository/users.py | 12 +++++++----- src/services/users.py | 1 + 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/api/dependacies/task_dep.py b/src/api/dependacies/task_dep.py index 64212b7..30b4c7e 100644 --- a/src/api/dependacies/task_dep.py +++ b/src/api/dependacies/task_dep.py @@ -5,7 +5,7 @@ from fastapi import Depends, Query from fastapi.exceptions import HTTPException from pydantic import BaseModel, model_validator -from src.schemas.tasks import StatusEnum +from src.schemas.tasks import PriorityEnum, StatusEnum class Date(BaseModel): @@ -30,7 +30,11 @@ class Status(BaseModel): status: StatusEnum | None = Query(default=None) -class Filters(Date, Status, Page): +class Priority(BaseModel): + priority: PriorityEnum | None = Query(default=None) + + +class Filters(Date, Status, Priority, Page): pass diff --git a/src/api/dependacies/user_dep.py b/src/api/dependacies/user_dep.py index f3a89d5..bc58149 100644 --- a/src/api/dependacies/user_dep.py +++ b/src/api/dependacies/user_dep.py @@ -8,11 +8,9 @@ from fastapi.security import ( ) from jwt import InvalidTokenError -from src.api.dependacies.db_dep import sessionDep from src.core.auth_manager import AuthManager from src.core.settings import settings from src.schemas.auth import TokenData -from src.services.users import UserService http_bearer = HTTPBearer(auto_error=False) diff --git a/src/repository/users.py b/src/repository/users.py index 6d87602..d258599 100644 --- a/src/repository/users.py +++ b/src/repository/users.py @@ -1,5 +1,4 @@ from datetime import date -from typing import Optional from sqlalchemy import func, select from sqlalchemy.orm import selectinload @@ -16,14 +15,17 @@ class UsersRepo(BaseRepo[UsersORM]): self, user_id: int, status: str | None = None, - tasks_limit: Optional[int] = None, - tasks_offset: Optional[int] = 0, - date_to: Optional[date] = None, - date_from: Optional[date] = None, + priority: str | None = None, + tasks_limit: int | None = None, + tasks_offset: int | None = 0, + date_to: date | None = None, + date_from: date | None = None, ) -> UsersORM | None: filters_sq: dict = {"user_id": user_id} if status: filters_sq["status"] = status + if priority: + filters_sq["priority"] = priority tasks_subquery = self._tasks_subquary( date_from=date_from, date_to=date_to, **filters_sq ) diff --git a/src/services/users.py b/src/services/users.py index ba7b1e0..d906e91 100644 --- a/src/services/users.py +++ b/src/services/users.py @@ -47,6 +47,7 @@ class UserService(BaseService): user = await self.session.user.get_one_with_load( user_id=user_id, status=attrs.get("status"), + priority=attrs.get("priority"), tasks_limit=attrs.get("limit"), tasks_offset=tasks_offset, date_from=attrs.get("date_from"),