MCPcopy
hub / github.com/go-gorm/gorm / ConvertMapToValuesForCreate

Function ConvertMapToValuesForCreate

callbacks/helper.go:12–40  ·  view source on GitHub ↗

ConvertMapToValuesForCreate convert map to values

(stmt *gorm.Statement, mapValue map[string]interface{})

Source from the content-addressed store, hash-verified

10
11// ConvertMapToValuesForCreate convert map to values
12func ConvertMapToValuesForCreate(stmt *gorm.Statement, mapValue map[string]interface{}) (values clause.Values) {
13 values.Columns = make([]clause.Column, 0, len(mapValue))
14 selectColumns, restricted := stmt.SelectAndOmitColumns(true, false)
15
16 keys := make([]string, 0, len(mapValue))
17 for k := range mapValue {
18 keys = append(keys, k)
19 }
20 sort.Strings(keys)
21
22 for _, k := range keys {
23 value := mapValue[k]
24 if stmt.Schema != nil {
25 if field := stmt.Schema.LookUpField(k); field != nil {
26 k = field.DBName
27 }
28 }
29
30 if v, ok := selectColumns[k]; (ok && v) || (!ok && !restricted) {
31 values.Columns = append(values.Columns, clause.Column{Name: k})
32 if len(values.Values) == 0 {
33 values.Values = [][]interface{}{{}}
34 }
35
36 values.Values[0] = append(values.Values[0], value)
37 }
38 }
39 return
40}
41
42// ConvertSliceOfMapToValuesForCreate convert slice of map to values
43func ConvertSliceOfMapToValuesForCreate(stmt *gorm.Statement, mapValues []map[string]interface{}) (values clause.Values) {

Callers 2

ConvertToCreateValuesFunction · 0.85

Calls 2

SelectAndOmitColumnsMethod · 0.80
LookUpFieldMethod · 0.80

Tested by 1