add priority filter
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user