1- {{define " methodDefine" }}{{.MethodName }}({{if or .IsStreamServer .IsStreamClient }}{{else }}ctx context.Context ,{{end }}{{ .Request.FullName }}) ({{if or .IsStreamServer .IsStreamClient }}*restc.Request {{else }}{{.Response.FullName }}{{end }}, error){{end }}
21package plugins
32
43import (
5- {{range $plugin := .Plugins }}{{if $plugin .UngroupedAPIs }}" context"
6- {{break}}{{end }}{{end }}" github.com/jzero-io/jzero/core/restc"
7- {{range $plugin := .Plugins }}{{range $resource := $plugin .Resources }}
8- {{$plugin .Name | ToCamel | FirstLower}}{{$resource | ToCamel | FirstUpper}} " {{$.Module}}/plugins/{{$plugin.Name}}/typed/{{$resource | lower}}" {{end }}
9- {{range $v := $plugin .GoImportPaths | uniq}}" {{$v}}"
10- {{end }}{{end }}
4+ " github.com/jzero-io/jzero/core/restc"
115)
126
137type Plugins interface {
14- {{range $plugin := .Plugins }} {{$plugin .Name | ToCamel | FirstUpper}}() {{$plugin .Name | ToCamel | FirstUpper}}
8+ {{range $pluginName := .PluginNames }} {{$pluginName | ToCamel | FirstUpper}}() {{$pluginName | ToCamel | FirstUpper}}
159{{end }}
1610}
1711
18- {{range $plugin := .Plugins }}
19- type {{$plugin .Name | ToCamel | FirstUpper}} interface {
20- {{range $resource := $plugin .Resources }} {{$resource | ToCamel | FirstUpper}}() {{$plugin .Name | ToCamel | FirstLower}}{{$resource | ToCamel | FirstUpper}}. {{$resource | ToCamel | FirstUpper}}
21- {{end }}{{range $k , $v := $plugin .UngroupedAPIs }} // {{$v .MethodName }} {{.Comments }}
22- // {{$v .Method }}:{{$v .URL }}
23- {{template " methodDefine" $v }}
24- {{end }}
25- }
26-
27- type {{$plugin .Name | ToCamel | FirstLower}} struct {
28- client restc.Client
29- {{range $resource := $plugin .Resources }} {{$resource | ToCamel | FirstLower}} {{$plugin .Name | ToCamel | FirstLower}}{{$resource | ToCamel | FirstUpper}}. {{$resource | ToCamel | FirstUpper}}
12+ type plugins struct {
13+ {{range $pluginName := .PluginNames }} {{$pluginName | ToCamel | FirstLower}} {{$pluginName | ToCamel | FirstUpper}}
3014{{end }}
3115}
3216
33- {{range $resource := $plugin .Resources }}func (h {{ $plugin .Name | ToCamel | FirstLower}} ) {{$resource | ToCamel | FirstUpper}}() {{$plugin .Name | ToCamel | FirstLower}}{{ $resource | ToCamel | FirstUpper}} . {{ $resource | ToCamel | FirstUpper}} {
34- return h . {{$resource | ToCamel | FirstLower}}
17+ {{range $pluginName := .PluginNames }}func (p *plugins ) {{$pluginName | ToCamel | FirstUpper}}() {{$pluginName | ToCamel | FirstUpper}} {
18+ return p . {{$pluginName | ToCamel | FirstLower}}
3519}
3620
37- {{end }}{{range $k , $v := $plugin .UngroupedAPIs }}func (h {{$plugin .Name | ToCamel | FirstLower}}) {{template " methodDefine" $v }} {
38- {{if or $v .IsStreamServer $v .IsStreamClient }}request := h.client.Verb (" {{$v.Method}}" ).
39- Path(
40- " {{$v.URL}}" ,{{range $p := $v .PathParams }}
41- restc.PathParam {Name: " {{$p.Name}}" , Value: in. {{$p .GoName }}},{{end }}
42- )
43- return request, nil {{else }}var resp {{$v .Response.FullName }}
44- err := h.client.Verb (" {{$v.Method}}" ).
45- Path(
46- " {{$v.URL}}" ,{{range $p := $v .PathParams }}
47- restc.PathParam {Name: " {{$p.Name}}" , Value: in. {{$p .GoName }}},{{end }}
48- ).
49- Params({{if eq $v .Request.Body " *" }}{{else }}{{range $q := $v .QueryParams }}
50- restc.QueryParam {Name: " {{$q.Name}}" , Value: in. {{$q .GoName }}},{{end }}{{end }}
51- ).
52- {{ if or (eq $v .Method " GET" ) (eq $v .Method " DELETE" ) }}{{else }}Body({{if eq $v .Request.Body " " }}nil {{else if eq $v .Request.Body " *" }}in{{else if or (ne $v .Method " GET" ) (ne $v .Method " DELETE" )}}in. {{$v .Request.RealBodyName }}{{else }}nil {{end }}). {{end }}
53- Do(ctx).
54- Into(&resp, {{if $v .WrapCodeMsg }}&restc.IntoOptions {
55- WrapCodeMsg: true,
56- {{if $v .WrapCodeMsgMapping }}WrapCodeMsgMapping: restc.WrapCodeMsgMapping {
57- Code: " {{$v.WrapCodeMsgMapping.Code}}" ,
58- Data: " {{$v.WrapCodeMsgMapping.Data}}" ,
59- Msg: " {{$v.WrapCodeMsgMapping.Msg}}" ,
60- },{{end }}
61- }{{else }}nil {{end }})
62-
63- if err != nil {
64- return nil , err
65- }
66-
67- return resp, nil {{end }}
68- }
69- {{end }}{{end }}
21+ {{end }}
7022
7123func NewPlugins(c restc.Client ) Plugins {
7224 return &plugins{
73- {{range $plugin := .Plugins }} {{$plugin .Name | ToCamel | FirstLower}}: &{{$plugin .Name | ToCamel | FirstLower}}{
74- client: c,
75- {{range $resource := $plugin .Resources }} {{$resource | ToCamel | FirstLower}}: {{$plugin .Name | ToCamel | FirstLower}}{{$resource | ToCamel | FirstUpper}}.New {{$resource | ToCamel | FirstUpper}}(c),
76- {{end }} },
25+ {{range $pluginName := .PluginNames }} {{$pluginName | ToCamel | FirstLower}}: New{{$pluginName | ToCamel | FirstUpper}}(c),
7726{{end }}
7827 }
79- }
80-
81- type plugins struct {
82- {{range $plugin := .Plugins }} {{$plugin .Name | ToCamel | FirstLower}} {{$plugin .Name | ToCamel | FirstUpper}}
83- {{end }}
84- }
85-
86- {{range $plugin := .Plugins }}func (p *plugins) {{$plugin .Name | ToCamel | FirstUpper}}() {{$plugin .Name | ToCamel | FirstUpper}} {
87- return p. {{$plugin .Name | ToCamel | FirstLower}}
88- }
89-
90- {{end }}
28+ }
0 commit comments