diff --git a/tools/goctl/api/dartgen/genapi.go b/tools/goctl/api/dartgen/genapi.go index c99e25bb..f1ffe186 100644 --- a/tools/goctl/api/dartgen/genapi.go +++ b/tools/goctl/api/dartgen/genapi.go @@ -35,7 +35,7 @@ import '../data/{{with .Service}}{{.Name}}{{end}}.dart'; /// {{.Name}} {{range $i, $Route := .Routes}} /// --{{.Path}}-- -/// +/// --{{.AtDoc}}-- /// request: {{with .RequestType}}{{.Name}}{{end}} /// response: {{with .ResponseType}}{{.Name}}{{end}} Future {{normalizeHandlerName .Handler}}( diff --git a/tools/goctl/api/dartgen/gendata.go b/tools/goctl/api/dartgen/gendata.go index 7894cfb3..b8821765 100644 --- a/tools/goctl/api/dartgen/gendata.go +++ b/tools/goctl/api/dartgen/gendata.go @@ -51,6 +51,8 @@ class {{.Name}} { m['{{getPropertyFromMember .}}']?.cast<{{getCoreType .Type.Name}}>() {{appendDefaultEmptyValue .Type.Name}} {{else if isClassListType .Type.Name}} ((m['{{getPropertyFromMember .}}'] {{appendDefaultEmptyValue .Type.Name}}) as List).map((i) => {{getCoreType .Type.Name}}.fromJson(i)).toList() + {{else if isMapType .Type.Name}} + {{if isNumberType .Type.Name}}num{{else}}{{.Type.Name}}{{end}}.from(m['{{getPropertyFromMember .}}'] ?? {}) {{else}} {{.Type.Name}}.fromJson(m['{{getPropertyFromMember .}}']){{end}} ,{{end}} @@ -61,6 +63,8 @@ class {{.Name}} { '{{getPropertyFromMember .}}': {{if isDirectType .Type.Name}} {{lowCamelCase .Name}} + {{else if isMapType .Type.Name}} + {{lowCamelCase .Name}} {{else if isClassListType .Type.Name}} {{lowCamelCase .Name}}{{if isNullableType .Type.Name}}?{{end}}.map((i) => i{{if isListItemsNullable .Type.Name}}?{{end}}.toJson()) {{else}} diff --git a/tools/goctl/api/dartgen/vars.go b/tools/goctl/api/dartgen/vars.go index 3dcff8e7..295551b9 100644 --- a/tools/goctl/api/dartgen/vars.go +++ b/tools/goctl/api/dartgen/vars.go @@ -20,6 +20,7 @@ var funcMap = template.FuncMap{ "hasUrlPathParams": hasUrlPathParams, "extractPositionalParamsFromPath": extractPositionalParamsFromPath, "makeDartRequestUrlPath": makeDartRequestUrlPath, + "isMapType": isMapType, } const (