From 72cc17b41ccf23551826015c94f4c50e56b78d9c Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Sun, 25 Jan 2015 12:24:33 -0500 Subject: [PATCH] Omit empty quotes in message when required value field error type --- pkg/api/errors/validation.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/pkg/api/errors/validation.go b/pkg/api/errors/validation.go index a204e348cec..e025777a0b5 100644 --- a/pkg/api/errors/validation.go +++ b/pkg/api/errors/validation.go @@ -84,13 +84,29 @@ type ValidationError struct { var _ error = &ValidationError{} func (v *ValidationError) Error() string { - s := spew.Sprintf("%s: %s '%+v'", v.Field, v.Type, v.BadValue) - if v.Detail != "" { + var s string + if v.Type == ValidationErrorTypeRequired && isEmpty(v.BadValue) { + s = spew.Sprintf("%s: %s", v.Field, v.Type) + } else { + s = spew.Sprintf("%s: %s '%+v'", v.Field, v.Type, v.BadValue) + } + if len(v.Detail) != 0 { s += fmt.Sprintf(": %s", v.Detail) } return s } +func isEmpty(obj interface{}) bool { + if obj == nil { + return true + } + switch t := obj.(type) { + case string: + return len(t) == 0 + } + return false +} + // NewFieldRequired returns a *ValidationError indicating "value required" func NewFieldRequired(field string, value interface{}) *ValidationError { return &ValidationError{ValidationErrorTypeRequired, field, value, ""}