Skip to content

Commit 4c269c3

Browse files
wire checkout and release in webserver
1 parent c0d5c8e commit 4c269c3

File tree

2 files changed

+31
-19
lines changed
  • packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/licenses
  • services/web/server/src/simcore_service_webserver/licenses

2 files changed

+31
-19
lines changed

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

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
LicensedItemGet,
66
LicensedItemGetPage,
77
)
8+
from models_library.api_schemas_webserver.licensed_items_usages import (
9+
LicenseCheckoutGet,
10+
LicensedItemUsageGet,
11+
)
812
from models_library.licensed_items import LicensedItemID
913
from models_library.products import ProductName
1014
from models_library.rabbitmq_basic_types import RPCMethodName
@@ -23,8 +27,8 @@ async def get_licensed_items(
2327
rabbitmq_rpc_client: RabbitMQRPCClient,
2428
*,
2529
product_name: str,
26-
offset: int,
27-
limit: int,
30+
offset: int = 0,
31+
limit: int = 20,
2832
) -> LicensedItemGetPage:
2933
result: LicensedItemGetPage = await rabbitmq_rpc_client.request(
3034
WEBSERVER_RPC_NAMESPACE,
@@ -33,51 +37,58 @@ async def get_licensed_items(
3337
offset=offset,
3438
limit=limit,
3539
)
36-
assert isinstance(result, LicensedItemGetPage)
40+
assert isinstance(result, LicensedItemGetPage) # nosec
3741
return result
3842

3943

4044
@log_decorator(_logger, level=logging.DEBUG)
41-
async def get_licensed_items_for_wallet(
45+
async def get_purchased_licensed_items_for_wallet(
4246
rabbitmq_rpc_client: RabbitMQRPCClient,
4347
*,
44-
user_id: UserID,
4548
product_name: ProductName,
4649
wallet_id: WalletID,
47-
) -> LicensedItemGet:
50+
user_id: UserID,
51+
offset: int = 0,
52+
limit: int = 20,
53+
) -> LicensedItemGetPage:
4854
result: LicensedItemGet = await rabbitmq_rpc_client.request(
4955
WEBSERVER_RPC_NAMESPACE,
50-
TypeAdapter(RPCMethodName).validate_python("get_licensed_items_for_wallet"),
51-
user_id=user_id,
56+
TypeAdapter(RPCMethodName).validate_python(
57+
"get_purchased_licensed_items_for_wallet"
58+
),
5259
product_name=product_name,
60+
user_id=user_id,
5361
wallet_id=wallet_id,
62+
offset=offset,
63+
limit=limit,
5464
)
55-
assert isinstance(result, LicensedItemGet) # nosec
65+
assert isinstance(result, LicensedItemGetPage) # nosec
5666
return result
5767

5868

5969
@log_decorator(_logger, level=logging.DEBUG)
6070
async def checkout_licensed_item_for_wallet(
6171
rabbitmq_rpc_client: RabbitMQRPCClient,
6272
*,
63-
user_id: UserID,
6473
product_name: ProductName,
74+
user_id: UserID,
6575
wallet_id: WalletID,
6676
licensed_item_id: LicensedItemID,
6777
num_of_seats: int,
6878
service_run_id: ServiceRunId,
69-
) -> None:
79+
) -> LicenseCheckoutGet:
7080
result = await rabbitmq_rpc_client.request(
7181
WEBSERVER_RPC_NAMESPACE,
7282
TypeAdapter(RPCMethodName).validate_python("checkout_licensed_item_for_wallet"),
73-
user_id=user_id,
7483
product_name=product_name,
84+
user_id=user_id,
7585
wallet_id=wallet_id,
7686
licensed_item_id=licensed_item_id,
7787
num_of_seats=num_of_seats,
7888
service_run_id=service_run_id,
7989
)
80-
assert result is None # nosec
90+
assert isinstance(result, LicenseCheckoutGet) # nosec
91+
return result
8192

8293

8394
@log_decorator(_logger, level=logging.DEBUG)
@@ -90,7 +101,7 @@ async def release_licensed_item_for_wallet(
90101
licensed_item_id: LicensedItemID,
91102
num_of_seats: int,
92103
service_run_id: ServiceRunId,
93-
) -> None:
104+
) -> LicensedItemUsageGet:
94105
result = await rabbitmq_rpc_client.request(
95106
WEBSERVER_RPC_NAMESPACE,
96107
TypeAdapter(RPCMethodName).validate_python("release_licensed_item_for_wallet"),
@@ -101,4 +112,5 @@ async def release_licensed_item_for_wallet(
101112
num_of_seats=num_of_seats,
102113
service_run_id=service_run_id,
103114
)
104-
assert result is None # nosec
115+
assert isinstance(result, LicensedItemUsageGet) # nosec
116+
return result

services/web/server/src/simcore_service_webserver/licenses/_rpc.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ async def get_licensed_items(
4242

4343

4444
@router.expose(reraise_if_error_type=(NotImplementedError,))
45-
async def get_licensed_items_for_wallet(
45+
async def get_purchased_licensed_items_for_wallet(
4646
app: web.Application,
4747
*,
48-
user_id: UserID,
4948
product_name: ProductName,
49+
user_id: UserID,
5050
wallet_id: WalletID,
5151
offset: int,
5252
limit: int,
@@ -58,8 +58,8 @@ async def get_licensed_items_for_wallet(
5858
async def checkout_licensed_item_for_wallet(
5959
app: web.Application,
6060
*,
61-
user_id: UserID,
6261
product_name: ProductName,
62+
user_id: UserID,
6363
wallet_id: WalletID,
6464
licensed_item_id: LicensedItemID,
6565
num_of_seats: int,
@@ -80,9 +80,9 @@ async def checkout_licensed_item_for_wallet(
8080
async def release_licensed_item_for_wallet(
8181
app: web.Application,
8282
*,
83+
product_name: ProductName,
8384
user_id: UserID,
8485
checkout_id: LicenseCheckoutID,
85-
product_name: ProductName,
8686
) -> LicensedItemUsageGet:
8787
return await _licensed_checkouts_api.release_licensed_item_for_wallet(
8888
app, product_name=product_name, user_id=user_id, checkout_id=checkout_id

0 commit comments

Comments
 (0)