...
1{{#if (and (ne operation.description undefined) (ne operation.description "Success") )}}// {{operation.description}}{{/if}}
2func (m *{{modelName}}Resource) {{ucFirst operation.operationId}}({{operationArgumentBuilder operation}}) {{returnType
3 operation}}{
4 url := fmt.Sprintf({{{getPath operation}}}, {{getPathParams operation}})
5 {{#if operation.queryParams.length}}
6 if qp != nil {
7 url = url + qp.String()
8 }
9 {{/if}}
10
11 rq := m.client.CloneRequestExecutor()
12
13 fo, err := os.Open({{operation.formData.0.name}})
14 if err != nil {
15 {{#if (ne operation.responseModel undefined)}}
16 return nil, nil, err
17 {{else}}
18 return nil, err
19 {{/if}}
20 }
21 defer fo.Close()
22 body := &bytes.Buffer{}
23 writer := multipart.NewWriter(body)
24 fw, err := writer.CreateFormFile("{{operation.formData.0.name}}", {{operation.formData.0.name}})
25
26 if err != nil {
27 {{#if (ne operation.responseModel undefined)}}
28 return nil, nil, err
29 {{else}}
30 return nil, err
31 {{/if}}
32 }
33 _, err = io.Copy(fw, fo)
34 if err != nil {
35 {{#if (ne operation.responseModel undefined)}}
36 return nil, nil, err
37 {{else}}
38 return nil, err
39 {{/if}}
40 }
41 _ = writer.Close()
42
43 req, err := rq.WithAccept("{{operation.produces.[0]}}").WithContentType(writer.FormDataContentType()).NewRequest("{{strToUpper operation.method}}", url, body)
44
45
46 if err != nil {
47 {{#if (ne operation.responseModel undefined)}}
48 return nil, nil, err
49 {{else}}
50 return nil, err
51 {{/if}}
52 }
53
54
55 {{#if (ne operation.responseModel undefined)}}
56 {{#if (ne operation.isArray undefined)}}
57 {{#if (responseModelInterface operation.operationId) }}
58 {{#if (applicationModelInterface operation.operationId) }}
59 var {{lowercaseFirstLetter operation.responseModel}} []Application
60 {{else if (factorModelInterface operation.operationId) }}
61 var {{lowercaseFirstLetter operation.responseModel}} []UserFactor
62 {{else if (catalogApplicationInterface operation.operationId) }}
63 var {{lowercaseFirstLetter operation.responseModel}} []*CatalogApplication
64 {{else}}
65 var {{lowercaseFirstLetter operation.responseModel}} []interface{}
66 {{/if}}
67 {{else}}
68 var {{lowercaseFirstLetter operation.responseModel}} []*{{operation.responseModel}}
69 {{/if}}
70 {{else}}
71 {{#if (or (eq operation.responseModel "Application") (eq operation.responseModel "Factor"))}}
72 {{#if (eq operation.operationId "getApplication")}}
73 {{lowercaseFirstLetter operation.responseModel}} := appInstance
74 {{else if (factorInstanceOperation operation.operationId) }}
75 {{lowercaseFirstLetter operation.responseModel}} := factorInstance
76 {{else}}
77 {{lowercaseFirstLetter operation.responseModel}} := body
78 {{/if}}
79 {{else}}
80 var {{lowercaseFirstLetter operation.responseModel}} *{{operation.responseModel}}
81 {{/if}}
82 {{/if}}
83
84 resp, err := rq.Do(ctx, req, &{{lowercaseFirstLetter operation.responseModel}})
85 if err != nil {
86 {{#if (ne operation.responseModel undefined)}}
87 return nil, resp, err
88 {{/if}}
89 }
90
91 {{#if (applicationModelInterface operation.operationId) }}
92 apps := make([]App, len({{lowercaseFirstLetter operation.responseModel}}))
93 for i := range {{lowercaseFirstLetter operation.responseModel}} {
94 apps[i] = &{{lowercaseFirstLetter operation.responseModel}}[i]
95 }
96 return apps, resp, nil
97
98 {{else if (factorModelInterface operation.operationId) }}
99 factors := make([]Factor, len({{lowercaseFirstLetter operation.responseModel}}))
100 for i := range {{lowercaseFirstLetter operation.responseModel}} {
101 factors[i] = &{{lowercaseFirstLetter operation.responseModel}}[i]
102 }
103 return factors, resp, nil
104
105 {{else}}
106
107 return {{lowercaseFirstLetter operation.responseModel}}, resp, nil
108 {{/if}}
109 {{else}}
110
111 resp, err := m.client.requestExecutor.Do(ctx, req, nil)
112 if err != nil {
113 {{#if (ne operation.responseModel undefined)}}
114 return nil, resp, err
115 {{else if (eq operation.responseModel undefined)}}
116 return resp, err
117 {{/if}}
118 }
119
120 return resp, nil
121 {{/if}}
122}
View as plain text