(parser *QueryParamParser, vals url.Values, parse func(set []string) (T, error), def T, queryParam string)
| 447 | } |
| 448 | |
| 449 | func parseQueryParamSet[T any](parser *QueryParamParser, vals url.Values, parse func(set []string) (T, error), def T, queryParam string) (T, error) { |
| 450 | parser.addParsed(queryParam) |
| 451 | // If the query param is required and not present, return an error. |
| 452 | if parser.RequiredNotEmptyParams[queryParam] && (!vals.Has(queryParam) || vals.Get(queryParam) == "") { |
| 453 | parser.Errors = append(parser.Errors, codersdk.ValidationError{ |
| 454 | Field: queryParam, |
| 455 | Detail: fmt.Sprintf("Query param %q is required and cannot be empty", queryParam), |
| 456 | }) |
| 457 | return def, nil |
| 458 | } |
| 459 | |
| 460 | // If the query param is not present, return the default value. |
| 461 | if !vals.Has(queryParam) || vals.Get(queryParam) == "" { |
| 462 | return def, nil |
| 463 | } |
| 464 | |
| 465 | return parse(vals[queryParam]) |
| 466 | } |
no test coverage detected