Skip to content

Commit 6df7f75

Browse files
committed
draft implementation
1 parent 526e5d2 commit 6df7f75

File tree

3 files changed

+42
-1
lines changed
  • packages
    • models-library/src/models_library/api_schemas_catalog
    • service-library/src/servicelib/rabbitmq/rpc_interfaces/catalog
  • services/catalog/src/simcore_service_catalog/api/rpc

3 files changed

+42
-1
lines changed

packages/models-library/src/models_library/api_schemas_catalog/services.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,3 +365,6 @@ class MyServiceGet(CatalogOutputSchema):
365365

366366
owner: GroupID | None
367367
my_access_rights: ServiceGroupAccessRightsV2
368+
369+
370+
__all__: tuple[str, ...] = ("ServiceRelease",)

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
LatestServiceGet,
99
MyServiceGet,
1010
ServiceGetV2,
11+
ServiceRelease,
1112
ServiceUpdateV2,
1213
)
1314
from models_library.products import ProductName
@@ -236,3 +237,40 @@ async def _call(
236237
result = await _call(product_name=product_name, user_id=user_id, ids=ids)
237238
assert TypeAdapter(list[MyServiceGet]).validate_python(result) is not None # nosec
238239
return cast(list[MyServiceGet], result)
240+
241+
242+
async def get_my_service_history( # pylint: disable=too-many-arguments
243+
rpc_client: RabbitMQRPCClient,
244+
*,
245+
product_name: ProductName,
246+
user_id: UserID,
247+
service_key: ServiceKey,
248+
) -> list[ServiceRelease]:
249+
"""
250+
Raises:
251+
ValidationError: on invalid arguments
252+
"""
253+
254+
@validate_call()
255+
async def _call(
256+
product_name: ProductName,
257+
user_id: UserID,
258+
service_key: ServiceKey,
259+
):
260+
return await rpc_client.request(
261+
CATALOG_RPC_NAMESPACE,
262+
TypeAdapter(RPCMethodName).validate_python("get_my_service_history"),
263+
product_name=product_name,
264+
user_id=user_id,
265+
service_key=service_key,
266+
)
267+
268+
result = await _call(
269+
product_name=product_name,
270+
user_id=user_id,
271+
service_key=service_key,
272+
)
273+
assert ( # nosec
274+
TypeAdapter(list[ServiceRelease]).validate_python(result) is not None
275+
)
276+
return cast(list[ServiceRelease], result)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ async def batch_get_my_services(
223223
return services
224224

225225

226-
@router.expose(reraise_if_error_type=(CatalogForbiddenError, ValidationError))
226+
@router.expose(reraise_if_error_type=(ValidationError,))
227227
@log_decorator(_logger, level=logging.DEBUG)
228228
@validate_call(config={"arbitrary_types_allowed": True})
229229
async def get_my_service_history(

0 commit comments

Comments
 (0)