Skip to content

Commit c0d5c8e

Browse files
wire checkout and release in webserver
1 parent 3f30f05 commit c0d5c8e

File tree

2 files changed

+28
-14
lines changed

2 files changed

+28
-14
lines changed
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
)
1616

1717
from ..rabbitmq import get_rabbitmq_rpc_client
18+
from ..users.api import get_user
1819
from ..wallets.api import get_wallet_by_user
1920

2021

@@ -26,7 +27,6 @@ async def checkout_licensed_item_for_wallet(
2627
num_of_seats: int,
2728
service_run_id: ServiceRunId,
2829
user_id: UserID,
29-
user_email: str,
3030
) -> webserver_licensed_items_usages.LicenseCheckoutGet:
3131
# Check whether user has access to the wallet
3232
await get_wallet_by_user(
@@ -36,6 +36,8 @@ async def checkout_licensed_item_for_wallet(
3636
product_name=product_name,
3737
)
3838

39+
user = await get_user(app, user_id=user_id)
40+
3941
rpc_client = get_rabbitmq_rpc_client(app)
4042
license_checkout_get: rut_licensed_items_usages.LicenseCheckoutGet = (
4143
await licensed_items_usages.checkout_licensed_item(
@@ -46,7 +48,7 @@ async def checkout_licensed_item_for_wallet(
4648
num_of_seats=num_of_seats,
4749
service_run_id=service_run_id,
4850
user_id=user_id,
49-
user_email=user_email,
51+
user_email=user["email"],
5052
)
5153
)
5254

@@ -62,7 +64,7 @@ async def release_licensed_item_for_wallet(
6264
checkout_id: rut_licensed_items_usages.LicenseCheckoutID,
6365
) -> webserver_licensed_items_usages.LicensedItemUsageGet:
6466
rpc_client = get_rabbitmq_rpc_client(app)
65-
# Get
67+
6668
checkout_item = await licensed_items_usages.get_licensed_item_usage(
6769
rpc_client, product_name=product_name, licensed_item_usage_id=checkout_id
6870
)

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

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
from aiohttp import web
22
from models_library.api_schemas_webserver import WEBSERVER_RPC_NAMESPACE
33
from models_library.api_schemas_webserver.licensed_items import LicensedItemGetPage
4+
from models_library.api_schemas_webserver.licensed_items_usages import (
5+
LicenseCheckoutGet,
6+
LicenseCheckoutID,
7+
LicensedItemUsageGet,
8+
)
49
from models_library.basic_types import IDStr
510
from models_library.licensed_items import LicensedItemID
611
from models_library.products import ProductName
@@ -11,7 +16,7 @@
1116
from servicelib.rabbitmq import RPCRouter
1217

1318
from ..rabbitmq import get_rabbitmq_rpc_server
14-
from . import _licensed_items_api
19+
from . import _licensed_checkouts_api, _licensed_items_api
1520

1621
router = RPCRouter()
1722

@@ -59,22 +64,29 @@ async def checkout_licensed_item_for_wallet(
5964
licensed_item_id: LicensedItemID,
6065
num_of_seats: int,
6166
service_run_id: ServiceRunId,
62-
) -> None:
63-
raise NotImplementedError
67+
) -> LicenseCheckoutGet:
68+
return await _licensed_checkouts_api.checkout_licensed_item_for_wallet(
69+
app,
70+
licensed_item_id=licensed_item_id,
71+
wallet_id=wallet_id,
72+
product_name=product_name,
73+
num_of_seats=num_of_seats,
74+
service_run_id=service_run_id,
75+
user_id=user_id,
76+
)
6477

6578

6679
@router.expose(reraise_if_error_type=(NotImplementedError,))
6780
async def release_licensed_item_for_wallet(
6881
app: web.Application,
6982
*,
70-
user_id: str,
71-
product_name: str,
72-
wallet_id: WalletID,
73-
licensed_item_id: LicensedItemID,
74-
num_of_seats: int,
75-
service_run_id: ServiceRunId,
76-
) -> None:
77-
raise NotImplementedError
83+
user_id: UserID,
84+
checkout_id: LicenseCheckoutID,
85+
product_name: ProductName,
86+
) -> LicensedItemUsageGet:
87+
return await _licensed_checkouts_api.release_licensed_item_for_wallet(
88+
app, product_name=product_name, user_id=user_id, checkout_id=checkout_id
89+
)
7890

7991

8092
async def register_rpc_routes_on_startup(app: web.Application):

0 commit comments

Comments
 (0)