Skip to content

Commit 1e6c79e

Browse files
committed
pagination
1 parent de7fc15 commit 1e6c79e

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

packages/models-library/src/models_library/rest_pagination.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828

2929
PageOffsetInt: TypeAlias = NonNegativeInt
3030

31+
PageTotalCount: TypeAlias = NonNegativeInt
32+
3133
DEFAULT_NUMBER_OF_ITEMS_PER_PAGE: Final[PageLimitInt] = TypeAdapter(
3234
PageLimitInt
3335
).validate_python(20)
@@ -70,7 +72,7 @@ class PageQueryParameters(RequestParameters):
7072

7173
class PageMetaInfoLimitOffset(BaseModel):
7274
limit: PositiveInt = DEFAULT_NUMBER_OF_ITEMS_PER_PAGE
73-
total: NonNegativeInt
75+
total: PageTotalCount
7476
offset: NonNegativeInt = 0
7577
count: NonNegativeInt
7678

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/catalog/services.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@
1212
)
1313
from models_library.products import ProductName
1414
from models_library.rabbitmq_basic_types import RPCMethodName
15+
from models_library.rest_pagination import PageOffsetInt
1516
from models_library.rpc_pagination import (
1617
DEFAULT_NUMBER_OF_ITEMS_PER_PAGE,
1718
PageLimitInt,
1819
PageRpc,
1920
)
2021
from models_library.services_types import ServiceKey, ServiceVersion
2122
from models_library.users import UserID
22-
from pydantic import NonNegativeInt, TypeAdapter, validate_call
23+
from pydantic import TypeAdapter, validate_call
2324
from servicelib.logging_utils import log_decorator
2425
from servicelib.rabbitmq._constants import RPC_REQUEST_DEFAULT_TIMEOUT_S
2526

@@ -34,7 +35,7 @@ async def list_services_paginated( # pylint: disable=too-many-arguments
3435
product_name: ProductName,
3536
user_id: UserID,
3637
limit: PageLimitInt = DEFAULT_NUMBER_OF_ITEMS_PER_PAGE,
37-
offset: NonNegativeInt = 0,
38+
offset: PageOffsetInt = 0,
3839
) -> PageRpc[LatestServiceGet]:
3940
"""
4041
Raises:
@@ -47,7 +48,7 @@ async def _call(
4748
product_name: ProductName,
4849
user_id: UserID,
4950
limit: PageLimitInt,
50-
offset: NonNegativeInt,
51+
offset: PageOffsetInt,
5152
):
5253
return await rpc_client.request(
5354
CATALOG_RPC_NAMESPACE,

services/catalog/src/simcore_service_catalog/api/rpc/_services.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
ServiceUpdateV2,
1111
)
1212
from models_library.products import ProductName
13+
from models_library.rest_pagination import PageOffsetInt
1314
from models_library.rpc_pagination import DEFAULT_NUMBER_OF_ITEMS_PER_PAGE, PageLimitInt
1415
from models_library.services_types import ServiceKey, ServiceVersion
1516
from models_library.users import UserID
16-
from pydantic import NonNegativeInt, ValidationError, validate_call
17+
from pydantic import ValidationError, validate_call
1718
from pyinstrument import Profiler
1819
from servicelib.logging_utils import log_decorator
1920
from servicelib.rabbitmq import RPCRouter
@@ -62,7 +63,7 @@ async def list_services_paginated(
6263
product_name: ProductName,
6364
user_id: UserID,
6465
limit: PageLimitInt = DEFAULT_NUMBER_OF_ITEMS_PER_PAGE,
65-
offset: NonNegativeInt = 0,
66+
offset: PageOffsetInt = 0,
6667
) -> PageRpcServicesGetV2:
6768
assert app.state.engine # nosec
6869

0 commit comments

Comments
 (0)