Skip to content

Commit 529a378

Browse files
authored
Merge branch 'v3' into dependabot/go_modules/github.com/gorilla/websocket-1.5.2
2 parents 39a9fda + c87dff9 commit 529a378

File tree

7 files changed

+109
-16
lines changed

7 files changed

+109
-16
lines changed

.github/workflows/report-coverage.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
ref: ${{ github.event.workflow_run.head_sha }}
1919

2020
- name: Download test coverage
21-
uses: dawidd6/action-download-artifact@v3
21+
uses: dawidd6/action-download-artifact@v5
2222
with:
2323
workflow: test.yml
2424
name: coverage

codegen/cli/cli.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ func BuildSubcommandData(svcName string, m *service.MethodData, buildFunction *B
178178
description = fmt.Sprintf("Make request to the %q endpoint", m.Name)
179179
}
180180

181-
if buildFunction == nil && len(flags) > 0 {
181+
if m.Payload != "" && buildFunction == nil && len(flags) > 0 {
182182
// No build function, just convert the arg to the body type
183183
var convPre, convSuff string
184184
target := "data"

grpc/codegen/client_cli.go

-2
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,6 @@ func ParseEndpoint(cc *grpc.ClientConn, opts ...grpc.CallOption) (goa.Endpoint,
222222
data, err = {{ $pkgName}}.{{ .BuildFunction.Name }}({{ range .BuildFunction.ActualParams }}*{{ . }}Flag, {{ end }})
223223
{{- else if .Conversion }}
224224
{{ .Conversion }}
225-
{{- else }}
226-
data = nil
227225
{{- end }}
228226
{{- end }}
229227
}

http/codegen/client_cli_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ func TestClientCLIFiles(t *testing.T) {
2323
{"simple-parse", testdata.MultiSimpleDSL, testdata.MultiSimpleParseCode, 0, 3},
2424
{"multi-parse", testdata.MultiDSL, testdata.MultiParseCode, 0, 3},
2525
{"multi-required-payload", testdata.MultiRequiredPayloadDSL, testdata.MultiRequiredPayloadParseCode, 0, 3},
26+
{"skip-request-body-encode-decode", testdata.SkipRequestBodyEncodeDecodeDSL, testdata.SkipRequestBodyEncodeDecodeParseCode, 0, 3},
2627
{"streaming-parse", testdata.StreamingMultipleServicesDSL, testdata.StreamingParseCode, 0, 3},
2728
{"simple-build", testdata.MultiSimpleDSL, testdata.MultiSimpleBuildCode, 1, 1},
2829
{"multi-build", testdata.MultiDSL, testdata.MultiBuildCode, 1, 1},

http/codegen/templates/parse_endpoint.go.tpl

-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ func ParseEndpoint(
4141
data, err = {{ $pkgName}}.{{ .BuildFunction.Name }}({{ range .BuildFunction.ActualParams }}*{{ . }}Flag, {{ end }})
4242
{{- else if .Conversion }}
4343
{{ .Conversion }}
44-
{{- else }}
45-
data = nil
4644
{{- end }}
4745
{{- if .StreamFlag }}
4846
{{- if .BuildFunction }}

http/codegen/testdata/parse_endpoint_functions.go

+94-10
Original file line numberDiff line numberDiff line change
@@ -109,20 +109,16 @@ func ParseEndpoint(
109109
switch epn {
110110
case "method-service-no-payload11":
111111
endpoint = c.MethodServiceNoPayload11()
112-
data = nil
113112
case "method-service-no-payload12":
114113
endpoint = c.MethodServiceNoPayload12()
115-
data = nil
116114
}
117115
case "service-multi-no-payload2":
118116
c := servicemultinopayload2c.NewClient(scheme, host, doer, enc, dec, restore)
119117
switch epn {
120118
case "method-service-no-payload21":
121119
endpoint = c.MethodServiceNoPayload21()
122-
data = nil
123120
case "method-service-no-payload22":
124121
endpoint = c.MethodServiceNoPayload22()
125-
data = nil
126122
}
127123
}
128124
}
@@ -245,7 +241,6 @@ func ParseEndpoint(
245241
switch epn {
246242
case "method-multi-simple-no-payload":
247243
endpoint = c.MethodMultiSimpleNoPayload()
248-
data = nil
249244
case "method-multi-simple-payload":
250245
endpoint = c.MethodMultiSimplePayload()
251246
data, err = servicemultisimple1c.BuildMethodMultiSimplePayloadPayload(*serviceMultiSimple1MethodMultiSimplePayloadBodyFlag)
@@ -255,7 +250,6 @@ func ParseEndpoint(
255250
switch epn {
256251
case "method-multi-simple-no-payload":
257252
endpoint = c.MethodMultiSimpleNoPayload()
258-
data = nil
259253
case "method-multi-simple-payload":
260254
endpoint = c.MethodMultiSimplePayload()
261255
data, err = servicemultisimple2c.BuildMethodMultiSimplePayloadPayload(*serviceMultiSimple2MethodMultiSimplePayloadBodyFlag)
@@ -382,7 +376,6 @@ func ParseEndpoint(
382376
switch epn {
383377
case "method-multi-required-no-payload":
384378
endpoint = c.MethodMultiRequiredNoPayload()
385-
data = nil
386379
case "method-multi-required-payload":
387380
endpoint = c.MethodMultiRequiredPayload()
388381
data, err = servicemultirequired2c.BuildMethodMultiRequiredPayloadPayload(*serviceMultiRequired2MethodMultiRequiredPayloadAFlag)
@@ -397,6 +390,100 @@ func ParseEndpoint(
397390
}
398391
`
399392

393+
var SkipRequestBodyEncodeDecodeParseCode = `// ParseEndpoint returns the endpoint and payload as specified on the command
394+
// line.
395+
func ParseEndpoint(
396+
scheme, host string,
397+
doer goahttp.Doer,
398+
enc func(*http.Request) goahttp.Encoder,
399+
dec func(*http.Response) goahttp.Decoder,
400+
restore bool,
401+
) (goa.Endpoint, any, error) {
402+
var (
403+
skipRequestBodyEncodeDecodeFlags = flag.NewFlagSet("skip-request-body-encode-decode", flag.ContinueOnError)
404+
405+
skipRequestBodyEncodeDecodeSkipRequestBodyEncodeDecodeMethodFlags = flag.NewFlagSet("skip-request-body-encode-decode-method", flag.ExitOnError)
406+
skipRequestBodyEncodeDecodeSkipRequestBodyEncodeDecodeMethodStreamFlag = skipRequestBodyEncodeDecodeSkipRequestBodyEncodeDecodeMethodFlags.String("stream", "REQUIRED", "path to file containing the streamed request body")
407+
)
408+
skipRequestBodyEncodeDecodeFlags.Usage = skipRequestBodyEncodeDecodeUsage
409+
skipRequestBodyEncodeDecodeSkipRequestBodyEncodeDecodeMethodFlags.Usage = skipRequestBodyEncodeDecodeSkipRequestBodyEncodeDecodeMethodUsage
410+
411+
if err := flag.CommandLine.Parse(os.Args[1:]); err != nil {
412+
return nil, nil, err
413+
}
414+
415+
if flag.NArg() < 2 { // two non flag args are required: SERVICE and ENDPOINT (aka COMMAND)
416+
return nil, nil, fmt.Errorf("not enough arguments")
417+
}
418+
419+
var (
420+
svcn string
421+
svcf *flag.FlagSet
422+
)
423+
{
424+
svcn = flag.Arg(0)
425+
switch svcn {
426+
case "skip-request-body-encode-decode":
427+
svcf = skipRequestBodyEncodeDecodeFlags
428+
default:
429+
return nil, nil, fmt.Errorf("unknown service %q", svcn)
430+
}
431+
}
432+
if err := svcf.Parse(flag.Args()[1:]); err != nil {
433+
return nil, nil, err
434+
}
435+
436+
var (
437+
epn string
438+
epf *flag.FlagSet
439+
)
440+
{
441+
epn = svcf.Arg(0)
442+
switch svcn {
443+
case "skip-request-body-encode-decode":
444+
switch epn {
445+
case "skip-request-body-encode-decode-method":
446+
epf = skipRequestBodyEncodeDecodeSkipRequestBodyEncodeDecodeMethodFlags
447+
448+
}
449+
450+
}
451+
}
452+
if epf == nil {
453+
return nil, nil, fmt.Errorf("unknown %q endpoint %q", svcn, epn)
454+
}
455+
456+
// Parse endpoint flags if any
457+
if svcf.NArg() > 1 {
458+
if err := epf.Parse(svcf.Args()[1:]); err != nil {
459+
return nil, nil, err
460+
}
461+
}
462+
463+
var (
464+
data any
465+
endpoint goa.Endpoint
466+
err error
467+
)
468+
{
469+
switch svcn {
470+
case "skip-request-body-encode-decode":
471+
c := skiprequestbodyencodedecodec.NewClient(scheme, host, doer, enc, dec, restore)
472+
switch epn {
473+
case "skip-request-body-encode-decode-method":
474+
endpoint = c.SkipRequestBodyEncodeDecodeMethod()
475+
data, err = skiprequestbodyencodedecodec.BuildSkipRequestBodyEncodeDecodeMethodStreamPayload(*skipRequestBodyEncodeDecodeSkipRequestBodyEncodeDecodeMethodStreamFlag)
476+
}
477+
}
478+
}
479+
if err != nil {
480+
return nil, nil, err
481+
}
482+
483+
return endpoint, data, nil
484+
}
485+
`
486+
400487
var MultiParseCode = `// ParseEndpoint returns the endpoint and payload as specified on the command
401488
// line.
402489
func ParseEndpoint(
@@ -487,7 +574,6 @@ func ParseEndpoint(
487574
switch epn {
488575
case "method-multi-no-payload":
489576
endpoint = c.MethodMultiNoPayload()
490-
data = nil
491577
case "method-multi-payload":
492578
endpoint = c.MethodMultiPayload()
493579
data, err = servicemultic.BuildMethodMultiPayloadPayload(*serviceMultiMethodMultiPayloadBodyFlag, *serviceMultiMethodMultiPayloadBFlag, *serviceMultiMethodMultiPayloadAFlag)
@@ -602,14 +688,12 @@ func ParseEndpoint(
602688
switch epn {
603689
case "method":
604690
endpoint = c.Method()
605-
data = nil
606691
}
607692
case "streaming-service-b":
608693
c := streamingservicebc.NewClient(scheme, host, doer, enc, dec, restore, dialer, streamingServiceBConfigurer)
609694
switch epn {
610695
case "method":
611696
endpoint = c.Method()
612-
data = nil
613697
}
614698
}
615699
}

http/codegen/testdata/streaming_dsls.go

+12
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@ var MixedEndpointsDSL = func() {
2222
})
2323
}
2424

25+
var SkipRequestBodyEncodeDecodeDSL = func() {
26+
Service("SkipRequestBodyEncodeDecode", func() {
27+
Method("SkipRequestBodyEncodeDecodeMethod", func() {
28+
HTTP(func() {
29+
POST("/")
30+
SkipRequestBodyEncodeDecode()
31+
Response(StatusOK)
32+
})
33+
})
34+
})
35+
}
36+
2537
var StreamingMultipleServicesDSL = func() {
2638
Service("StreamingServiceA", func() {
2739
Method("Method", func() {

0 commit comments

Comments
 (0)