Skip to content

Commit

Permalink
resolve linter
Browse files Browse the repository at this point in the history
  • Loading branch information
Umang01-hash committed Sep 13, 2024
1 parent 1e01033 commit 4373eec
Showing 1 changed file with 40 additions and 22 deletions.
62 changes: 40 additions & 22 deletions pkg/gofr/http/form_data_binder.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,38 +120,20 @@ func (*formData) setStructValue(value reflect.Value, data string) (bool, error)
func setFieldValueFromData(field reflect.Value, data interface{}) error {
switch field.Kind() {
case reflect.String:
if val, ok := data.(string); ok {
field.SetString(val)
} else {
return fmt.Errorf("%w: expected string but got %T", errUnsupportedFieldType, data)
}
return setStringField(field, data)
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
if val, ok := data.(int); ok {
field.SetInt(int64(val))
} else {
return fmt.Errorf("%w: expected int but got %T", errUnsupportedFieldType, data)
}
return setIntField(field, data)
case reflect.Float32, reflect.Float64:
if val, ok := data.(float64); ok {
field.SetFloat(val)
} else {
return fmt.Errorf("%w: expected float64 but got %T", errUnsupportedFieldType, data)
}
return setFloatField(field, data)
case reflect.Bool:
if val, ok := data.(bool); ok {
field.SetBool(val)
} else {
return fmt.Errorf("%w: expected bool but got %T", errUnsupportedFieldType, data)
}
return setBoolField(field, data)
case reflect.Invalid, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,
reflect.Complex64, reflect.Complex128, reflect.Array, reflect.Chan, reflect.Func, reflect.Interface, reflect.Map,
reflect.Pointer, reflect.Slice, reflect.Struct, reflect.UnsafePointer:
return fmt.Errorf("%w: %s, %T", errUnsupportedFieldType, field.Type().Name(), data)
default:
return fmt.Errorf("%w: %s, %T", errUnsupportedFieldType, field.Type().Name(), data)
}

return nil
}

type customUnmarshaller struct {
Expand Down Expand Up @@ -191,3 +173,39 @@ func parseStringToMap(data string) (map[string]interface{}, error) {

return c.dataMap, err
}

func setStringField(field reflect.Value, data interface{}) error {
if val, ok := data.(string); ok {
field.SetString(val)
return nil
}

return fmt.Errorf("%w: expected string but got %T", errUnsupportedFieldType, data)
}

func setIntField(field reflect.Value, data interface{}) error {
if val, ok := data.(int); ok {
field.SetInt(int64(val))
return nil
}

return fmt.Errorf("%w: expected int but got %T", errUnsupportedFieldType, data)
}

func setFloatField(field reflect.Value, data interface{}) error {
if val, ok := data.(float64); ok {
field.SetFloat(val)
return nil
}

return fmt.Errorf("%w: expected float64 but got %T", errUnsupportedFieldType, data)
}

func setBoolField(field reflect.Value, data interface{}) error {
if val, ok := data.(bool); ok {
field.SetBool(val)
return nil
}

return fmt.Errorf("%w: expected bool but got %T", errUnsupportedFieldType, data)
}

0 comments on commit 4373eec

Please sign in to comment.