Skip to content

Commit 8e655d1

Browse files
committed
fixing linter and gemini comments
1 parent 7b3e6d6 commit 8e655d1

File tree

1 file changed

+23
-51
lines changed

1 file changed

+23
-51
lines changed

src/a2a/server/apps/jsonrpc/jsonrpc_app.py

Lines changed: 23 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,20 @@ class JSONRPCApplication(ABC):
155155
(SSE).
156156
"""
157157

158+
# Method-to-model mapping for centralized routing
159+
METHOD_TO_MODEL = {
160+
'message/send': SendMessageRequest,
161+
'message/stream': SendStreamingMessageRequest,
162+
'tasks/get': GetTaskRequest,
163+
'tasks/cancel': CancelTaskRequest,
164+
'tasks/pushNotificationConfig/set': SetTaskPushNotificationConfigRequest,
165+
'tasks/pushNotificationConfig/get': GetTaskPushNotificationConfigRequest,
166+
'tasks/pushNotificationConfig/list': ListTaskPushNotificationConfigRequest,
167+
'tasks/pushNotificationConfig/delete': DeleteTaskPushNotificationConfigRequest,
168+
'tasks/resubscribe': TaskResubscriptionRequest,
169+
'agent/getAuthenticatedExtendedCard': GetAuthenticatedExtendedCardRequest,
170+
}
171+
158172
def __init__( # noqa: PLR0913
159173
self,
160174
agent_card: AgentCard,
@@ -293,7 +307,7 @@ async def _handle_requests(self, request: Request) -> Response: # noqa: PLR0911
293307
try:
294308
base_request = JSONRPCRequest.model_validate(body)
295309
except ValidationError as e:
296-
traceback.print_exc()
310+
logger.exception('Failed to validate base JSON-RPC request')
297311
return self._generate_error_response(
298312
request_id,
299313
A2AError(
@@ -303,58 +317,16 @@ async def _handle_requests(self, request: Request) -> Response: # noqa: PLR0911
303317

304318
# 2) Route by method name; unknown -> -32601, known -> validate params (-32602 on failure)
305319
method = base_request.method
320+
306321
try:
307-
match method:
308-
case 'message/send':
309-
specific_request = SendMessageRequest.model_validate(
310-
body
311-
)
312-
case 'message/stream':
313-
specific_request = (
314-
SendStreamingMessageRequest.model_validate(body)
315-
)
316-
case 'tasks/get':
317-
specific_request = GetTaskRequest.model_validate(body)
318-
case 'tasks/cancel':
319-
specific_request = CancelTaskRequest.model_validate(
320-
body
321-
)
322-
case 'tasks/pushNotificationConfig/set':
323-
specific_request = (
324-
SetTaskPushNotificationConfigRequest.model_validate(
325-
body
326-
)
327-
)
328-
case 'tasks/pushNotificationConfig/get':
329-
specific_request = (
330-
GetTaskPushNotificationConfigRequest.model_validate(
331-
body
332-
)
333-
)
334-
case 'tasks/pushNotificationConfig/list':
335-
specific_request = ListTaskPushNotificationConfigRequest.model_validate(
336-
body
337-
)
338-
case 'tasks/pushNotificationConfig/delete':
339-
specific_request = DeleteTaskPushNotificationConfigRequest.model_validate(
340-
body
341-
)
342-
case 'tasks/resubscribe':
343-
specific_request = (
344-
TaskResubscriptionRequest.model_validate(body)
345-
)
346-
case 'agent/getAuthenticatedExtendedCard':
347-
specific_request = (
348-
GetAuthenticatedExtendedCardRequest.model_validate(
349-
body
350-
)
351-
)
352-
case _:
353-
return self._generate_error_response(
354-
request_id, A2AError(root=MethodNotFoundError())
355-
)
322+
model_class = self.METHOD_TO_MODEL.get(method)
323+
if not model_class:
324+
return self._generate_error_response(
325+
request_id, A2AError(root=MethodNotFoundError())
326+
)
327+
specific_request = model_class.model_validate(body)
356328
except ValidationError as e:
357-
traceback.print_exc()
329+
logger.exception('Failed to validate base JSON-RPC request')
358330
return self._generate_error_response(
359331
request_id,
360332
A2AError(

0 commit comments

Comments
 (0)