add priority filter
This commit is contained in:
@@ -5,7 +5,7 @@ from fastapi import Depends, Query
|
|||||||
from fastapi.exceptions import HTTPException
|
from fastapi.exceptions import HTTPException
|
||||||
from pydantic import BaseModel, model_validator
|
from pydantic import BaseModel, model_validator
|
||||||
|
|
||||||
from src.schemas.tasks import StatusEnum
|
from src.schemas.tasks import PriorityEnum, StatusEnum
|
||||||
|
|
||||||
|
|
||||||
class Date(BaseModel):
|
class Date(BaseModel):
|
||||||
@@ -30,7 +30,11 @@ class Status(BaseModel):
|
|||||||
status: StatusEnum | None = Query(default=None)
|
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
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,9 @@ from fastapi.security import (
|
|||||||
)
|
)
|
||||||
from jwt import InvalidTokenError
|
from jwt import InvalidTokenError
|
||||||
|
|
||||||
from src.api.dependacies.db_dep import sessionDep
|
|
||||||
from src.core.auth_manager import AuthManager
|
from src.core.auth_manager import AuthManager
|
||||||
from src.core.settings import settings
|
from src.core.settings import settings
|
||||||
from src.schemas.auth import TokenData
|
from src.schemas.auth import TokenData
|
||||||
from src.services.users import UserService
|
|
||||||
|
|
||||||
http_bearer = HTTPBearer(auto_error=False)
|
http_bearer = HTTPBearer(auto_error=False)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
from datetime import date
|
from datetime import date
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
from sqlalchemy import func, select
|
from sqlalchemy import func, select
|
||||||
from sqlalchemy.orm import selectinload
|
from sqlalchemy.orm import selectinload
|
||||||
@@ -16,14 +15,17 @@ class UsersRepo(BaseRepo[UsersORM]):
|
|||||||
self,
|
self,
|
||||||
user_id: int,
|
user_id: int,
|
||||||
status: str | None = None,
|
status: str | None = None,
|
||||||
tasks_limit: Optional[int] = None,
|
priority: str | None = None,
|
||||||
tasks_offset: Optional[int] = 0,
|
tasks_limit: int | None = None,
|
||||||
date_to: Optional[date] = None,
|
tasks_offset: int | None = 0,
|
||||||
date_from: Optional[date] = None,
|
date_to: date | None = None,
|
||||||
|
date_from: date | None = None,
|
||||||
) -> UsersORM | None:
|
) -> UsersORM | None:
|
||||||
filters_sq: dict = {"user_id": user_id}
|
filters_sq: dict = {"user_id": user_id}
|
||||||
if status:
|
if status:
|
||||||
filters_sq["status"] = status
|
filters_sq["status"] = status
|
||||||
|
if priority:
|
||||||
|
filters_sq["priority"] = priority
|
||||||
tasks_subquery = self._tasks_subquary(
|
tasks_subquery = self._tasks_subquary(
|
||||||
date_from=date_from, date_to=date_to, **filters_sq
|
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 = await self.session.user.get_one_with_load(
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
status=attrs.get("status"),
|
status=attrs.get("status"),
|
||||||
|
priority=attrs.get("priority"),
|
||||||
tasks_limit=attrs.get("limit"),
|
tasks_limit=attrs.get("limit"),
|
||||||
tasks_offset=tasks_offset,
|
tasks_offset=tasks_offset,
|
||||||
date_from=attrs.get("date_from"),
|
date_from=attrs.get("date_from"),
|
||||||
|
|||||||
Reference in New Issue
Block a user