in generate/generate.go [1290:1360]
func (s *service) generateConvertCode(cmd, name, typ string) {
pn := s.pn
switch typ {
case "string", "UUID":
pn("u.Set(\"%s\", v.(string))", name)
case "int":
pn("vv := strconv.Itoa(v.(int))")
pn("u.Set(\"%s\", vv)", name)
case "int64":
pn("vv := strconv.FormatInt(v.(int64), 10)")
pn("u.Set(\"%s\", vv)", name)
case "bool":
pn("vv := strconv.FormatBool(v.(bool))")
pn("u.Set(\"%s\", vv)", name)
case "[]string":
pn("vv := strings.Join(v.([]string), \",\")")
pn("u.Set(\"%s\", vv)", name)
case "[]map[string]string":
pn("l := v.([]map[string]string)")
pn("for i, m := range l {")
pn(" for key, val := range m {")
pn(" u.Set(fmt.Sprintf(\"%s[%%d].%%s\", i, key), val)", name)
pn(" }")
pn("}")
case "map[string]string":
pn("m := v.(map[string]string)")
zeroIndex := detailsRequireZeroIndex[cmd]
if zeroIndex {
pn("for _, k := range getSortedKeysFromMap(m) {")
} else {
pn("for i, k := range getSortedKeysFromMap(m) {")
}
switch name {
case "details":
if detailsRequireKeyValue[cmd] {
pn(" u.Set(fmt.Sprintf(\"%s[%%d].key\", i), k)", name)
pn(" u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
} else {
if zeroIndex {
pn(" u.Set(fmt.Sprintf(\"%s[0].%%s\", k), m[k])", name)
} else {
pn(" u.Set(fmt.Sprintf(\"%s[%%d].%%s\", i, k), m[k])", name)
}
}
case "serviceproviderlist":
pn(" u.Set(fmt.Sprintf(\"%s[%%d].service\", i), k)", name)
pn(" u.Set(fmt.Sprintf(\"%s[%%d].provider\", i), m[k])", name)
case "usersecuritygrouplist":
pn(" u.Set(fmt.Sprintf(\"%s[%%d].account\", i), k)", name)
pn(" u.Set(fmt.Sprintf(\"%s[%%d].group\", i), m[k])", name)
case "tags":
pn(" u.Set(fmt.Sprintf(\"%s[%%d].key\", i), k)", name)
if cmd == "deleteTags" {
pn(" if m[k] != \"\" {")
pn(" u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
pn(" }")
} else {
pn(" u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
}
default:
if zeroIndex && !detailsRequireKeyValue[cmd] {
pn(" u.Set(fmt.Sprintf(\"%s[0].%%s\", k), m[k])", name)
} else {
pn(" u.Set(fmt.Sprintf(\"%s[%%d].key\", i), k)", name)
pn(" u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
}
}
pn("}")
}
}