Skip to content

Commit

Permalink
update client tmpl to use new repeated query param strategy
Browse files Browse the repository at this point in the history
expose tests added in #309
  • Loading branch information
zaquestion committed Sep 6, 2020
1 parent 39871ea commit 5891a72
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 32 deletions.
56 changes: 25 additions & 31 deletions cmd/_integration-tests/transport/http_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,17 +105,16 @@ func TestGetWithRepeatedQueryRequest(t *testing.T) {
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
}

// csv style
err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedquery?%s=%d,%d", "A", A[0], A[1])
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
}
// multi / golang style
// err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedquery?%s=%d&%s=%d", "A", A[0], "A", A[1])
// if err != nil {
// t.Fatal(errors.Wrap(err, "cannot make http request"))
// }
err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedquery?%s=%d&%s=%d", "A", A[0], "A", A[1])
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
}
}

func TestGetWithRepeatedStringQueryClient(t *testing.T) {
Expand Down Expand Up @@ -146,37 +145,32 @@ func TestGetWithRepeatedStringQueryRequest(t *testing.T) {
expects := pb.GetWithRepeatedStringQueryResponse{
V: A[0] + A[1],
}

var err error

err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedstringquery?%s=[\"%s\",\"%s\"]", "A", A[0], A[1])
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
expectsSingle := pb.GetWithRepeatedStringQueryResponse{
V: A[0],
}

// csv style
err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedstringquery?%s=\"%s\",\"%s\"", "A", A[0], A[1])
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
}
var err error

// default array, no quotes
// err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedstringquery?%s=[%s,%s]", "A", A[0], A[1])
// if err != nil {
// t.Fatal(errors.Wrap(err, "cannot make http request"))
// }
t.Run("single Value", func(t *testing.T) {
err = testHTTP(t, &resp, &expectsSingle, nil, "GET", "getwithrepeatedstringquery?%s=%s", "A", A[0])
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
}
})

// csv style, no quotes
// err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedstringquery?%s=[%s,%s]", "A", A[0], A[1])
// if err != nil {
// t.Fatal(errors.Wrap(err, "cannot make http request"))
// }
t.Run("csv style, no quotes", func(t *testing.T) {
err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedstringquery?%s=%s,%s", "A", A[0], A[1])
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
}
})

// multi / golang style
// err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedstringquery?%s=%s&%s=%s", "A", A[0], "A", A[1])
// if err != nil {
// t.Fatal(errors.Wrap(err, "cannot make http request"))
// }
t.Run("multi / golang style", func(t *testing.T) {
err = testHTTP(t, &resp, &expects, nil, "GET", "getwithrepeatedstringquery?%s=%s&%s=%s", "A", A[0], "A", A[1])
if err != nil {
t.Fatal(errors.Wrap(err, "cannot make http request"))
}
})

}

Expand Down
10 changes: 9 additions & 1 deletion gengokit/httptransport/templates/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,15 @@ var ClientEncodeTemplate = `
_ = tmp
{{- range $field := $binding.Fields }}
{{- if eq $field.Location "query"}}
{{if or (not $field.IsBaseType) $field.Repeated}}
{{if and $field.Repeated $field.IsBaseType}}
{{- if (Contains $field.GoType "[]string")}}
values["{{$field.QueryParamName}}"] = req.{{$field.CamelName}}
{{- else}}
for _, v := range req.{{$field.CamelName}} {
values.Add("{{$field.QueryParamName}}", fmt.Sprint(v))
}
{{- end}}
{{else if or (not $field.IsBaseType) $field.Repeated}}
tmp, err = json.Marshal(req.{{$field.CamelName}})
if err != nil {
return errors.Wrap(err, "failed to marshal req.{{$field.CamelName}}")
Expand Down

0 comments on commit 5891a72

Please sign in to comment.