...
1 package test
2
3 import (
4 "context"
5
6 "google.golang.org/grpc"
7
8 "github.com/go-kit/kit/endpoint"
9 grpctransport "github.com/go-kit/kit/transport/grpc"
10 "github.com/go-kit/kit/transport/grpc/_grpc_test/pb"
11 )
12
13 type clientBinding struct {
14 test endpoint.Endpoint
15 }
16
17 func (c *clientBinding) Test(ctx context.Context, a string, b int64) (context.Context, string, error) {
18 response, err := c.test(ctx, TestRequest{A: a, B: b})
19 if err != nil {
20 return nil, "", err
21 }
22 r := response.(*TestResponse)
23 return r.Ctx, r.V, nil
24 }
25
26 func NewClient(cc *grpc.ClientConn) Service {
27 return &clientBinding{
28 test: grpctransport.NewClient(
29 cc,
30 "pb.Test",
31 "Test",
32 encodeRequest,
33 decodeResponse,
34 &pb.TestResponse{},
35 grpctransport.ClientBefore(
36 injectCorrelationID,
37 ),
38 grpctransport.ClientBefore(
39 displayClientRequestHeaders,
40 ),
41 grpctransport.ClientAfter(
42 displayClientResponseHeaders,
43 displayClientResponseTrailers,
44 ),
45 grpctransport.ClientAfter(
46 extractConsumedCorrelationID,
47 ),
48 ).Endpoint(),
49 }
50 }
51
View as plain text