From 695454b7174982205b30d3b4d9daaba70fd112e3 Mon Sep 17 00:00:00 2001 From: jiuker <2818723467@qq.com> Date: Thu, 10 Aug 2023 11:51:34 +0800 Subject: [PATCH] Revert "fix: *string(nil) not equal &string #152" This reverts commit 348543c76e9210df64cdda6b5a2a99a6df80b628. Signed-off-by: Vlad Gogolev --- values.go | 18 +++--------------- values_test.go | 32 -------------------------------- 2 files changed, 3 insertions(+), 47 deletions(-) diff --git a/values.go b/values.go index 0f50d48..080fe21 100644 --- a/values.go +++ b/values.go @@ -161,22 +161,10 @@ func ReadOnly(ctx context.Context, path, in string, data interface{}) *errors.Va func Required(path, in string, data interface{}) *errors.Validation { val := reflect.ValueOf(data) if val.IsValid() { - typ := reflect.TypeOf(data) - switch typ.Kind() { - case reflect.Pointer: - if val.IsNil() { - return errors.Required(path, in, data) - } - if reflect.DeepEqual(reflect.Zero(val.Elem().Type()).Interface(), val.Elem().Interface()) { - return errors.Required(path, in, data) - } - return nil - default: - if reflect.DeepEqual(reflect.Zero(val.Type()).Interface(), val.Interface()) { - return errors.Required(path, in, data) - } - return nil + if reflect.DeepEqual(reflect.Zero(val.Type()).Interface(), val.Interface()) { + return errors.Required(path, in, data) } + return nil } return errors.Required(path, in, data) } diff --git a/values_test.go b/values_test.go index fca2237..cb25465 100644 --- a/values_test.go +++ b/values_test.go @@ -195,26 +195,10 @@ func TestValues_ValidateRequired(t *testing.T) { path := "test" in := "body" - emptyString := "" - emptyStringStruct := struct { - A *string - }{ - A: &emptyString, - } - - emptyNumber := 0 - emptyNumberStruct := struct { - A *int - }{ - A: &emptyNumber, - } - RequiredFail := []interface{}{ "", 0, nil, - emptyStringStruct.A, - emptyNumberStruct.A, } for _, v := range RequiredFail { @@ -222,27 +206,11 @@ func TestValues_ValidateRequired(t *testing.T) { assert.Error(t, err) } - notEmptyString := "bla" - notEmptyStringStruct := struct { - A *string - }{ - A: ¬EmptyString, - } - - notEmptyNumber := 1 - notEmptyNumberStruct := struct { - A *int - }{ - A: ¬EmptyNumber, - } - RequiredSuccess := []interface{}{ " ", "bla-bla-bla", 2, []interface{}{21, []int{}, "testString"}, - notEmptyStringStruct.A, - notEmptyNumberStruct.A, } for _, v := range RequiredSuccess {