1
1
package {{ sdk .namespace | caseDot }}.services
2
2
3
- import android.net.Uri
4
3
import {{ sdk .namespace | caseDot }}.Client
5
4
import {{ sdk .namespace | caseDot }}.Service
6
5
{% if spec .definitions is not empty %}
@@ -38,32 +37,38 @@ import java.io.File
38
37
39
38
/**
40
39
* {{ service .description | raw | replace({" \n" : " " , " \r" : " " }) }}
41
- **/
40
+ **/
42
41
class {{ service .name | caseUcfirst }}(client: Client) : Service(client) {
42
+ {% for method in service .methods %}
43
43
44
- {% for method in service .methods %}
45
44
/**
46
45
* {{ method .title }}
47
46
*
48
47
* {{ method .description | raw | replace({" \n" : " " , " \r" : " " }) }}
49
48
*
49
+ {%~ if method .parameters .all | reduce((carry , param ) => carry or not param .required ) %}
50
+ @JvmOverloads
51
+ {%~ endif %}
52
+ @Throws(Throwable::class)
50
53
{%~ for parameter in method .parameters .all %}
51
54
* @param {{ parameter .name | caseCamel }} {{ parameter .description | raw }}
52
55
{%~ endfor %}
53
56
{%~ if method .type != " webAuth" %}
54
57
* @return [{{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}]
55
58
{%~ endif %}
56
59
*/
60
+ @Throws(Throwable::class)
57
61
{%~ if method .parameters .all | reduce((carry , param ) => carry or not param .required ) %}
58
62
@JvmOverloads
59
63
{%~ endif %}
60
64
{% if method .responseModel | hasGenericType(spec ) %}
61
- suspend inline fun {{ ' reified <T> : Any' | raw }} {{ method .name | caseCamel }}(
65
+ suspend inline fun {{ ' < reified T : Any> ' | raw }} {{ method .name | caseCamel }}(
62
66
{% else %}
63
67
suspend fun {{ method .name | caseCamel }}(
64
68
{% endif %}
65
69
{%~ if method .type == " webAuth" %}
66
70
webAuth: WebAuthComponent,
71
+ {%~ endif %}
67
72
{%~ for parameter in method .parameters .all %}
68
73
{{ parameter .name | caseCamel }}: {{ parameter | typeName }}{%~ if not parameter .required or parameter .nullable %}? = null{% endif %},
69
74
{%~ endfor %}
@@ -80,21 +85,21 @@ class {{ service.name | caseUcfirst }}(client: Client) : Service(client) {
80
85
{%~ endfor %}
81
86
82
87
val apiParams = mutableMapOf<String , Any ?>(
83
- {%~ for parameter in method .parameters .query | merge(method .parameters .body ) %}
88
+ {%~ for parameter in method .parameters .query | merge(method .parameters .body ) %}
84
89
"{{ parameter .name }}" to {{ parameter .name | caseCamel }},
85
- {%~ endfor %}
86
- {%~ if method .type == ' location' or method .type == ' webAuth' %}
87
- {%~ if method .auth | length > 0 %}
88
- {%~ for node in method .auth %}
89
- {%~ for key ,header in node | keys %}
90
+ {%~ endfor %}
91
+ {%~ if method .type == ' location' or method .type == ' webAuth' %}
92
+ {%~ if method .auth | length > 0 %}
93
+ {%~ for node in method .auth %}
94
+ {%~ for key ,header in node | keys %}
90
95
"{{ header | caseLower }}" to client.config["{{ header | caseLower }}"],
91
- {%~ endfor %}
92
- {%~ endfor %}
93
- {%~ endif %}
94
- {%~ endif %}
96
+ {%~ endfor %}
97
+ {%~ endfor %}
98
+ {%~ endif %}
99
+ {%~ endif %}
95
100
)
96
- {%~ if method .type == ' webAuth' %}
97
101
102
+ {% if method .type == ' webAuth' %}
98
103
val apiQuery = mutableListOf<String >()
99
104
apiParams.forEach {
100
105
when (it.value) {
@@ -138,43 +143,44 @@ class {{ service.name | caseUcfirst }}(client: Client) : Service(client) {
138
143
}
139
144
}
140
145
}
141
- {%~ elseif method .type == ' location' %}
146
+ {% elseif method .type == ' location' %}
142
147
return client.call(
143
148
"{{ method .method | caseUpper }}",
144
149
apiPath,
145
150
params = apiParams,
146
151
responseType = {{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}::class
147
152
)
148
- {%~ else %}
153
+ {% else %}
149
154
val apiHeaders = mutableMapOf(
150
- {%~ for key , header in method .headers %}
155
+ {%~ for key , header in method .headers %}
151
156
"{{ key }}" to "{{ header }}",
152
- {%~ endfor %}
157
+ {%~ endfor %}
153
158
)
159
+
154
160
{%~ if method .responseModel | hasGenericType(spec ) %}
155
161
val actualSerializer = genericSerializer ?: getSerializer(T::class)
156
162
{%~ endif %}
157
- }
158
- {%~ endif %}
163
+
159
164
{%~ if ' multipart/form-data' in method .consumes %}
160
165
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 %}
161
-
166
+
162
167
{%~ for parameter in method .parameters .all %}
163
168
{%~ if parameter .type == ' file' %}
164
169
val paramName = "{{ parameter .name }}"
165
170
{%~ endif %}
166
171
{%~ endfor %}
172
+
167
173
return client.chunkedUpload(
168
174
apiPath,
169
175
apiHeaders,
170
176
apiParams,
171
177
responseType = {{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}::class,
172
178
{%~ if method .responseModel %}
173
- {{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}.serializer(),
179
+ {{ method | returnType(spec , sdk .namespace | caseDot , false ) | raw }}.serializer(),
174
180
{%~ endif %}
175
181
paramName,
176
182
idParamName,
177
- onProgress,
183
+ onProgress
178
184
)
179
185
{%~ else %}
180
186
return client.call(
@@ -188,15 +194,15 @@ class {{ service.name | caseUcfirst }}(client: Client) : Service(client) {
188
194
responseType = {{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}::class,
189
195
{%~ endif %}
190
196
{%~ if method .responseModel | hasGenericType(spec ) %}
191
- serializer = {{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}.serializer(actualSerializer),
197
+ serializer = {{ method | returnType(spec , sdk .namespace | caseDot , false ) | raw }}.serializer(actualSerializer)
192
198
{%~ elseif method .responseModel == ' any' %}
193
199
serializer = DynamicLookupSerializer
194
- {%~ else method . responseModel %}
195
- serializer = {{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}.serializer()
200
+ {%~ else %}
201
+ serializer = {{ method | returnType(spec , sdk .namespace | caseDot , false ) | raw }}.serializer()
196
202
{%~ endif %}
197
203
)
198
204
{%~ endif %}
199
- {%~ endif %}
205
+ {% endif %}
200
206
}
201
207
202
208
{%~ if method .responseModel | hasGenericType(spec ) %}
@@ -212,10 +218,10 @@ class {{ service.name | caseUcfirst }}(client: Client) : Service(client) {
212
218
* @return [{{ method | returnType(spec , sdk .namespace | caseDot ) | raw }}]
213
219
{%~ endif %}
214
220
*/
221
+ @Throws(Throwable::class)
215
222
{%~ if method .parameters .all | reduce((carry , param ) => carry or not param .required ) %}
216
223
@JvmOverloads
217
224
{%~ endif %}
218
- @Throws(Throwable::class)
219
225
suspend fun {{ method .name | caseCamel }}(
220
226
{%~ if method .type == " webAuth" %}
221
227
webAuth: WebAuthComponent,
@@ -227,20 +233,19 @@ class {{ service.name | caseUcfirst }}(client: Client) : Service(client) {
227
233
onProgress: ((UploadProgress) -> Unit)? = null
228
234
{%~ endif %}
229
235
): {{ method | returnType(spec , sdk .namespace | caseDot , ' Map<String, Any>' ) | raw }} = {{ method .name | caseCamel }}(
230
- {%~ if method .type == " webAuth" %}
231
- webAuth,
232
- {%~ endif %}
233
- {%~ for parameter in method .parameters .all %}
236
+ {%~ if method .type == " webAuth" %}
237
+ webAuth,
238
+ {%~ endif %}
239
+ {%~ for parameter in method .parameters .all %}
234
240
{{ parameter .name | caseCamel }},
235
- {%~ endfor %}
236
- {%~ if method .responseModel | hasGenericType(spec ) %}
241
+ {%~ endfor %}
242
+ {%~ if method .responseModel | hasGenericType(spec ) %}
237
243
nestedType = classOf(),
238
- {%~ endif %}
239
- {%~ if ' multipart/form-data' in method .consumes %}
244
+ {%~ endif %}
245
+ {%~ if ' multipart/form-data' in method .consumes %}
240
246
onProgress = onProgress
241
- {%~ endif %}
247
+ {%~ endif %}
242
248
)
243
249
{%~ endif %}
244
-
245
- {%~ endfor %}
246
- }
250
+ {% endfor %}
251
+ }
0 commit comments