diff --git a/callback_query.go b/callback_query.go index b86f41f0..6e592ac9 100644 --- a/callback_query.go +++ b/callback_query.go @@ -52,7 +52,7 @@ func Query(scope *Scope) { columns, _ := rows.Columns() var values []interface{} for _, value := range columns { - field := elem.FieldByName(snakeToUpperCamel(strings.ToLower(value))) + field := elem.FieldByName(SnakeToUpperCamel(strings.ToLower(value))) if field.IsValid() { values = append(values, field.Addr().Interface()) } else { diff --git a/scope.go b/scope.go index 65f85f41..05e45fc7 100644 --- a/scope.go +++ b/scope.go @@ -96,7 +96,7 @@ func (scope *Scope) PrimaryKeyValue() interface{} { data := reflect.Indirect(reflect.ValueOf(scope.Value)) if data.Kind() == reflect.Struct { - if field := data.FieldByName(snakeToUpperCamel(scope.PrimaryKey())); field.IsValid() { + if field := data.FieldByName(SnakeToUpperCamel(scope.PrimaryKey())); field.IsValid() { return field.Interface() } } @@ -121,7 +121,7 @@ func (scope *Scope) SetColumn(column string, value interface{}) { } data := reflect.Indirect(reflect.ValueOf(scope.Value)) - setFieldValue(data.FieldByName(snakeToUpperCamel(column)), value) + setFieldValue(data.FieldByName(SnakeToUpperCamel(column)), value) } // CallMethod invoke method with necessary argument @@ -196,7 +196,7 @@ func (scope *Scope) TableName() string { } } - str := toSnake(data.Type().Name()) + str := ToSnake(data.Type().Name()) if !scope.db.parent.singularTable { for index, reg := range pluralMapKeys { @@ -246,7 +246,7 @@ func (scope *Scope) Fields() []*Field { var field Field field.Name = fieldStruct.Name - field.DBName = toSnake(fieldStruct.Name) + field.DBName = ToSnake(fieldStruct.Name) value := indirectValue.FieldByName(fieldStruct.Name) field.Value = value.Interface() diff --git a/scope_private.go b/scope_private.go index 6a46eb80..6298c3d7 100644 --- a/scope_private.go +++ b/scope_private.go @@ -266,7 +266,7 @@ func (scope *Scope) updatedAttrsWithValues(values map[string]interface{}, ignore } for key, value := range values { - if field := data.FieldByName(snakeToUpperCamel(key)); field.IsValid() { + if field := data.FieldByName(SnakeToUpperCamel(key)); field.IsValid() { func() { defer func() { if err := recover(); err != nil { @@ -400,7 +400,7 @@ func (scope *Scope) related(value interface{}, foreignKeys ...string) *Scope { if foreignValue, ok := scope.FieldByName(foreignKey); ok { return toScope.inlineCondition(foreignValue).callCallbacks(scope.db.parent.callback.queries) } else if toScope.HasColumn(foreignKey) { - sql := fmt.Sprintf("%v = ?", scope.Quote(toSnake(foreignKey))) + sql := fmt.Sprintf("%v = ?", scope.Quote(ToSnake(foreignKey))) return toScope.inlineCondition(sql, scope.PrimaryKeyValue()).callCallbacks(scope.db.parent.callback.queries) } } @@ -489,7 +489,7 @@ func (scope *Scope) getPrimaryKey() string { // if primaryKey tag found, return column name if fieldStruct.Tag.Get("primaryKey") != "" { - return toSnake(fieldStruct.Name) + return ToSnake(fieldStruct.Name) } } diff --git a/utils.go b/utils.go index b0854ff3..d1587660 100644 --- a/utils.go +++ b/utils.go @@ -32,7 +32,7 @@ func (s *safeMap) Get(key string) string { func FieldByName(name string, value interface{}, withAddr ...bool) (interface{}, bool) { data := reflect.Indirect(reflect.ValueOf(value)) - name = snakeToUpperCamel(name) + name = SnakeToUpperCamel(name) if data.Kind() == reflect.Struct { if field := data.FieldByName(name); field.IsValid() { @@ -60,7 +60,7 @@ func newSafeMap() *safeMap { var smap = newSafeMap() var umap = newSafeMap() -func toSnake(u string) string { +func ToSnake(u string) string { if v := smap.Get(u); v != "" { return v } @@ -78,7 +78,7 @@ func toSnake(u string) string { return s } -func snakeToUpperCamel(s string) string { +func SnakeToUpperCamel(s string) string { if v := umap.Get(s); v != "" { return v } @@ -154,7 +154,7 @@ func convertInterfaceToMap(values interface{}) map[string]interface{} { switch value := values.(type) { case map[string]interface{}: for k, v := range value { - attrs[toSnake(k)] = v + attrs[ToSnake(k)] = v } case []interface{}: for _, v := range value { @@ -168,7 +168,7 @@ func convertInterfaceToMap(values interface{}) map[string]interface{} { switch reflectValue.Kind() { case reflect.Map: for _, key := range reflectValue.MapKeys() { - attrs[toSnake(key.Interface().(string))] = reflectValue.MapIndex(key).Interface() + attrs[ToSnake(key.Interface().(string))] = reflectValue.MapIndex(key).Interface() } default: scope := Scope{Value: values}