Skip to content

Commit 97f8d7d

Browse files
committed
add rpc client for resource usage tracker
1 parent 964bb67 commit 97f8d7d

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
from dataclasses import dataclass
2+
from functools import partial
3+
4+
from fastapi import FastAPI
5+
from models_library.resource_tracker_licensed_items_checkouts import (
6+
LicensedItemCheckoutID,
7+
)
8+
from servicelib.rabbitmq._client_rpc import RabbitMQRPCClient
9+
from servicelib.rabbitmq.rpc_interfaces.resource_usage_tracker.licensed_items_checkouts import (
10+
get_licensed_item_checkout as _get_licensed_item_checkout,
11+
)
12+
13+
from ..exceptions.service_errors_utils import service_exception_mapper
14+
from ..models.schemas.model_adapter import LicensedItemCheckoutGet
15+
16+
_exception_mapper = partial(
17+
service_exception_mapper, service_name="ResourceUsageTracker"
18+
)
19+
20+
21+
@dataclass
22+
class ResourceUsageTrackerClient:
23+
_client: RabbitMQRPCClient
24+
25+
@_exception_mapper(rpc_exception_map={})
26+
async def get_licensed_item_checkout(
27+
self, *, product_name: str, licensed_item_checkout_id: LicensedItemCheckoutID
28+
) -> LicensedItemCheckoutGet:
29+
_licensed_item_checkout = await _get_licensed_item_checkout(
30+
rabbitmq_rpc_client=self._client,
31+
product_name=product_name,
32+
licensed_item_checkout_id=licensed_item_checkout_id,
33+
)
34+
return LicensedItemCheckoutGet(
35+
licensed_item_checkout_id=_licensed_item_checkout.licensed_item_checkout_id,
36+
licensed_item_id=_licensed_item_checkout.licensed_item_id,
37+
wallet_id=_licensed_item_checkout.wallet_id,
38+
user_id=_licensed_item_checkout.user_id,
39+
product_name=_licensed_item_checkout.product_name,
40+
started_at=_licensed_item_checkout.started_at,
41+
stopped_at=_licensed_item_checkout.stopped_at,
42+
num_of_seats=_licensed_item_checkout.num_of_seats,
43+
)
44+
45+
46+
def setup(app: FastAPI, rabbitmq_rmp_client: RabbitMQRPCClient):
47+
app.state.wb_api_rpc_client = ResourceUsageTrackerClient(
48+
_client=rabbitmq_rmp_client
49+
)

0 commit comments

Comments
 (0)