Skip to content

Commit 44358a1

Browse files
committed
Update
1 parent 301ef43 commit 44358a1

1 file changed

Lines changed: 24 additions & 25 deletions

File tree

src/a2a/server/routes/rest_dispatcher.py

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -103,16 +103,10 @@ async def _handle_non_streaming(
103103
self,
104104
request: Request,
105105
handler_func: Callable[[ServerCallContext], Awaitable[TResponse]],
106-
serializer: Callable[[TResponse], Any] = MessageToDict,
107-
) -> JSONResponse:
108-
"""Centralized error handling and context management for unary calls.
109-
110-
Builds the call context, invokes the handler, and wraps the serialized
111-
result in a `JSONResponse`.
112-
"""
106+
) -> TResponse:
107+
"""Centralized error handling and context management for unary calls."""
113108
context = self._build_call_context(request)
114-
response = await handler_func(context)
115-
return JSONResponse(content=serializer(response))
109+
return await handler_func(context)
116110

117111
async def _handle_streaming(
118112
self,
@@ -177,7 +171,8 @@ async def _handler(
177171
return a2a_pb2.SendMessageResponse(task=task_or_message)
178172
return a2a_pb2.SendMessageResponse(message=task_or_message)
179173

180-
return await self._handle_non_streaming(request, _handler)
174+
response = await self._handle_non_streaming(request, _handler)
175+
return JSONResponse(content=MessageToDict(response))
181176

182177
@rest_stream_error_handler
183178
async def on_message_send_stream(
@@ -214,7 +209,8 @@ async def _handler(context: ServerCallContext) -> a2a_pb2.Task:
214209
return task
215210
raise TaskNotFoundError
216211

217-
return await self._handle_non_streaming(request, _handler)
212+
response = await self._handle_non_streaming(request, _handler)
213+
return JSONResponse(content=MessageToDict(response))
218214

219215
@rest_stream_error_handler
220216
async def on_subscribe_to_task(
@@ -249,7 +245,8 @@ async def _handler(context: ServerCallContext) -> a2a_pb2.Task:
249245
return task
250246
raise TaskNotFoundError
251247

252-
return await self._handle_non_streaming(request, _handler)
248+
response = await self._handle_non_streaming(request, _handler)
249+
return JSONResponse(content=MessageToDict(response))
253250

254251
@rest_error_handler
255252
async def get_push_notification(self, request: Request) -> Response:
@@ -270,7 +267,8 @@ async def _handler(
270267
)
271268
)
272269

273-
return await self._handle_non_streaming(request, _handler)
270+
response = await self._handle_non_streaming(request, _handler)
271+
return JSONResponse(content=MessageToDict(response))
274272

275273
@rest_error_handler
276274
async def delete_push_notification(self, request: Request) -> Response:
@@ -287,9 +285,8 @@ async def _handler(context: ServerCallContext) -> None:
287285
params, context
288286
)
289287

290-
return await self._handle_non_streaming(
291-
request, _handler, serializer=lambda _: {}
292-
)
288+
await self._handle_non_streaming(request, _handler)
289+
return JSONResponse(content={})
293290

294291
@rest_error_handler
295292
async def set_push_notification(self, request: Request) -> Response:
@@ -307,7 +304,8 @@ async def _handler(
307304
params, context
308305
)
309306

310-
return await self._handle_non_streaming(request, _handler)
307+
response = await self._handle_non_streaming(request, _handler)
308+
return JSONResponse(content=MessageToDict(response))
311309

312310
@rest_error_handler
313311
async def list_push_notifications(self, request: Request) -> Response:
@@ -324,7 +322,8 @@ async def _handler(
324322
params, context
325323
)
326324

327-
return await self._handle_non_streaming(request, _handler)
325+
response = await self._handle_non_streaming(request, _handler)
326+
return JSONResponse(content=MessageToDict(response))
328327

329328
@rest_error_handler
330329
async def list_tasks(self, request: Request) -> Response:
@@ -338,12 +337,11 @@ async def _handler(
338337
proto_utils.parse_params(request.query_params, params)
339338
return await self.request_handler.on_list_tasks(params, context)
340339

341-
return await self._handle_non_streaming(
342-
request,
343-
_handler,
344-
serializer=lambda r: MessageToDict(
345-
r, always_print_fields_with_no_presence=True
346-
),
340+
response = await self._handle_non_streaming(request, _handler)
341+
return JSONResponse(
342+
content=MessageToDict(
343+
response, always_print_fields_with_no_presence=True
344+
)
347345
)
348346

349347
@rest_error_handler
@@ -361,4 +359,5 @@ async def _handler(
361359
params, context
362360
)
363361

364-
return await self._handle_non_streaming(request, _handler)
362+
response = await self._handle_non_streaming(request, _handler)
363+
return JSONResponse(content=MessageToDict(response))

0 commit comments

Comments
 (0)