diff --git a/entities/field.go b/entities/field.go index 034500a..035c024 100644 --- a/entities/field.go +++ b/entities/field.go @@ -6,7 +6,6 @@ import ( "strings" ) - type Field struct { Name string Type string @@ -21,37 +20,37 @@ func (f *Field) GenerateType() string { if slices.Contains(PRIMITIVE_TYPES, strings.ToLower(f.Type)) { result += fmt.Sprintf(` primitive: "%s",`, strings.ToLower(f.Type)) } else { - var field string + var field string = "[]" for _, meta := range f.Medatada { if meta.Name == "field" { - field = "['" + strings.Join(meta.Values, "', '") + "']" + if len(meta.Values) > 0 { + field = "['" + strings.Join(meta.Values, "', '") + "']" + } } } result += fmt.Sprintf(` nested: { values: [], field: %s }, `, field) -} -result += "\n }" - for _, meta := range f.Medatada { - if meta.Name == "many" { - result += "\n many: true }" - } } + result += "\n }," return result } func (f *Field) Generate() string { result := "{\n" for _, meta := range f.Medatada { - if (meta.Name == "hidden") { + if meta.Name == "hidden" { result += " hidden: true,\n" } else if meta.Name == "label" { - result += fmt.Sprintf(` russian: "%s",` + "\n", meta.Values[0]) - } else if (meta.Name == "readonly") { + result += fmt.Sprintf(` russian: "%s",`+"\n", meta.Values[0]) + } else if meta.Name == "readonly" { result += " readonly: true,\n" } } + if f.Type[0:2] == "[]" { + result += " many: true,\n" + } result += f.GenerateType() return result + "\n}" -} \ No newline at end of file +} diff --git a/entities/metadata.go b/entities/metadata.go index 9a9ba91..75e6848 100644 --- a/entities/metadata.go +++ b/entities/metadata.go @@ -1,6 +1,8 @@ package entities -import "strings" +import ( + "strings" +) type Medatada struct { Name string diff --git a/utils/split_struct_field.go b/utils/split_struct_field.go index 4a9221d..b137d90 100644 --- a/utils/split_struct_field.go +++ b/utils/split_struct_field.go @@ -40,7 +40,6 @@ func SplitStructField(field string) *entities.Field { startBacktip = len(field) } - field = strings.TrimSpace(field[:startBacktip]) data := strings.Split(field, " ")