(val string, v *StringValidation)
| 228 | } |
| 229 | |
| 230 | func ValidateStringVal(val string, v *StringValidation) error { |
| 231 | if v.RequireCortexResources { |
| 232 | if err := checkOnlyCortexResources(val); err != nil { |
| 233 | return err |
| 234 | } |
| 235 | } else if !v.AllowCortexResources { |
| 236 | if err := checkNoCortexResources(val); err != nil { |
| 237 | return err |
| 238 | } |
| 239 | } |
| 240 | |
| 241 | if !v.AllowEmpty { |
| 242 | if len(val) == 0 { |
| 243 | return ErrorCannotBeEmpty() |
| 244 | } |
| 245 | } |
| 246 | |
| 247 | if len(v.AllowedValues) > 0 { |
| 248 | if !slices.HasString(append(v.AllowedValues, v.HiddenAllowedValues...), val) { |
| 249 | return ErrorInvalidStr(val, v.AllowedValues[0], v.AllowedValues[1:]...) |
| 250 | } |
| 251 | } |
| 252 | |
| 253 | if len(v.DisallowedValues) > 0 { |
| 254 | if slices.HasString(v.DisallowedValues, val) { |
| 255 | return ErrorDisallowedValue(val) |
| 256 | } |
| 257 | } |
| 258 | |
| 259 | if v.MaxLength > 0 && len(val) > v.MaxLength { |
| 260 | return ErrorTooLong(val, v.MaxLength) |
| 261 | } |
| 262 | |
| 263 | if v.MinLength > 0 && len(val) < v.MinLength { |
| 264 | return ErrorTooShort(val, v.MinLength) |
| 265 | } |
| 266 | |
| 267 | if v.Prefix != "" { |
| 268 | if !strings.HasPrefix(val, v.Prefix) { |
| 269 | return ErrorMustHavePrefix(val, v.Prefix) |
| 270 | } |
| 271 | } |
| 272 | |
| 273 | if v.Suffix != "" { |
| 274 | if !strings.HasSuffix(val, v.Suffix) { |
| 275 | return ErrorMustHaveSuffix(val, v.Suffix) |
| 276 | } |
| 277 | } |
| 278 | |
| 279 | for _, invalidPrefix := range v.InvalidPrefixes { |
| 280 | if strings.HasPrefix(val, invalidPrefix) { |
| 281 | return ErrorCantHavePrefix(val, invalidPrefix) |
| 282 | } |
| 283 | } |
| 284 | |
| 285 | for _, invalidSuffix := range v.InvalidSuffixes { |
| 286 | if strings.HasSuffix(val, invalidSuffix) { |
| 287 | return ErrorCantHaveSuffix(val, invalidSuffix) |
no test coverage detected