8000 Check that required query params are non-zero · coder/coder@139f004 · GitHub
[go: up one dir, main page]

Skip to content

Commit 139f004

Browse files
committed
Check that required query params are non-zero
1 parent dede350 commit 139f004

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

coderd/httpapi/queryparams.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ func ParseCustomList[T any](parser *QueryParamParser, vals url.Values, def []T,
246246
func parseQueryParam[T any](parser *QueryParamParser, vals url.Values, parse func(v string) (T, error), def T, queryParam string) (T, error) {
247247
parser.addParsed(queryParam)
248248
// If the query param is required and not present, return an error.
249-
if parser.RequiredParams[queryParam] && (!vals.Has(queryParam)) {
249+
if parser.RequiredParams[queryParam] && (!vals.Has(queryParam) || vals.Get(queryParam) == "") {
250250
parser.Errors = append(parser.Errors, codersdk.ValidationError{
251251
Field: queryParam,
252252
Detail: fmt.Sprintf("Query param %q is required", queryParam),

coderd/httpapi/queryparams_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,11 @@ func TestParseQueryParams(t *testing.T) {
323323
parser.Required("test_value")
324324
parser.UUID(url.Values{}, uuid.New(), "test_value")
325325
require.Len(t, parser.Errors, 1)
326+
327+
parser = httpapi.NewQueryParamParser()
328+
parser.Required("test_value")
329+
parser.String(url.Values{"test_value": {""}}, "", "test_value")
330+
require.Len(t, parser.Errors, 1)
326331
})
327332
}
328333

0 commit comments

Comments
 (0)
0