1
2
3
4
9 package examplepb
10
11 import (
12 "context"
13 "io"
14 "net/http"
15
16 "github.com/grpc-ecosystem/grpc-gateway/v2/examples/internal/proto/sub"
17 "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
18 "github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
19 "google.golang.org/grpc"
20 "google.golang.org/grpc/codes"
21 "google.golang.org/grpc/grpclog"
22 "google.golang.org/grpc/metadata"
23 "google.golang.org/grpc/status"
24 "google.golang.org/protobuf/proto"
25 )
26
27
28 var _ codes.Code
29 var _ io.Reader
30 var _ status.Status
31 var _ = runtime.String
32 var _ = utilities.NewDoubleArray
33 var _ = metadata.Join
34
35 func request_StreamService_BulkCreate_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
36 var metadata runtime.ServerMetadata
37 stream, err := client.BulkCreate(ctx)
38 if err != nil {
39 grpclog.Infof("Failed to start streaming: %v", err)
40 return nil, metadata, err
41 }
42 dec := marshaler.NewDecoder(req.Body)
43 for {
44 var protoReq ABitOfEverything
45 err = dec.Decode(&protoReq)
46 if err == io.EOF {
47 break
48 }
49 if err != nil {
50 grpclog.Infof("Failed to decode request: %v", err)
51 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
52 }
53 if err = stream.Send(&protoReq); err != nil {
54 if err == io.EOF {
55 break
56 }
57 grpclog.Infof("Failed to send request: %v", err)
58 return nil, metadata, err
59 }
60 }
61
62 if err := stream.CloseSend(); err != nil {
63 grpclog.Infof("Failed to terminate client stream: %v", err)
64 return nil, metadata, err
65 }
66 header, err := stream.Header()
67 if err != nil {
68 grpclog.Infof("Failed to get header from client: %v", err)
69 return nil, metadata, err
70 }
71 metadata.HeaderMD = header
72
73 msg, err := stream.CloseAndRecv()
74 metadata.TrailerMD = stream.Trailer()
75 return msg, metadata, err
76
77 }
78
79 var (
80 filter_StreamService_List_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
81 )
82
83 func request_StreamService_List_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (StreamService_ListClient, runtime.ServerMetadata, error) {
84 var protoReq Options
85 var metadata runtime.ServerMetadata
86
87 if err := req.ParseForm(); err != nil {
88 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
89 }
90 if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamService_List_0); err != nil {
91 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
92 }
93
94 stream, err := client.List(ctx, &protoReq)
95 if err != nil {
96 return nil, metadata, err
97 }
98 header, err := stream.Header()
99 if err != nil {
100 return nil, metadata, err
101 }
102 metadata.HeaderMD = header
103 return stream, metadata, nil
104
105 }
106
107 func request_StreamService_BulkEcho_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (StreamService_BulkEchoClient, runtime.ServerMetadata, error) {
108 var metadata runtime.ServerMetadata
109 stream, err := client.BulkEcho(ctx)
110 if err != nil {
111 grpclog.Infof("Failed to start streaming: %v", err)
112 return nil, metadata, err
113 }
114 dec := marshaler.NewDecoder(req.Body)
115 handleSend := func() error {
116 var protoReq sub.StringMessage
117 err := dec.Decode(&protoReq)
118 if err == io.EOF {
119 return err
120 }
121 if err != nil {
122 grpclog.Infof("Failed to decode request: %v", err)
123 return err
124 }
125 if err := stream.Send(&protoReq); err != nil {
126 grpclog.Infof("Failed to send request: %v", err)
127 return err
128 }
129 return nil
130 }
131 go func() {
132 for {
133 if err := handleSend(); err != nil {
134 break
135 }
136 }
137 if err := stream.CloseSend(); err != nil {
138 grpclog.Infof("Failed to terminate client stream: %v", err)
139 }
140 }()
141 header, err := stream.Header()
142 if err != nil {
143 grpclog.Infof("Failed to get header from client: %v", err)
144 return nil, metadata, err
145 }
146 metadata.HeaderMD = header
147 return stream, metadata, nil
148 }
149
150 var (
151 filter_StreamService_Download_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
152 )
153
154 func request_StreamService_Download_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (StreamService_DownloadClient, runtime.ServerMetadata, error) {
155 var protoReq Options
156 var metadata runtime.ServerMetadata
157
158 if err := req.ParseForm(); err != nil {
159 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
160 }
161 if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamService_Download_0); err != nil {
162 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
163 }
164
165 stream, err := client.Download(ctx, &protoReq)
166 if err != nil {
167 return nil, metadata, err
168 }
169 header, err := stream.Header()
170 if err != nil {
171 return nil, metadata, err
172 }
173 metadata.HeaderMD = header
174 return stream, metadata, nil
175
176 }
177
178
179
180
181
182 func RegisterStreamServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server StreamServiceServer) error {
183
184 mux.Handle("POST", pattern_StreamService_BulkCreate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
185 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
186 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
187 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
188 return
189 })
190
191 mux.Handle("GET", pattern_StreamService_List_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
192 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
193 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
194 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
195 return
196 })
197
198 mux.Handle("POST", pattern_StreamService_BulkEcho_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
199 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
200 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
201 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
202 return
203 })
204
205 mux.Handle("GET", pattern_StreamService_Download_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
206 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
207 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
208 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
209 return
210 })
211
212 return nil
213 }
214
215
216
217 func RegisterStreamServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
218 conn, err := grpc.DialContext(ctx, endpoint, opts...)
219 if err != nil {
220 return err
221 }
222 defer func() {
223 if err != nil {
224 if cerr := conn.Close(); cerr != nil {
225 grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
226 }
227 return
228 }
229 go func() {
230 <-ctx.Done()
231 if cerr := conn.Close(); cerr != nil {
232 grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
233 }
234 }()
235 }()
236
237 return RegisterStreamServiceHandler(ctx, mux, conn)
238 }
239
240
241
242 func RegisterStreamServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
243 return RegisterStreamServiceHandlerClient(ctx, mux, NewStreamServiceClient(conn))
244 }
245
246
247
248
249
250
251 func RegisterStreamServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client StreamServiceClient) error {
252
253 mux.Handle("POST", pattern_StreamService_BulkCreate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
254 ctx, cancel := context.WithCancel(req.Context())
255 defer cancel()
256 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
257 var err error
258 var annotatedContext context.Context
259 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/BulkCreate", runtime.WithHTTPPathPattern("/v1/example/a_bit_of_everything/bulk"))
260 if err != nil {
261 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
262 return
263 }
264 resp, md, err := request_StreamService_BulkCreate_0(annotatedContext, inboundMarshaler, client, req, pathParams)
265 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
266 if err != nil {
267 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
268 return
269 }
270
271 forward_StreamService_BulkCreate_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
272
273 })
274
275 mux.Handle("GET", pattern_StreamService_List_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
276 ctx, cancel := context.WithCancel(req.Context())
277 defer cancel()
278 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
279 var err error
280 var annotatedContext context.Context
281 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/List", runtime.WithHTTPPathPattern("/v1/example/a_bit_of_everything"))
282 if err != nil {
283 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
284 return
285 }
286 resp, md, err := request_StreamService_List_0(annotatedContext, inboundMarshaler, client, req, pathParams)
287 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
288 if err != nil {
289 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
290 return
291 }
292
293 forward_StreamService_List_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
294
295 })
296
297 mux.Handle("POST", pattern_StreamService_BulkEcho_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
298 ctx, cancel := context.WithCancel(req.Context())
299 defer cancel()
300 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
301 var err error
302 var annotatedContext context.Context
303 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/BulkEcho", runtime.WithHTTPPathPattern("/v1/example/a_bit_of_everything/echo"))
304 if err != nil {
305 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
306 return
307 }
308 resp, md, err := request_StreamService_BulkEcho_0(annotatedContext, inboundMarshaler, client, req, pathParams)
309 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
310 if err != nil {
311 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
312 return
313 }
314
315 forward_StreamService_BulkEcho_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
316
317 })
318
319 mux.Handle("GET", pattern_StreamService_Download_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
320 ctx, cancel := context.WithCancel(req.Context())
321 defer cancel()
322 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
323 var err error
324 var annotatedContext context.Context
325 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/Download", runtime.WithHTTPPathPattern("/v1/example/download"))
326 if err != nil {
327 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
328 return
329 }
330 resp, md, err := request_StreamService_Download_0(annotatedContext, inboundMarshaler, client, req, pathParams)
331 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
332 if err != nil {
333 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
334 return
335 }
336
337 forward_StreamService_Download_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
338
339 })
340
341 return nil
342 }
343
344 var (
345 pattern_StreamService_BulkCreate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "example", "a_bit_of_everything", "bulk"}, ""))
346
347 pattern_StreamService_List_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "example", "a_bit_of_everything"}, ""))
348
349 pattern_StreamService_BulkEcho_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "example", "a_bit_of_everything", "echo"}, ""))
350
351 pattern_StreamService_Download_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "example", "download"}, ""))
352 )
353
354 var (
355 forward_StreamService_BulkCreate_0 = runtime.ForwardResponseMessage
356
357 forward_StreamService_List_0 = runtime.ForwardResponseStream
358
359 forward_StreamService_BulkEcho_0 = runtime.ForwardResponseStream
360
361 forward_StreamService_Download_0 = runtime.ForwardResponseStream
362 )
363
View as plain text