Skip to content

Commit bbfe7e6

Browse files
committed
udpates api
1 parent 1e6c79e commit bbfe7e6

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

services/api-server/src/simcore_service_api_server/services_rpc/catalog.py

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from models_library.rest_pagination import (
44
DEFAULT_NUMBER_OF_ITEMS_PER_PAGE,
55
PageLimitInt,
6+
PageMetaInfoLimitOffset,
67
PageOffsetInt,
78
)
89
from models_library.users import UserID
@@ -15,6 +16,12 @@
1516
_FAKE2: list[SolverPort] = [
1617
SolverPort.model_validate(SolverPort.model_json_schema()["example"]),
1718
]
19+
# from models_library.api_schemas_catalog.services import (
20+
# LatestServiceGet,
21+
# MyServiceGet,
22+
# ServiceGetV2,
23+
# ServiceUpdateV2,
24+
# )
1825

1926

2027
async def list_latest_releases(
@@ -23,11 +30,15 @@ async def list_latest_releases(
2330
user_id: UserID,
2431
offset: PageOffsetInt = 0,
2532
limit: PageLimitInt = DEFAULT_NUMBER_OF_ITEMS_PER_PAGE,
26-
) -> list[Solver]:
33+
) -> tuple[list[Solver], PageMetaInfoLimitOffset]:
2734
assert product_name # nosec
2835
assert user_id # nosec
2936

30-
return _FAKE[offset : offset + limit]
37+
data = _FAKE[offset : offset + limit]
38+
meta = PageMetaInfoLimitOffset(
39+
limit=limit, offset=offset, total=len(_FAKE), count=len(data)
40+
)
41+
return data, meta
3142

3243

3344
async def list_solver_releases(
@@ -37,13 +48,19 @@ async def list_solver_releases(
3748
solver_id: SolverKeyId,
3849
offset: PageOffsetInt = 0,
3950
limit: PageLimitInt = DEFAULT_NUMBER_OF_ITEMS_PER_PAGE,
40-
) -> list[Solver]:
51+
) -> tuple[list[Solver], PageMetaInfoLimitOffset]:
4152
assert product_name # nosec
4253
assert user_id # nosec
43-
return [solver for solver in _FAKE if solver.id == solver_id][
54+
55+
data = [solver for solver in _FAKE if solver.id == solver_id][
4456
offset : offset + limit
4557
]
4658

59+
meta = PageMetaInfoLimitOffset(
60+
limit=limit, offset=offset, total=len(_FAKE), count=len(data)
61+
)
62+
return data, meta
63+
4764

4865
async def get_solver(
4966
*,
@@ -55,6 +72,16 @@ async def get_solver(
5572
assert product_name # nosec
5673
assert user_id # nosec
5774

75+
# service: ServiceGetV2 = await catalog_rpc.get_service(
76+
# get_rabbitmq_rpc_client(app),
77+
# product_name=product_name,
78+
# user_id=user_id,
79+
# service_key=solver_id,
80+
# service_version=solver_version,
81+
# )
82+
83+
# solver = Solver(id=service.key, version=service.version, title=) ServiceGetV2)(service)
84+
5885
return next(
5986
(
6087
solver

services/api-server/tests/unit/test_services_catalog.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,21 @@ def product_name() -> ProductName:
1818

1919
async def test_catalog_service_read_solvers(product_name: ProductName, user_id: UserID):
2020
# Step 1: List latest releases in a page
21-
solver_releases_page: list[Solver] = await catalog_service.list_latest_releases(
21+
solver_releases_page, meta = await catalog_service.list_latest_releases(
2222
product_name=product_name, user_id=user_id
2323
)
2424
assert solver_releases_page, "Releases page should not be empty"
25+
assert meta.offset == 0
2526

2627
# Step 2: Select one release and list solver releases
2728
selected_release = solver_releases_page[0]
28-
solver_releases = await catalog_service.list_solver_releases(
29+
solver_releases, meta = await catalog_service.list_solver_releases(
2930
product_name=product_name,
3031
user_id=user_id,
3132
solver_id=selected_release.id,
3233
)
3334
assert solver_releases, "Solver releases should not be empty"
35+
assert meta.offset == 0
3436

3537
# Step 3: Take the latest solver release and get solver details
3638
latest_solver_release = solver_releases[0]

0 commit comments

Comments
 (0)