|
1 | 1 | from aiohttp import web |
2 | 2 | from models_library.api_schemas_webserver import WEBSERVER_RPC_NAMESPACE |
3 | 3 | 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 | +) |
4 | 9 | from models_library.basic_types import IDStr |
5 | 10 | from models_library.licensed_items import LicensedItemID |
6 | 11 | from models_library.products import ProductName |
|
11 | 16 | from servicelib.rabbitmq import RPCRouter |
12 | 17 |
|
13 | 18 | from ..rabbitmq import get_rabbitmq_rpc_server |
14 | | -from . import _licensed_items_api |
| 19 | +from . import _licensed_checkouts_api, _licensed_items_api |
15 | 20 |
|
16 | 21 | router = RPCRouter() |
17 | 22 |
|
@@ -59,22 +64,29 @@ async def checkout_licensed_item_for_wallet( |
59 | 64 | licensed_item_id: LicensedItemID, |
60 | 65 | num_of_seats: int, |
61 | 66 | 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 | + ) |
64 | 77 |
|
65 | 78 |
|
66 | 79 | @router.expose(reraise_if_error_type=(NotImplementedError,)) |
67 | 80 | async def release_licensed_item_for_wallet( |
68 | 81 | app: web.Application, |
69 | 82 | *, |
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 | + ) |
78 | 90 |
|
79 | 91 |
|
80 | 92 | async def register_rpc_routes_on_startup(app: web.Application): |
|
0 commit comments