Skip to content

Commit 919c8e1

Browse files
authored
fix: websocket client codegen (#3947)
Use named struct fields for result types in WebSocket client streaming Update websocket_recv.go.tpl and test data to initialize viewed result types with named fields (`Projected:` and `View:`) instead of positional arguments. This fixes go vet validation failures in generated WebSocket code. Signed-off-by: Adam Bocim <adam.bocim@seznam.cz>
1 parent 69baaf4 commit 919c8e1

3 files changed

Lines changed: 14 additions & 14 deletions

File tree

http/codegen/templates/websocket_recv.go.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (s *{{ .VarName }}) {{ .RecvName }}() ({{ .RecvTypeRef }}, error) {
7070
{{- if .Response.ResultInit }}
7171
res := {{ .Response.ResultInit.Name }}({{ range .Response.ResultInit.ClientArgs }}{{ .Ref }},{{ end }})
7272
{{- if .Endpoint.Method.ViewedResult }}{{ with .Endpoint.Method.ViewedResult }}
73-
vres := {{ if not .IsCollection }}&{{ end }}{{ .ViewsPkg }}.{{ .VarName }}{res, {{ if .ViewName }}{{ printf "%q" .ViewName }}{{ else }}s.view{{ end }} }
73+
vres := {{ if not .IsCollection }}&{{ end }}{{ .ViewsPkg }}.{{ .VarName }}{Projected: res, View: {{ if .ViewName }}{{ printf "%q" .ViewName }}{{ else }}s.view{{ end }} }
7474
if err := {{ .ViewsPkg }}.Validate{{ $.Endpoint.Method.Result }}(vres); err != nil {
7575
return rv, goahttp.ErrValidationError("{{ $.Endpoint.ServiceName }}", "{{ $.Endpoint.Method.Name }}", err)
7676
}

http/codegen/testdata/golden/websocket/websocket-bidirectional-streaming-with-views-client.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func (s *BidirectionalWithViewsClientStream) Recv() (*testservice.Response, erro
6060
return rv, err
6161
}
6262
res := NewBidirectionalWithViewsResponseOK(&body)
63-
vres := &testserviceviews.Response{res, s.view}
63+
vres := &testserviceviews.Response{Projected: res, View: s.view}
6464
if err := testserviceviews.ValidateResponse(vres); err != nil {
6565
return rv, goahttp.ErrValidationError("TestService", "BidirectionalWithViews", err)
6666
}

http/codegen/testdata/streaming_code.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ func (s *StreamingResultWithViewsMethodClientStream) Recv() (*streamingresultwit
479479
return rv, err
480480
}
481481
res := NewStreamingResultWithViewsMethodUsertypeOK(&body)
482-
vres := &streamingresultwithviewsserviceviews.Usertype{res, s.view}
482+
vres := &streamingresultwithviewsserviceviews.Usertype{Projected: res, View: s.view}
483483
if err := streamingresultwithviewsserviceviews.ValidateUsertype(vres); err != nil {
484484
return rv, goahttp.ErrValidationError("StreamingResultWithViewsService", "StreamingResultWithViewsMethod", err)
485485
}
@@ -558,7 +558,7 @@ func (s *StreamingResultWithExplicitViewMethodClientStream) Recv() (*streamingre
558558
return rv, err
559559
}
560560
res := NewStreamingResultWithExplicitViewMethodUsertypeOK(&body)
561-
vres := &streamingresultwithexplicitviewserviceviews.Usertype{res, "extended"}
561+
vres := &streamingresultwithexplicitviewserviceviews.Usertype{Projected: res, View: "extended"}
562562
if err := streamingresultwithexplicitviewserviceviews.ValidateUsertype(vres); err != nil {
563563
return rv, goahttp.ErrValidationError("StreamingResultWithExplicitViewService", "StreamingResultWithExplicitViewMethod", err)
564564
}
@@ -684,7 +684,7 @@ func (s *StreamingResultCollectionWithViewsMethodClientStream) Recv() (streaming
684684
return rv, err
685685
}
686686
res := NewStreamingResultCollectionWithViewsMethodUsertypeCollectionOK(body)
687-
vres := streamingresultcollectionwithviewsserviceviews.UsertypeCollection{res, s.view}
687+
vres := streamingresultcollectionwithviewsserviceviews.UsertypeCollection{Projected: res, View: s.view}
688688
if err := streamingresultcollectionwithviewsserviceviews.ValidateUsertypeCollection(vres); err != nil {
689689
return rv, goahttp.ErrValidationError("StreamingResultCollectionWithViewsService", "StreamingResultCollectionWithViewsMethod", err)
690690
}
@@ -802,7 +802,7 @@ func (s *StreamingResultCollectionWithExplicitViewMethodClientStream) Recv() (st
802802
return rv, err
803803
}
804804
res := NewStreamingResultCollectionWithExplicitViewMethodUsertypeCollectionOK(body)
805-
vres := streamingresultcollectionwithexplicitviewserviceviews.UsertypeCollection{res, "tiny"}
805+
vres := streamingresultcollectionwithexplicitviewserviceviews.UsertypeCollection{Projected: res, View: "tiny"}
806806
if err := streamingresultcollectionwithexplicitviewserviceviews.ValidateUsertypeCollection(vres); err != nil {
807807
return rv, goahttp.ErrValidationError("StreamingResultCollectionWithExplicitViewService", "StreamingResultCollectionWithExplicitViewMethod", err)
808808
}
@@ -1710,7 +1710,7 @@ func (s *StreamingPayloadResultWithViewsMethodClientStream) CloseAndRecv() (*str
17101710
return rv, err
17111711
}
17121712
res := NewStreamingPayloadResultWithViewsMethodUsertypeOK(&body)
1713-
vres := &streamingpayloadresultwithviewsserviceviews.Usertype{res, s.view}
1713+
vres := &streamingpayloadresultwithviewsserviceviews.Usertype{Projected: res, View: s.view}
17141714
if err := streamingpayloadresultwithviewsserviceviews.ValidateUsertype(vres); err != nil {
17151715
return rv, goahttp.ErrValidationError("StreamingPayloadResultWithViewsService", "StreamingPayloadResultWithViewsMethod", err)
17161716
}
@@ -1834,7 +1834,7 @@ func (s *StreamingPayloadResultWithExplicitViewMethodClientStream) CloseAndRecv(
18341834
return rv, err
18351835
}
18361836
res := NewStreamingPayloadResultWithExplicitViewMethodUsertypeOK(&body)
1837-
vres := &streamingpayloadresultwithexplicitviewserviceviews.Usertype{res, "extended"}
1837+
vres := &streamingpayloadresultwithexplicitviewserviceviews.Usertype{Projected: res, View: "extended"}
18381838
if err := streamingpayloadresultwithexplicitviewserviceviews.ValidateUsertype(vres); err != nil {
18391839
return rv, goahttp.ErrValidationError("StreamingPayloadResultWithExplicitViewService", "StreamingPayloadResultWithExplicitViewMethod", err)
18401840
}
@@ -1972,7 +1972,7 @@ func (s *StreamingPayloadResultCollectionWithViewsMethodClientStream) CloseAndRe
19721972
return rv, err
19731973
}
19741974
res := NewStreamingPayloadResultCollectionWithViewsMethodUsertypeCollectionOK(body)
1975-
vres := streamingpayloadresultcollectionwithviewsserviceviews.UsertypeCollection{res, s.view}
1975+
vres := streamingpayloadresultcollectionwithviewsserviceviews.UsertypeCollection{Projected: res, View: s.view}
19761976
if err := streamingpayloadresultcollectionwithviewsserviceviews.ValidateUsertypeCollection(vres); err != nil {
19771977
return rv, goahttp.ErrValidationError("StreamingPayloadResultCollectionWithViewsService", "StreamingPayloadResultCollectionWithViewsMethod", err)
19781978
}
@@ -2101,7 +2101,7 @@ func (s *StreamingPayloadResultCollectionWithExplicitViewMethodClientStream) Clo
21012101
return rv, err
21022102
}
21032103
res := NewStreamingPayloadResultCollectionWithExplicitViewMethodUsertypeCollectionOK(body)
2104-
vres := streamingpayloadresultcollectionwithexplicitviewserviceviews.UsertypeCollection{res, "tiny"}
2104+
vres := streamingpayloadresultcollectionwithexplicitviewserviceviews.UsertypeCollection{Projected: res, View: "tiny"}
21052105
if err := streamingpayloadresultcollectionwithexplicitviewserviceviews.ValidateUsertypeCollection(vres); err != nil {
21062106
return rv, goahttp.ErrValidationError("StreamingPayloadResultCollectionWithExplicitViewService", "StreamingPayloadResultCollectionWithExplicitViewMethod", err)
21072107
}
@@ -3216,7 +3216,7 @@ func (s *BidirectionalStreamingResultWithViewsMethodClientStream) Recv() (*bidir
32163216
return rv, err
32173217
}
32183218
res := NewBidirectionalStreamingResultWithViewsMethodUsertypeOK(&body)
3219-
vres := &bidirectionalstreamingresultwithviewsserviceviews.Usertype{res, s.view}
3219+
vres := &bidirectionalstreamingresultwithviewsserviceviews.Usertype{Projected: res, View: s.view}
32203220
if err := bidirectionalstreamingresultwithviewsserviceviews.ValidateUsertype(vres); err != nil {
32213221
return rv, goahttp.ErrValidationError("BidirectionalStreamingResultWithViewsService", "BidirectionalStreamingResultWithViewsMethod", err)
32223222
}
@@ -3366,7 +3366,7 @@ func (s *BidirectionalStreamingResultWithExplicitViewMethodClientStream) Recv()
33663366
return rv, err
33673367
}
33683368
res := NewBidirectionalStreamingResultWithExplicitViewMethodUsertypeOK(&body)
3369-
vres := &bidirectionalstreamingresultwithexplicitviewserviceviews.Usertype{res, "extended"}
3369+
vres := &bidirectionalstreamingresultwithexplicitviewserviceviews.Usertype{Projected: res, View: "extended"}
33703370
if err := bidirectionalstreamingresultwithexplicitviewserviceviews.ValidateUsertype(vres); err != nil {
33713371
return rv, goahttp.ErrValidationError("BidirectionalStreamingResultWithExplicitViewService", "BidirectionalStreamingResultWithExplicitViewMethod", err)
33723372
}
@@ -3517,7 +3517,7 @@ func (s *BidirectionalStreamingResultCollectionWithViewsMethodClientStream) Recv
35173517
return rv, err
35183518
}
35193519
res := NewBidirectionalStreamingResultCollectionWithViewsMethodUsertypeCollectionOK(body)
3520-
vres := bidirectionalstreamingresultcollectionwithviewsserviceviews.UsertypeCollection{res, s.view}
3520+
vres := bidirectionalstreamingresultcollectionwithviewsserviceviews.UsertypeCollection{Projected: res, View: s.view}
35213521
if err := bidirectionalstreamingresultcollectionwithviewsserviceviews.ValidateUsertypeCollection(vres); err != nil {
35223522
return rv, goahttp.ErrValidationError("BidirectionalStreamingResultCollectionWithViewsService", "BidirectionalStreamingResultCollectionWithViewsMethod", err)
35233523
}
@@ -3656,7 +3656,7 @@ func (s *BidirectionalStreamingResultCollectionWithExplicitViewMethodClientStrea
36563656
return rv, err
36573657
}
36583658
res := NewBidirectionalStreamingResultCollectionWithExplicitViewMethodUsertypeCollectionOK(body)
3659-
vres := bidirectionalstreamingresultcollectionwithexplicitviewserviceviews.UsertypeCollection{res, "tiny"}
3659+
vres := bidirectionalstreamingresultcollectionwithexplicitviewserviceviews.UsertypeCollection{Projected: res, View: "tiny"}
36603660
if err := bidirectionalstreamingresultcollectionwithexplicitviewserviceviews.ValidateUsertypeCollection(vres); err != nil {
36613661
return rv, goahttp.ErrValidationError("BidirectionalStreamingResultCollectionWithExplicitViewService", "BidirectionalStreamingResultCollectionWithExplicitViewMethod", err)
36623662
}

0 commit comments

Comments
 (0)