|
1 |
| -{% macro parameter(parameter) %}{{ parameter.name | caseCamel }}: {{ parameter.type | typeName }}{% if not parameter.required %}? = null{% endif %}{% endmacro %} |
2 |
| -{% macro method_parameters(parameters, consumes) %} |
3 |
| -{% if parameters.all|length > 0 %}{% for parameter in parameters.all | filter((param) => not param.isGlobal) %}{{ '\n\t\t' }}{{ _self.parameter(parameter) }}{% if not loop.last %}{{ ',' }}{% endif %}{% endfor %}{% if 'multipart/form-data' in consumes %}, onProgress: ((UploadProgress) -> Unit)? = null{% endif %}{% endif %} |
4 |
| -{% endmacro %} |
5 |
| -{% macro methodNeedsSecurityParameters(method) %} |
6 |
| -{% if (method.type == "webAuth" or method.type == "location") and method.security|length > 0 %}{{ true }}{% else %}{{false}}{% endif %} |
7 |
| -{% endmacro %} |
8 |
| -{% macro resultType(namespace, method) %} |
9 |
| -{% if method.type == "webAuth" %}Bool{% elseif method.type == "location" %}ByteArray{% elseif not method.responseModel or method.responseModel == 'any' %}Any{% else %}{{ namespace | caseDot}}.models.{{method.responseModel | caseUcfirst}}{% endif %} |
10 |
| -{% endmacro %} |
| 1 | +{% import 'kotlin/base/macros/parameter.twig' as parameters %} |
| 2 | +{% import 'kotlin/base/macros/methodNeedsSecurityParameters.twig' as securityParameters %} |
| 3 | +{% import 'kotlin/base/macros/resultType.twig' as result %} |
11 | 4 | package {{ sdk.namespace | caseDot }}.services
|
12 | 5 | import {{ sdk.namespace | caseDot }}.Client
|
13 | 6 | import {{ sdk.namespace | caseDot }}.models.*
|
@@ -52,20 +45,20 @@ class {{ service.name | caseUcfirst }} : Service {
|
52 | 45 | {% for parameter in method.parameters.all | filter((param) => not param.isGlobal) %}
|
53 | 46 | * @param {{ parameter.name | caseCamel }} {{ parameter.description }}
|
54 | 47 | {% endfor %}
|
55 |
| - * {% if method.type != "webAuth" %}@return [{{ _self.resultType(sdk.namespace, method) }}]{% endif %} |
| 48 | + * {% if method.type != "webAuth" %}@return [{{ result.resultType(sdk.namespace, method) }}]{% endif %} |
56 | 49 |
|
57 | 50 | */
|
58 | 51 | @JvmOverloads
|
59 | 52 | @Throws({{ spec.title | caseUcfirst }}Exception::class)
|
60 |
| - suspend fun {{ method.name | caseCamel }}({% if method.type == "webAuth" %}{{ '\n\t\t' }}activity: ComponentActivity{% if method.parameters.all | length > 0 %}, {% endif %}{% endif %}{{ _self.method_parameters(method.parameters, method.consumes) }}{% if method.parameters.all|length > 0 %}{{ '\n\t' }}{% endif %}){% if method.type != "webAuth" %}: {{ _self.resultType(sdk.namespace, method) }}{% endif %} { |
| 53 | + suspend fun {{ method.name | caseCamel }}({% if method.type == "webAuth" %}{{ '\n\t\t' }}activity: ComponentActivity{% if method.parameters.all | length > 0 %}, {% endif %}{% endif %}{{ parameters.method_parameters(method.parameters, method.consumes) }}{% if method.parameters.all|length > 0 %}{{ '\n\t' }}{% endif %}){% if method.type != "webAuth" %}: {{ result.resultType(sdk.namespace, method) }}{% endif %} { |
61 | 54 | val path = "{{ method.path }}"{% for parameter in method.parameters.path %}.replace("{{ '{' ~ parameter.name | caseCamel ~ '}' }}", {{ parameter.name | caseCamel }}){% endfor %}
|
62 | 55 |
|
63 | 56 | val params = mutableMapOf<String, Any?>(
|
64 | 57 | {% for parameter in method.parameters.query | merge(method.parameters.body) %}
|
65 |
| - "{{ parameter.name }}" to {{ parameter.name | caseCamel }}{% if not loop.last or _self.methodNeedsSecurityParameters(method) %},{% endif %} |
| 58 | + "{{ parameter.name }}" to {{ parameter.name | caseCamel }}{% if not loop.last or securityParameters.methodNeedsSecurityParameters(method) %},{% endif %} |
66 | 59 |
|
67 | 60 | {% endfor %}
|
68 |
| -{% if _self.methodNeedsSecurityParameters(method) %} |
| 61 | +{% if securityParameters.methodNeedsSecurityParameters(method) %} |
69 | 62 | {% for node in method.security %}
|
70 | 63 | {% for key,header in node|keys %}
|
71 | 64 | "{{header|caseLower}}" to client.config["{{header|caseLower}}"]{% if not loop.last %},{% endif %}
|
@@ -116,56 +109,24 @@ class {{ service.name | caseUcfirst }} : Service {
|
116 | 109 | )
|
117 | 110 | }
|
118 | 111 | {% elseif method.type == 'location' %}
|
119 |
| - return client.call( |
120 |
| - "{{ method.method | caseUpper }}", |
121 |
| - path, |
122 |
| - params = params, |
123 |
| - responseType = {{ _self.resultType(sdk.namespace, method) }}::class.java |
124 |
| - ) |
| 112 | +{{ include('kotlin/base/requests/location.twig') }} |
125 | 113 | {% else %}
|
126 | 114 | val headers = mutableMapOf(
|
127 | 115 | {{ method.headers|map((header, key) => " \"#{key}\" to \"#{header}\"")|join(',\n')|raw }}
|
128 | 116 | )
|
129 | 117 | {% if method.responseModel %}
|
130 |
| - val converter: (Map<String, Any>) -> {{ _self.resultType(sdk.namespace, method) }} = { |
| 118 | + val converter: (Map<String, Any>) -> {{ result.resultType(sdk.namespace, method) }} = { |
131 | 119 | {% if method.responseModel == 'any' %}
|
132 | 120 | it
|
133 | 121 | {% else %}
|
134 |
| - {{ _self.resultType(sdk.namespace, method) }}.from(map = it) |
| 122 | + {{ result.resultType(sdk.namespace, method) }}.from(map = it) |
135 | 123 | {% endif %}
|
136 | 124 | }
|
137 | 125 | {% endif %}
|
138 | 126 | {% if 'multipart/form-data' in method.consumes %}
|
139 |
| - val idParamName: String? = {% if method.parameters.all | filter(p => p.isUploadID) | length > 0 %}{% for parameter in method.parameters.all | filter(parameter => parameter.isUploadID) %}"{{ parameter.name }}"{% endfor %}{% else %}null{% endif %} |
140 |
| - |
141 |
| -{% for parameter in method.parameters.all %} |
142 |
| -{% if parameter.type == 'file' %} |
143 |
| - val paramName = "{{ parameter.name }}" |
144 |
| -{% endif %} |
145 |
| -{% endfor %} |
146 |
| - return client.chunkedUpload( |
147 |
| - path, |
148 |
| - headers, |
149 |
| - params, |
150 |
| - responseType = {{ _self.resultType(sdk.namespace, method) }}::class.java, |
151 |
| -{% if method.responseModel %} |
152 |
| - converter, |
153 |
| -{% endif %} |
154 |
| - paramName, |
155 |
| - idParamName, |
156 |
| - onProgress, |
157 |
| - ) |
| 127 | +{{include('kotlin/base/requests/file.twig')}} |
158 | 128 | {% else %}
|
159 |
| - return client.call( |
160 |
| - "{{ method.method | caseUpper }}", |
161 |
| - path, |
162 |
| - headers, |
163 |
| - params, |
164 |
| - responseType = {{ _self.resultType(sdk.namespace, method) }}::class.java, |
165 |
| -{% if method.responseModel %} |
166 |
| - converter, |
167 |
| -{% endif %} |
168 |
| - ) |
| 129 | +{{include('kotlin/base/requests/api.twig')}} |
169 | 130 | {% endif %}
|
170 | 131 | {% endif %}
|
171 | 132 | }
|
|
0 commit comments