-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
responsebody.go
44 lines (36 loc) · 1.2 KB
/
responsebody.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package server
import (
"context"
examples "github.com/grpc-ecosystem/grpc-gateway/examples/internal/proto/examplepb"
)
// Implements of ResponseBodyServiceServer
type responseBodyServer struct{}
func newResponseBodyServer() examples.ResponseBodyServiceServer {
return new(responseBodyServer)
}
func (s *responseBodyServer) GetResponseBody(ctx context.Context, req *examples.ResponseBodyIn) (*examples.ResponseBodyOut, error) {
return &examples.ResponseBodyOut{
Response: &examples.ResponseBodyOut_Response{
Data: req.Data,
},
}, nil
}
func (s *responseBodyServer) ListResponseBodies(ctx context.Context, req *examples.ResponseBodyIn) (*examples.RepeatedResponseBodyOut, error) {
return &examples.RepeatedResponseBodyOut{
Response: []*examples.RepeatedResponseBodyOut_Response{
&examples.RepeatedResponseBodyOut_Response{
Data: req.Data,
},
},
}, nil
}
func (s *responseBodyServer) ListResponseStrings(ctx context.Context, req *examples.ResponseBodyIn) (*examples.RepeatedResponseStrings, error) {
if req.Data == "empty" {
return &examples.RepeatedResponseStrings{
Values: []string{},
}, nil
}
return &examples.RepeatedResponseStrings{
Values: []string{"hello", req.Data},
}, nil
}