add priority filter

This commit is contained in:
IluaAir
2025-09-30 22:19:43 +03:00
parent 9decb7591e
commit 88ace64d13
4 changed files with 14 additions and 9 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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
)

View File

@@ -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"),