refactor: Centralize `search` and `items_per_page` query parameters into `CommonParams` and remove redundant definitions from specific schema query classes.

main^2
MrWaradana 3 days ago
parent 85eca71bf8
commit 3a7124386b

@ -34,13 +34,4 @@ class AcquisitionCostDataPagination(Pagination):
class ListQueryParams(CommonParams): class ListQueryParams(CommonParams):
items_per_page: Optional[int] = Field( pass
default=5,
ge=1,
le=1000,
description="Number of items per page"
)
search: Optional[str] = Field(
default=None,
description="Search keyword"
)

@ -170,15 +170,5 @@ class CountRemainingLifeResponse(DefaultBase):
critical: int critical: int
class ListQueryParams(CommonParams): class ListQueryParams(CommonParams):
items_per_page: Optional[int] = Field( pass
default=5,
ge=1,
le=1000,
description="Number of items per page",
alias="itemsPerPage"
)
search: Optional[str] = Field(
default=None,
description="Search keyword"
)

@ -34,14 +34,4 @@ class ManpowerCostPagination(Pagination):
class QueryParams(CommonParams): class QueryParams(CommonParams):
items_per_page: Optional[int] = Field( pass
default=5,
ge=1,
le=1000,
description="Number of items per page",
alias="itemsPerPage",
)
search: Optional[str] = Field(
default=None,
description="Search keyword",
)

@ -3,7 +3,7 @@ from typing import List, Optional
from uuid import UUID from uuid import UUID
from pydantic import BaseModel, Field, model_validator from pydantic import BaseModel, Field, model_validator
from src.models import DefaultBase, Pagination from src.models import CommonParams, DefaultBase, Pagination
from src.auth.service import CurrentUser from src.auth.service import CurrentUser
@ -52,27 +52,5 @@ class MasterDataPagination(Pagination):
items: List[MasterDataRead] = [] items: List[MasterDataRead] = []
class QueryParams(DefaultBase): class QueryParams(CommonParams):
items_per_page: int = Field( pass
5,
ge=1,
alias="items_per_page",
description="Items per page"
)
itemsPerPage: Optional[int] = Field(
None,
ge=1,
description="Alias for items_per_page"
)
search: Optional[str] = Field(
None,
description="Search keyword"
)
@model_validator(mode="before")
@classmethod
def resolve_aliases(cls, data: any) -> any:
if isinstance(data, dict):
if "itemsPerPage" in data and data["itemsPerPage"] is not None:
data.setdefault("items_per_page", data["itemsPerPage"])
return data

@ -45,14 +45,3 @@ class QueryParams(CommonParams):
..., ...,
description="Simulation identifier", description="Simulation identifier",
) )
items_per_page: Optional[int] = Field(
default=5,
ge=1,
le=1000,
description="Items per page",
alias="itemsPerPage",
)
search: Optional[str] = Field(
default=None,
description="Search keyword",
)

@ -106,6 +106,7 @@ class CommonParams(DefaultBase):
items_per_page: int = Field(5, gt=-2, lt=2147483647, alias="items_per_page") items_per_page: int = Field(5, gt=-2, lt=2147483647, alias="items_per_page")
itemsPerPage: Optional[int] = Field(None, description="Alias for items_per_page") itemsPerPage: Optional[int] = Field(None, description="Alias for items_per_page")
query_str: Optional[str] = Field(None, alias="q") query_str: Optional[str] = Field(None, alias="q")
search: Optional[str] = Field(None, description="Search keyword")
filter_spec: Optional[str] = Field(None, alias="filter") filter_spec: Optional[str] = Field(None, alias="filter")
sort_by: List[str] = Field(default_factory=list, alias="sortBy[]") sort_by: List[str] = Field(default_factory=list, alias="sortBy[]")
descending: List[bool] = Field(default_factory=list, alias="descending[]") descending: List[bool] = Field(default_factory=list, alias="descending[]")

@ -120,15 +120,5 @@ class PlantTransactionDataPagination(Pagination):
class ListQueryParams(CommonParams): class ListQueryParams(CommonParams):
items_per_page: Optional[int] = Field( pass
default=5,
ge=1,
le=1000,
description="Number of items per page",
alias="itemsPerPage",
)
search: Optional[str] = Field(
default=None,
description="Search keyword",
)

@ -147,15 +147,4 @@ class ListQueryParams(CommonParams):
..., ...,
description="Simulation identifier", description="Simulation identifier",
) )
items_per_page: Optional[int] = Field(
default=5,
ge=1,
le=1000,
description="Number of items per page",
alias="itemsPerPage",
)
search: Optional[str] = Field(
default=None,
description="Search keyword",
)

@ -31,14 +31,4 @@ class UploadedFileDataPagination(Pagination):
class ListQueryParams(CommonParams): class ListQueryParams(CommonParams):
items_per_page: Optional[int] = Field( pass
default=5,
ge=1,
le=1000,
description="Number of items per page",
alias="itemsPerPage",
)
search: Optional[str] = Field(
default=None,
description="Search keyword",
)

@ -64,15 +64,5 @@ class YeardataPagination(Pagination):
class ListQueryParams(CommonParams): class ListQueryParams(CommonParams):
items_per_page: Optional[int] = Field( pass
default=5,
ge=1,
le=1000,
description="Number of items per page",
alias="itemsPerPage",
)
search: Optional[str] = Field(
default=None,
description="Search keyword",
)

Loading…
Cancel
Save