translateSchemaConstraintMessage rewrites jsonschema range-constraint messages into plain English. Examples: - "minimum: got -45, want 1" → "must be at least 1 (got -45)" - "maximum: got 120, want 60" → "must be at most 60 (got 120)"
(message string)
| 27 | // - "minimum: got -45, want 1" → "must be at least 1 (got -45)" |
| 28 | // - "maximum: got 120, want 60" → "must be at most 60 (got 120)" |
| 29 | func translateSchemaConstraintMessage(message string) string { |
| 30 | if m := minConstraintPattern.FindStringSubmatch(message); len(m) == 3 { |
| 31 | schemaErrorsLog.Printf("Translating minimum constraint message: got=%s want=%s", m[1], m[2]) |
| 32 | return fmt.Sprintf("must be at least %s (got %s)", m[2], m[1]) |
| 33 | } |
| 34 | if m := maxConstraintPattern.FindStringSubmatch(message); len(m) == 3 { |
| 35 | schemaErrorsLog.Printf("Translating maximum constraint message: got=%s want=%s", m[1], m[2]) |
| 36 | return fmt.Sprintf("must be at most %s (got %s)", m[2], m[1]) |
| 37 | } |
| 38 | return message |
| 39 | } |
| 40 | |
| 41 | // cleanJSONSchemaErrorMessage removes unhelpful prefixes from jsonschema validation errors |
| 42 | func cleanJSONSchemaErrorMessage(errorMsg string) string { |