Skip to content

Commit 3db651d

Browse files
committed
✨ Refactor RPC calls to use dynamic RPCNamespace across various webserver interfaces
1 parent 93c2962 commit 3db651d

File tree

7 files changed

+94
-79
lines changed

7 files changed

+94
-79
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/auth/api_keys.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import logging
22

3-
from models_library.api_schemas_webserver import WEBSERVER_RPC_NAMESPACE
43
from models_library.basic_types import IDStr
5-
from models_library.rabbitmq_basic_types import RPCMethodName
4+
from models_library.rabbitmq_basic_types import RPCMethodName, RPCNamespace
65
from models_library.rpc.webserver.auth.api_keys import ApiKeyCreate, ApiKeyGet
76
from models_library.users import UserID
87
from pydantic import TypeAdapter
@@ -15,13 +14,14 @@
1514
@log_decorator(_logger, level=logging.DEBUG)
1615
async def create_api_key(
1716
rabbitmq_rpc_client: RabbitMQRPCClient,
17+
rpc_namespace: RPCNamespace,
1818
*,
1919
user_id: UserID,
2020
product_name: str,
2121
api_key: ApiKeyCreate,
2222
) -> ApiKeyGet:
2323
result: ApiKeyGet = await rabbitmq_rpc_client.request(
24-
WEBSERVER_RPC_NAMESPACE,
24+
rpc_namespace,
2525
TypeAdapter(RPCMethodName).validate_python("create_api_key"),
2626
user_id=user_id,
2727
product_name=product_name,
@@ -35,13 +35,14 @@ async def create_api_key(
3535
@log_decorator(_logger, level=logging.DEBUG)
3636
async def get_api_key(
3737
rabbitmq_rpc_client: RabbitMQRPCClient,
38+
rpc_namespace: RPCNamespace,
3839
*,
3940
user_id: UserID,
4041
product_name: str,
4142
api_key_id: IDStr,
4243
) -> ApiKeyGet:
4344
result: ApiKeyGet = await rabbitmq_rpc_client.request(
44-
WEBSERVER_RPC_NAMESPACE,
45+
rpc_namespace,
4546
TypeAdapter(RPCMethodName).validate_python("get_api_key"),
4647
user_id=user_id,
4748
product_name=product_name,
@@ -54,13 +55,14 @@ async def get_api_key(
5455
@log_decorator(_logger, level=logging.DEBUG)
5556
async def delete_api_key_by_key(
5657
rabbitmq_rpc_client: RabbitMQRPCClient,
58+
rpc_namespace: RPCNamespace,
5759
*,
5860
user_id: UserID,
5961
product_name: str,
6062
api_key: str,
6163
) -> None:
6264
result = await rabbitmq_rpc_client.request(
63-
WEBSERVER_RPC_NAMESPACE,
65+
rpc_namespace,
6466
TypeAdapter(RPCMethodName).validate_python("delete_api_key_by_key"),
6567
user_id=user_id,
6668
product_name=product_name,

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/functions/functions_rpc_interface.py

Lines changed: 48 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
RegisteredFunctionJobCollection,
1818
)
1919
from models_library.products import ProductName
20-
from models_library.rabbitmq_basic_types import RPCMethodName
20+
from models_library.rabbitmq_basic_types import RPCMethodName, RPCNamespace
2121
from models_library.rest_pagination import PageMetaInfoLimitOffset
2222
from models_library.users import UserID
2323
from pydantic import TypeAdapter
@@ -30,34 +30,34 @@
3030

3131
@log_decorator(_logger, level=logging.DEBUG)
3232
async def register_function(
33-
rabbitmq_rpc_client: RabbitMQRPCClient,
33+
rpc_client: RabbitMQRPCClient,
34+
rpc_namespace: RPCNamespace,
3435
*,
3536
user_id: UserID,
3637
product_name: ProductName,
3738
function: Function,
3839
) -> RegisteredFunction:
39-
result = await rabbitmq_rpc_client.request(
40-
WEBSERVER_RPC_NAMESPACE,
40+
result = await rpc_client.request(
41+
rpc_namespace,
4142
TypeAdapter(RPCMethodName).validate_python("register_function"),
4243
function=function,
4344
user_id=user_id,
4445
product_name=product_name,
4546
)
46-
return TypeAdapter(RegisteredFunction).validate_python(
47-
result
48-
) # Validates the result as a RegisteredFunction
47+
return TypeAdapter(RegisteredFunction).validate_python(result)
4948

5049

5150
@log_decorator(_logger, level=logging.DEBUG)
5251
async def get_function(
53-
rabbitmq_rpc_client: RabbitMQRPCClient,
52+
rpc_client: RabbitMQRPCClient,
53+
rpc_namespace: RPCNamespace,
5454
*,
5555
user_id: UserID,
5656
product_name: ProductName,
5757
function_id: FunctionID,
5858
) -> RegisteredFunction:
59-
result = await rabbitmq_rpc_client.request(
60-
WEBSERVER_RPC_NAMESPACE,
59+
result = await rpc_client.request(
60+
rpc_namespace,
6161
TypeAdapter(RPCMethodName).validate_python("get_function"),
6262
function_id=function_id,
6363
user_id=user_id,
@@ -68,14 +68,15 @@ async def get_function(
6868

6969
@log_decorator(_logger, level=logging.DEBUG)
7070
async def get_function_input_schema(
71-
rabbitmq_rpc_client: RabbitMQRPCClient,
71+
rpc_client: RabbitMQRPCClient,
72+
rpc_namespace: RPCNamespace,
7273
*,
7374
function_id: FunctionID,
7475
user_id: UserID,
7576
product_name: ProductName,
7677
) -> FunctionInputSchema:
77-
result = await rabbitmq_rpc_client.request(
78-
WEBSERVER_RPC_NAMESPACE,
78+
result = await rpc_client.request(
79+
rpc_namespace,
7980
TypeAdapter(RPCMethodName).validate_python("get_function_input_schema"),
8081
function_id=function_id,
8182
user_id=user_id,
@@ -86,14 +87,15 @@ async def get_function_input_schema(
8687

8788
@log_decorator(_logger, level=logging.DEBUG)
8889
async def get_function_output_schema(
89-
rabbitmq_rpc_client: RabbitMQRPCClient,
90+
rpc_client: RabbitMQRPCClient,
91+
rpc_namespace: RPCNamespace,
9092
*,
9193
function_id: FunctionID,
9294
user_id: UserID,
9395
product_name: ProductName,
9496
) -> FunctionOutputSchema:
95-
result = await rabbitmq_rpc_client.request(
96-
WEBSERVER_RPC_NAMESPACE,
97+
result = await rpc_client.request(
98+
rpc_namespace,
9799
TypeAdapter(RPCMethodName).validate_python("get_function_output_schema"),
98100
function_id=function_id,
99101
user_id=user_id,
@@ -104,14 +106,15 @@ async def get_function_output_schema(
104106

105107
@log_decorator(_logger, level=logging.DEBUG)
106108
async def delete_function(
107-
rabbitmq_rpc_client: RabbitMQRPCClient,
109+
rpc_client: RabbitMQRPCClient,
110+
rpc_namespace: RPCNamespace,
108111
*,
109112
function_id: FunctionID,
110113
user_id: UserID,
111114
product_name: ProductName,
112115
) -> None:
113-
result = await rabbitmq_rpc_client.request(
114-
WEBSERVER_RPC_NAMESPACE,
116+
result = await rpc_client.request(
117+
rpc_namespace,
115118
TypeAdapter(RPCMethodName).validate_python("delete_function"),
116119
function_id=function_id,
117120
user_id=user_id,
@@ -123,15 +126,15 @@ async def delete_function(
123126

124127
@log_decorator(_logger, level=logging.DEBUG)
125128
async def list_functions(
126-
rabbitmq_rpc_client: RabbitMQRPCClient,
129+
rpc_client: RabbitMQRPCClient,
127130
*,
128131
user_id: UserID,
129132
product_name: ProductName,
130133
pagination_offset: int,
131134
pagination_limit: int,
132135
) -> tuple[list[RegisteredFunction], PageMetaInfoLimitOffset]:
133136
result: tuple[list[RegisteredFunction], PageMetaInfoLimitOffset] = (
134-
await rabbitmq_rpc_client.request(
137+
await rpc_client.request(
135138
WEBSERVER_RPC_NAMESPACE,
136139
TypeAdapter(RPCMethodName).validate_python("list_functions"),
137140
pagination_offset=pagination_offset,
@@ -147,7 +150,7 @@ async def list_functions(
147150

148151
@log_decorator(_logger, level=logging.DEBUG)
149152
async def list_function_jobs(
150-
rabbitmq_rpc_client: RabbitMQRPCClient,
153+
rpc_client: RabbitMQRPCClient,
151154
*,
152155
user_id: UserID,
153156
product_name: ProductName,
@@ -156,7 +159,7 @@ async def list_function_jobs(
156159
filter_by_function_id: FunctionID | None = None,
157160
) -> tuple[list[RegisteredFunctionJob], PageMetaInfoLimitOffset]:
158161
result: tuple[list[RegisteredFunctionJob], PageMetaInfoLimitOffset] = (
159-
await rabbitmq_rpc_client.request(
162+
await rpc_client.request(
160163
WEBSERVER_RPC_NAMESPACE,
161164
TypeAdapter(RPCMethodName).validate_python("list_function_jobs"),
162165
user_id=user_id,
@@ -173,15 +176,15 @@ async def list_function_jobs(
173176

174177
@log_decorator(_logger, level=logging.DEBUG)
175178
async def list_function_job_collections(
176-
rabbitmq_rpc_client: RabbitMQRPCClient,
179+
rpc_client: RabbitMQRPCClient,
177180
*,
178181
user_id: UserID,
179182
product_name: ProductName,
180183
pagination_limit: int,
181184
pagination_offset: int,
182185
filters: FunctionJobCollectionsListFilters | None = None,
183186
) -> tuple[list[RegisteredFunctionJobCollection], PageMetaInfoLimitOffset]:
184-
result = await rabbitmq_rpc_client.request(
187+
result = await rpc_client.request(
185188
WEBSERVER_RPC_NAMESPACE,
186189
TypeAdapter(RPCMethodName).validate_python("list_function_job_collections"),
187190
pagination_offset=pagination_offset,
@@ -197,14 +200,14 @@ async def list_function_job_collections(
197200

198201
@log_decorator(_logger, level=logging.DEBUG)
199202
async def update_function_title(
200-
rabbitmq_rpc_client: RabbitMQRPCClient,
203+
rpc_client: RabbitMQRPCClient,
201204
*,
202205
user_id: UserID,
203206
product_name: ProductName,
204207
function_id: FunctionID,
205208
title: str,
206209
) -> RegisteredFunction:
207-
result = await rabbitmq_rpc_client.request(
210+
result = await rpc_client.request(
208211
WEBSERVER_RPC_NAMESPACE,
209212
TypeAdapter(RPCMethodName).validate_python("update_function_title"),
210213
function_id=function_id,
@@ -217,14 +220,14 @@ async def update_function_title(
217220

218221
@log_decorator(_logger, level=logging.DEBUG)
219222
async def update_function_description(
220-
rabbitmq_rpc_client: RabbitMQRPCClient,
223+
rpc_client: RabbitMQRPCClient,
221224
*,
222225
user_id: UserID,
223226
product_name: ProductName,
224227
function_id: FunctionID,
225228
description: str,
226229
) -> RegisteredFunction:
227-
result = await rabbitmq_rpc_client.request(
230+
result = await rpc_client.request(
228231
WEBSERVER_RPC_NAMESPACE,
229232
TypeAdapter(RPCMethodName).validate_python("update_function_description"),
230233
function_id=function_id,
@@ -237,14 +240,14 @@ async def update_function_description(
237240

238241
@log_decorator(_logger, level=logging.DEBUG)
239242
async def run_function(
240-
rabbitmq_rpc_client: RabbitMQRPCClient,
243+
rpc_client: RabbitMQRPCClient,
241244
*,
242245
function_id: FunctionID,
243246
inputs: FunctionInputs,
244247
user_id: UserID,
245248
product_name: ProductName,
246249
) -> RegisteredFunctionJob:
247-
result = await rabbitmq_rpc_client.request(
250+
result = await rpc_client.request(
248251
WEBSERVER_RPC_NAMESPACE,
249252
TypeAdapter(RPCMethodName).validate_python("run_function"),
250253
function_id=function_id,
@@ -259,13 +262,13 @@ async def run_function(
259262

260263
@log_decorator(_logger, level=logging.DEBUG)
261264
async def register_function_job(
262-
rabbitmq_rpc_client: RabbitMQRPCClient,
265+
rpc_client: RabbitMQRPCClient,
263266
*,
264267
user_id: UserID,
265268
product_name: ProductName,
266269
function_job: FunctionJob,
267270
) -> RegisteredFunctionJob:
268-
result = await rabbitmq_rpc_client.request(
271+
result = await rpc_client.request(
269272
WEBSERVER_RPC_NAMESPACE,
270273
TypeAdapter(RPCMethodName).validate_python("register_function_job"),
271274
function_job=function_job,
@@ -279,13 +282,13 @@ async def register_function_job(
279282

280283
@log_decorator(_logger, level=logging.DEBUG)
281284
async def get_function_job(
282-
rabbitmq_rpc_client: RabbitMQRPCClient,
285+
rpc_client: RabbitMQRPCClient,
283286
*,
284287
user_id: UserID,
285288
function_job_id: FunctionJobID,
286289
product_name: ProductName,
287290
) -> RegisteredFunctionJob:
288-
result = await rabbitmq_rpc_client.request(
291+
result = await rpc_client.request(
289292
WEBSERVER_RPC_NAMESPACE,
290293
TypeAdapter(RPCMethodName).validate_python("get_function_job"),
291294
function_job_id=function_job_id,
@@ -298,13 +301,13 @@ async def get_function_job(
298301

299302
@log_decorator(_logger, level=logging.DEBUG)
300303
async def delete_function_job(
301-
rabbitmq_rpc_client: RabbitMQRPCClient,
304+
rpc_client: RabbitMQRPCClient,
302305
*,
303306
user_id: UserID,
304307
product_name: ProductName,
305308
function_job_id: FunctionJobID,
306309
) -> None:
307-
result: None = await rabbitmq_rpc_client.request(
310+
result: None = await rpc_client.request(
308311
WEBSERVER_RPC_NAMESPACE,
309312
TypeAdapter(RPCMethodName).validate_python("delete_function_job"),
310313
function_job_id=function_job_id,
@@ -316,14 +319,14 @@ async def delete_function_job(
316319

317320
@log_decorator(_logger, level=logging.DEBUG)
318321
async def find_cached_function_jobs(
319-
rabbitmq_rpc_client: RabbitMQRPCClient,
322+
rpc_client: RabbitMQRPCClient,
320323
*,
321324
user_id: UserID,
322325
product_name: ProductName,
323326
function_id: FunctionID,
324327
inputs: FunctionInputs,
325328
) -> list[RegisteredFunctionJob] | None:
326-
result = await rabbitmq_rpc_client.request(
329+
result = await rpc_client.request(
327330
WEBSERVER_RPC_NAMESPACE,
328331
TypeAdapter(RPCMethodName).validate_python("find_cached_function_jobs"),
329332
function_id=function_id,
@@ -338,13 +341,13 @@ async def find_cached_function_jobs(
338341

339342
@log_decorator(_logger, level=logging.DEBUG)
340343
async def register_function_job_collection(
341-
rabbitmq_rpc_client: RabbitMQRPCClient,
344+
rpc_client: RabbitMQRPCClient,
342345
*,
343346
user_id: UserID,
344347
product_name: ProductName,
345348
function_job_collection: FunctionJobCollection,
346349
) -> RegisteredFunctionJobCollection:
347-
result = await rabbitmq_rpc_client.request(
350+
result = await rpc_client.request(
348351
WEBSERVER_RPC_NAMESPACE,
349352
TypeAdapter(RPCMethodName).validate_python("register_function_job_collection"),
350353
function_job_collection=function_job_collection,
@@ -356,13 +359,13 @@ async def register_function_job_collection(
356359

357360
@log_decorator(_logger, level=logging.DEBUG)
358361
async def get_function_job_collection(
359-
rabbitmq_rpc_client: RabbitMQRPCClient,
362+
rpc_client: RabbitMQRPCClient,
360363
*,
361364
user_id: UserID,
362365
function_job_collection_id: FunctionJobCollectionID,
363366
product_name: ProductName,
364367
) -> RegisteredFunctionJobCollection:
365-
result = await rabbitmq_rpc_client.request(
368+
result = await rpc_client.request(
366369
WEBSERVER_RPC_NAMESPACE,
367370
TypeAdapter(RPCMethodName).validate_python("get_function_job_collection"),
368371
function_job_collection_id=function_job_collection_id,
@@ -374,13 +377,13 @@ async def get_function_job_collection(
374377

375378
@log_decorator(_logger, level=logging.DEBUG)
376379
async def delete_function_job_collection(
377-
rabbitmq_rpc_client: RabbitMQRPCClient,
380+
rpc_client: RabbitMQRPCClient,
378381
*,
379382
user_id: UserID,
380383
product_name: ProductName,
381384
function_job_collection_id: FunctionJobCollectionID,
382385
) -> None:
383-
result = await rabbitmq_rpc_client.request(
386+
result = await rpc_client.request(
384387
WEBSERVER_RPC_NAMESPACE,
385388
TypeAdapter(RPCMethodName).validate_python("delete_function_job_collection"),
386389
function_job_collection_id=function_job_collection_id,

0 commit comments

Comments
 (0)