@@ -27,13 +27,25 @@ func ValidateWorkspaceBuildParameters(richParameters []TemplateVersionParameter,
27
27
28
28
err := ValidateWorkspaceBuildParameter (richParameter , buildParameter , lastBuildParameter )
29
29
if err != nil {
30
- return xerrors . Errorf ( "can't validate build parameter %q: %w" , richParameter . Name , err )
30
+ return err
31
31
}
32
32
}
33
33
return nil
34
34
}
35
35
36
36
func ValidateWorkspaceBuildParameter (richParameter TemplateVersionParameter , buildParameter * WorkspaceBuildParameter , lastBuildParameter * WorkspaceBuildParameter ) error {
37
+ err := validateBuildParameter (richParameter , buildParameter , lastBuildParameter )
38
+ if err != nil {
39
+ name := richParameter .Name
40
+ if richParameter .DisplayName != "" {
41
+ name = richParameter .DisplayName
42
+ }
43
+ return xerrors .Errorf ("can't validate build parameter %q: %w" , name , err )
44
+ }
45
+ return nil
46
+ }
47
+
48
+ func validateBuildParameter (richParameter TemplateVersionParameter , buildParameter * WorkspaceBuildParameter , lastBuildParameter * WorkspaceBuildParameter ) error {
37
49
var value string
38
50
39
51
if buildParameter != nil {
@@ -51,22 +63,22 @@ func ValidateWorkspaceBuildParameter(richParameter TemplateVersionParameter, bui
51
63
if lastBuildParameter != nil && richParameter .Type == "number" && len (richParameter .ValidationMonotonic ) > 0 {
52
64
prev , err := strconv .Atoi (lastBuildParameter .Value )
53
65
if err != nil {
54
- return xerrors .Errorf ("Previous parameter value is not a number: %s" , lastBuildParameter .Value )
66
+ return xerrors .Errorf ("previous parameter value is not a number: %s" , lastBuildParameter .Value )
55
67
}
56
68
57
69
current , err := strconv .Atoi (buildParameter .Value )
58
70
if err != nil {
59
- return xerrors .Errorf ("Current parameter value is not a number: %s" , buildParameter .Value )
71
+ return xerrors .Errorf ("current parameter value is not a number: %s" , buildParameter .Value )
60
72
}
61
73
62
74
switch richParameter .ValidationMonotonic {
63
75
case MonotonicOrderIncreasing :
64
76
if prev > current {
65
- return xerrors .Errorf ("Parameter value must be equal or greater than previous value: %d" , prev )
77
+ return xerrors .Errorf ("parameter value must be equal or greater than previous value: %d" , prev )
66
78
}
67
79
case MonotonicOrderDecreasing :
68
80
if prev < current {
69
- return xerrors .Errorf ("Parameter value must be equal or lower than previous value: %d" , prev )
81
+ return xerrors .Errorf ("parameter value must be equal or lower than previous value: %d" , prev )
70
82
}
71
83
}
72
84
}
@@ -81,7 +93,7 @@ func ValidateWorkspaceBuildParameter(richParameter TemplateVersionParameter, bui
81
93
}
82
94
83
95
if ! matched {
84
- return xerrors .Errorf ("Parameter value must match one of options: %s" , parameterValuesAsArray (richParameter .Options ))
96
+ return xerrors .Errorf ("parameter value must match one of options: %s" , parameterValuesAsArray (richParameter .Options ))
85
97
}
86
98
return nil
87
99
}
0 commit comments