Skip to content

Commit 6546813

Browse files
committed
refactor: replace rest wire format conversion logic with protojson helpers
1 parent 5ce5d7d commit 6546813

7 files changed

Lines changed: 1099 additions & 1029 deletions

File tree

a2acompat/a2av0/rest_client.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828

2929
"github.com/a2aproject/a2a-go/v2/a2a"
3030
"github.com/a2aproject/a2a-go/v2/a2aclient"
31+
"github.com/a2aproject/a2a-go/v2/a2apb/v0/pbjson"
3132
"github.com/a2aproject/a2a-go/v2/internal/rest"
3233
"github.com/a2aproject/a2a-go/v2/internal/sse"
3334
"github.com/a2aproject/a2a-go/v2/log"
@@ -181,7 +182,7 @@ func (t *restCompatTransport) doStreamingRequest(ctx context.Context, req *compa
181182
yield(nil, restErr)
182183
return
183184
}
184-
event, err := unmarshalRESTStreamEvent(data)
185+
event, err := pbjson.FromProtoStreamEvent(data)
185186
if err != nil {
186187
yield(nil, fmt.Errorf("failed to unmarshal SSE event: %w", err))
187188
return
@@ -195,7 +196,7 @@ func (t *restCompatTransport) doStreamingRequest(ctx context.Context, req *compa
195196

196197
// SendMessage implements [a2aclient.Transport].
197198
func (t *restCompatTransport) SendMessage(ctx context.Context, params a2aclient.ServiceParams, req *a2a.SendMessageRequest) (a2a.SendMessageResult, error) {
198-
body, err := marshalRESTSendMessageRequest(req)
199+
body, err := pbjson.ToProtoSendMessageRequest(req)
199200
if err != nil {
200201
return nil, fmt.Errorf("failed to marshal SendMessageRequest: %w", err)
201202
}
@@ -208,12 +209,12 @@ func (t *restCompatTransport) SendMessage(ctx context.Context, params a2aclient.
208209
if err != nil {
209210
return nil, err
210211
}
211-
return unmarshalRESTSendMessageResponse(data)
212+
return pbjson.FromProtoSendMessageResponse(data)
212213
}
213214

214215
// SendStreamingMessage implements [a2aclient.Transport].
215216
func (t *restCompatTransport) SendStreamingMessage(ctx context.Context, params a2aclient.ServiceParams, req *a2a.SendMessageRequest) iter.Seq2[a2a.Event, error] {
216-
body, err := marshalRESTSendMessageRequest(req)
217+
body, err := pbjson.ToProtoSendMessageRequest(req)
217218
if err != nil {
218219
return errorStream(fmt.Errorf("failed to marshal SendMessageRequest: %w", err))
219220
}
@@ -240,7 +241,7 @@ func (t *restCompatTransport) GetTask(ctx context.Context, params a2aclient.Serv
240241
if err != nil {
241242
return nil, err
242243
}
243-
return unmarshalRESTTask(data)
244+
return pbjson.FromProtoTask(data)
244245
}
245246

246247
// ListTasks implements [a2aclient.Transport].
@@ -250,7 +251,7 @@ func (t *restCompatTransport) ListTasks(ctx context.Context, params a2aclient.Se
250251
q.Set("contextId", req.ContextID)
251252
}
252253
if req.Status != "" {
253-
q.Set("status", encodeTaskState(req.Status))
254+
q.Set("status", string(pbjson.EncodeTaskState(req.Status)))
254255
}
255256
if req.PageSize != 0 {
256257
q.Set("pageSize", strconv.Itoa(req.PageSize))
@@ -276,7 +277,7 @@ func (t *restCompatTransport) ListTasks(ctx context.Context, params a2aclient.Se
276277
if err != nil {
277278
return nil, err
278279
}
279-
return unmarshalRESTListTasksResponse(data)
280+
return pbjson.FromProtoListTasksResponse(data)
280281
}
281282

282283
// CancelTask implements [a2aclient.Transport].
@@ -289,7 +290,7 @@ func (t *restCompatTransport) CancelTask(ctx context.Context, params a2aclient.S
289290
if err != nil {
290291
return nil, err
291292
}
292-
return unmarshalRESTTask(data)
293+
return pbjson.FromProtoTask(data)
293294
}
294295

295296
// SubscribeToTask implements [a2aclient.Transport].
@@ -311,7 +312,7 @@ func (t *restCompatTransport) GetTaskPushConfig(ctx context.Context, params a2ac
311312
if err != nil {
312313
return nil, err
313314
}
314-
return unmarshalRESTPushConfigResponse(data)
315+
return pbjson.FromProtoPushConfigResponse(data)
315316
}
316317

317318
// ListTaskPushConfigs implements [a2aclient.Transport].
@@ -332,12 +333,12 @@ func (t *restCompatTransport) ListTaskPushConfigs(ctx context.Context, params a2
332333
if err != nil {
333334
return nil, err
334335
}
335-
return unmarshalRESTListPushConfigsResponse(data, req.TaskID)
336+
return pbjson.FromProtoListPushConfigsResponse(data, req.TaskID)
336337
}
337338

338339
// CreateTaskPushConfig implements [a2aclient.Transport].
339340
func (t *restCompatTransport) CreateTaskPushConfig(ctx context.Context, params a2aclient.ServiceParams, req *a2a.PushConfig) (*a2a.PushConfig, error) {
340-
body, err := marshalRESTCreatePushConfigRequest(req)
341+
body, err := pbjson.ToProtoCreatePushConfigRequest(req)
341342
if err != nil {
342343
return nil, fmt.Errorf("failed to marshal CreateTaskPushNotificationConfigRequest: %w", err)
343344
}
@@ -350,7 +351,7 @@ func (t *restCompatTransport) CreateTaskPushConfig(ctx context.Context, params a
350351
if err != nil {
351352
return nil, err
352353
}
353-
return unmarshalRESTPushConfigResponse(data)
354+
return pbjson.FromProtoPushConfigResponse(data)
354355
}
355356

356357
// DeleteTaskPushConfig implements [a2aclient.Transport].

0 commit comments

Comments
 (0)