|
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/utils.twig' as utils %} |
11 | 2 | package {{ sdk.namespace | caseDot }}.services
|
12 | 3 | import {{ sdk.namespace | caseDot }}.Client
|
13 | 4 | import {{ sdk.namespace | caseDot }}.models.*
|
@@ -52,20 +43,20 @@ class {{ service.name | caseUcfirst }} : Service {
|
52 | 43 | {% for parameter in method.parameters.all | filter((param) => not param.isGlobal) %}
|
53 | 44 | * @param {{ parameter.name | caseCamel }} {{ parameter.description }}
|
54 | 45 | {% endfor %}
|
55 |
| - * {% if method.type != "webAuth" %}@return [{{ _self.resultType(sdk.namespace, method) }}]{% endif %} |
| 46 | + * {% if method.type != "webAuth" %}@return [{{ utils.resultType(sdk.namespace, method) }}]{% endif %} |
56 | 47 |
|
57 | 48 | */
|
58 | 49 | @JvmOverloads
|
59 | 50 | @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 %} { |
| 51 | + suspend fun {{ method.name | caseCamel }}({% if method.type == "webAuth" %}{{ '\n\t\t' }}activity: ComponentActivity{% if method.parameters.all | length > 0 %}, {% endif %}{% endif %}{{ utils.method_parameters(method.parameters, method.consumes) }}{% if method.parameters.all|length > 0 %}{{ '\n\t' }}{% endif %}){% if method.type != "webAuth" %}: {{ utils.resultType(sdk.namespace, method) }}{% endif %} { |
61 | 52 | val path = "{{ method.path }}"{% for parameter in method.parameters.path %}.replace("{{ '{' ~ parameter.name | caseCamel ~ '}' }}", {{ parameter.name | caseCamel }}){% endfor %}
|
62 | 53 |
|
63 | 54 | val params = mutableMapOf<String, Any?>(
|
64 | 55 | {% 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 %} |
| 56 | + "{{ parameter.name }}" to {{ parameter.name | caseCamel }}{% if not loop.last or utils.methodNeedsSecurityParameters(method) %},{% endif %} |
66 | 57 |
|
67 | 58 | {% endfor %}
|
68 |
| -{% if _self.methodNeedsSecurityParameters(method) %} |
| 59 | +{% if utils.methodNeedsSecurityParameters(method) %} |
69 | 60 | {% for node in method.security %}
|
70 | 61 | {% for key,header in node|keys %}
|
71 | 62 | "{{header|caseLower}}" to client.config["{{header|caseLower}}"]{% if not loop.last %},{% endif %}
|
@@ -116,56 +107,24 @@ class {{ service.name | caseUcfirst }} : Service {
|
116 | 107 | )
|
117 | 108 | }
|
118 | 109 | {% 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 |
| - ) |
| 110 | +{{ include('kotlin/base/requests/location.twig') }} |
125 | 111 | {% else %}
|
126 | 112 | val headers = mutableMapOf(
|
127 | 113 | {{ method.headers|map((header, key) => " \"#{key}\" to \"#{header}\"")|join(',\n')|raw }}
|
128 | 114 | )
|
129 | 115 | {% if method.responseModel %}
|
130 |
| - val converter: (Map<String, Any>) -> {{ _self.resultType(sdk.namespace, method) }} = { |
| 116 | + val converter: (Map<String, Any>) -> {{ utils.resultType(sdk.namespace, method) }} = { |
131 | 117 | {% if method.responseModel == 'any' %}
|
132 | 118 | it
|
133 | 119 | {% else %}
|
134 |
| - {{ _self.resultType(sdk.namespace, method) }}.from(map = it) |
| 120 | + {{ utils.resultType(sdk.namespace, method) }}.from(map = it) |
135 | 121 | {% endif %}
|
136 | 122 | }
|
137 | 123 | {% endif %}
|
138 | 124 | {% 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 |
| - ) |
| 125 | +{{include('kotlin/base/requests/file.twig')}} |
158 | 126 | {% 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 |
| - ) |
| 127 | +{{include('kotlin/base/requests/api.twig')}} |
169 | 128 | {% endif %}
|
170 | 129 | {% endif %}
|
171 | 130 | }
|
|
0 commit comments