From 1387a603a7def72936a84622cac33af0e459285e Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Wed, 26 Jul 2023 16:22:37 +0200 Subject: [PATCH] fix: unify parameter validation errors --- codersdk/richparameters.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/codersdk/richparameters.go b/codersdk/richparameters.go index d26b6abeed0c6..27aeb43b7098d 100644 --- a/codersdk/richparameters.go +++ b/codersdk/richparameters.go @@ -27,13 +27,25 @@ func ValidateWorkspaceBuildParameters(richParameters []TemplateVersionParameter, err := ValidateWorkspaceBuildParameter(richParameter, buildParameter, lastBuildParameter) if err != nil { - return xerrors.Errorf("can't validate build parameter %q: %w", richParameter.Name, err) + return err } } return nil } func ValidateWorkspaceBuildParameter(richParameter TemplateVersionParameter, buildParameter *WorkspaceBuildParameter, lastBuildParameter *WorkspaceBuildParameter) error { + err := validateBuildParameter(richParameter, buildParameter, lastBuildParameter) + if err != nil { + name := richParameter.Name + if richParameter.DisplayName != "" { + name = richParameter.DisplayName + } + return xerrors.Errorf("can't validate build parameter %q: %w", name, err) + } + return nil +} + +func validateBuildParameter(richParameter TemplateVersionParameter, buildParameter *WorkspaceBuildParameter, lastBuildParameter *WorkspaceBuildParameter) error { var value string if buildParameter != nil { @@ -51,22 +63,22 @@ func ValidateWorkspaceBuildParameter(richParameter TemplateVersionParameter, bui if lastBuildParameter != nil && richParameter.Type == "number" && len(richParameter.ValidationMonotonic) > 0 { prev, err := strconv.Atoi(lastBuildParameter.Value) if err != nil { - return xerrors.Errorf("Previous parameter value is not a number: %s", lastBuildParameter.Value) + return xerrors.Errorf("previous parameter value is not a number: %s", lastBuildParameter.Value) } current, err := strconv.Atoi(buildParameter.Value) if err != nil { - return xerrors.Errorf("Current parameter value is not a number: %s", buildParameter.Value) + return xerrors.Errorf("current parameter value is not a number: %s", buildParameter.Value) } switch richParameter.ValidationMonotonic { case MonotonicOrderIncreasing: if prev > current { - return xerrors.Errorf("Parameter value must be equal or greater than previous value: %d", prev) + return xerrors.Errorf("parameter value must be equal or greater than previous value: %d", prev) } case MonotonicOrderDecreasing: if prev < current { - return xerrors.Errorf("Parameter value must be equal or lower than previous value: %d", prev) + return xerrors.Errorf("parameter value must be equal or lower than previous value: %d", prev) } } } @@ -81,7 +93,7 @@ func ValidateWorkspaceBuildParameter(richParameter TemplateVersionParameter, bui } if !matched { - return xerrors.Errorf("Parameter value must match one of options: %s", parameterValuesAsArray(richParameter.Options)) + return xerrors.Errorf("parameter value must match one of options: %s", parameterValuesAsArray(richParameter.Options)) } return nil } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy