Skip to content

Commit 3dc1b0f

Browse files
committed
updates licenserRpcAPI
1 parent 9795772 commit 3dc1b0f

File tree

2 files changed

+46
-13
lines changed
  • packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/v1

2 files changed

+46
-13
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/v1/_base.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,10 @@ async def _request(
3030
user_id=user_id,
3131
**kwargs
3232
)
33+
34+
async def _request_without_authentication(
35+
self, method_name: RPCMethodName, *, product_name: ProductName, **kwargs: Any
36+
) -> Any:
37+
return await self._rpc_client.request(
38+
self._namespace, method_name, product_name=product_name, **kwargs
39+
)

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/v1/licenses.py

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,56 @@
22

33
from typing import Any
44

5+
from models_library.api_schemas_webserver.licensed_items import LicensedItemRpcGetPage
6+
from models_library.api_schemas_webserver.licensed_items_checkouts import (
7+
LicensedItemCheckoutRpcGet,
8+
)
9+
from models_library.licenses import LicensedItemID
510
from models_library.products import ProductName
11+
from models_library.resource_tracker_licensed_items_checkouts import (
12+
LicensedItemCheckoutID,
13+
)
14+
from models_library.services_types import ServiceRunID
615
from models_library.users import UserID
16+
from models_library.wallets import WalletID
717

818
from ._base import BaseRpcApi
919

1020

1121
class LicensesRpcApi(BaseRpcApi):
1222
"""RPC client for license-related operations."""
1323

14-
async def get_licensed_items_for_wallet(
24+
async def get_licensed_items(
1525
self,
1626
*,
1727
product_name: ProductName,
28+
offset: int = 0,
29+
limit: int = 20,
30+
) -> LicensedItemRpcGetPage:
31+
return await self._request_without_authentication(
32+
"get_licensed_items",
33+
product_name=product_name,
34+
offset=offset,
35+
limit=limit,
36+
)
37+
38+
async def get_available_licensed_items_for_wallet(
39+
self,
40+
*,
41+
product_name: ProductName,
42+
wallet_id: WalletID,
1843
user_id: UserID,
19-
wallet_id: int | None = None,
20-
) -> list[dict[str, Any]]:
44+
offset: int = 0,
45+
limit: int = 20,
46+
) -> LicensedItemRpcGetPage:
2147
"""Get licensed items for a wallet."""
2248
return await self._request(
23-
"get_licensed_items_for_wallet",
49+
"get_available_licensed_items_for_wallet",
2450
product_name=product_name,
2551
user_id=user_id,
2652
wallet_id=wallet_id,
53+
offset=offset,
54+
limit=limit,
2755
)
2856

2957
async def get_licensed_items_checkouts_for_wallet(
@@ -46,18 +74,18 @@ async def checkout_licensed_item_for_wallet(
4674
*,
4775
product_name: ProductName,
4876
user_id: UserID,
49-
licensed_item_id: str,
50-
wallet_id: int,
77+
wallet_id: WalletID,
78+
licensed_item_id: LicensedItemID,
5179
num_of_seats: int,
52-
service_run_id: str,
53-
) -> dict[str, Any]:
80+
service_run_id: ServiceRunID,
81+
) -> LicensedItemCheckoutRpcGet:
5482
"""Checkout a licensed item for a wallet."""
5583
return await self._request(
5684
"checkout_licensed_item_for_wallet",
5785
product_name=product_name,
5886
user_id=user_id,
59-
licensed_item_id=licensed_item_id,
6087
wallet_id=wallet_id,
88+
licensed_item_id=licensed_item_id,
6189
num_of_seats=num_of_seats,
6290
service_run_id=service_run_id,
6391
)
@@ -67,14 +95,12 @@ async def release_licensed_item_for_wallet(
6795
*,
6896
product_name: ProductName,
6997
user_id: UserID,
70-
licensed_item_checkout_id: str,
71-
wallet_id: int,
72-
) -> None:
98+
licensed_item_checkout_id: LicensedItemCheckoutID,
99+
) -> LicensedItemCheckoutRpcGet:
73100
"""Release a licensed item checkout for a wallet."""
74101
return await self._request(
75102
"release_licensed_item_for_wallet",
76103
product_name=product_name,
77104
user_id=user_id,
78105
licensed_item_checkout_id=licensed_item_checkout_id,
79-
wallet_id=wallet_id,
80106
)

0 commit comments

Comments
 (0)