From 53cf29822bf75603aa15e0f9d8302c85e3ed310d Mon Sep 17 00:00:00 2001 From: MrWaradana Date: Thu, 5 Mar 2026 15:24:51 +0700 Subject: [PATCH] refactor: Update `QueryParams` to inherit from `DefaultBase` with an `itemsPerPage` alias and inject it as a dependency in the masterdata router. --- src/masterdata/router.py | 4 ++-- src/masterdata/schema.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/masterdata/router.py b/src/masterdata/router.py index 13d1deb..c0238d9 100644 --- a/src/masterdata/router.py +++ b/src/masterdata/router.py @@ -3,7 +3,7 @@ from fastapi import APIRouter, HTTPException, status, Query from sqlalchemy import Select -from src.manpower_cost.schema import QueryParams +from .schema import QueryParams from .model import MasterData from .schema import ( MasterDataPagination, @@ -25,7 +25,7 @@ router = APIRouter() async def get_masterdatas( db_session: DbSession, common: CommonParameters, - params: Annotated[QueryParams, Query()], + params: Annotated[QueryParams, Depends()], ): """Get all documents.""" # return diff --git a/src/masterdata/schema.py b/src/masterdata/schema.py index b2fe898..7a2d57d 100644 --- a/src/masterdata/schema.py +++ b/src/masterdata/schema.py @@ -52,10 +52,11 @@ class MasterDataPagination(Pagination): items: List[MasterDataRead] = [] -class QueryParams(BaseModel): +class QueryParams(DefaultBase): items_per_page: Optional[int] = Field( 5, ge=1, + alias="itemsPerPage", description="Items per page" ) search: Optional[str] = Field(