mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-05-12 20:50:55 +00:00
* - Fixed incorrect renaming of header and query param to camel cases * Generated petstore code base on modified Kotlin template
47 lines
3.1 KiB
Plaintext
47 lines
3.1 KiB
Plaintext
{{>licenseInfo}}
|
|
package {{apiPackage}}
|
|
|
|
{{#imports}}import {{import}}
|
|
{{/imports}}
|
|
|
|
import {{packageName}}.infrastructure.*
|
|
|
|
{{#operations}}
|
|
class {{classname}}(basePath: kotlin.String = "{{{basePath}}}") : ApiClient(basePath) {
|
|
|
|
{{#operation}}
|
|
/**
|
|
* {{summary}}
|
|
* {{notes}}
|
|
{{#allParams}}* @param {{paramName}} {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
|
|
{{/allParams}}* @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
|
|
*/{{#returnType}}
|
|
@Suppress("UNCHECKED_CAST"){{/returnType}}
|
|
fun {{operationId}}({{#allParams}}{{paramName}}: {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Unit{{/returnType}} {
|
|
val localVariableBody: kotlin.Any? = {{#hasBodyParam}}{{#bodyParams}}{{paramName}}{{/bodyParams}}{{/hasBodyParam}}{{^hasBodyParam}}{{^hasFormParams}}null{{/hasFormParams}}{{#hasFormParams}}mapOf({{#formParams}}"{{{baseName}}}" to "${{paramName}}"{{#hasMore}}, {{/hasMore}}{{/formParams}}){{/hasFormParams}}{{/hasBodyParam}}
|
|
val localVariableQuery: MultiValueMap = {{^hasQueryParams}}mapOf(){{/hasQueryParams}}{{#hasQueryParams}}mapOf({{#queryParams}}"{{baseName}}" to {{#isContainer}}toMultiValue({{paramName}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf("${{paramName}}"){{/isContainer}}{{#hasMore}}, {{/hasMore}}{{/queryParams}}){{/hasQueryParams}}
|
|
val localVariableHeaders: kotlin.collections.Map<kotlin.String,kotlin.String> = mapOf({{#hasFormParams}}"Content-Type" to "multipart/form-data"{{/hasFormParams}}{{^hasHeaderParams}}){{/hasHeaderParams}}{{#hasHeaderParams}}{{#hasFormParams}}, {{/hasFormParams}}{{#headerParams}}"{{baseName}}" to {{#isContainer}}{{paramName}}.joinToString(separator = collectionDelimiter("{{collectionFormat}}"){{/isContainer}}{{^isContainer}}{{paramName}}{{/isContainer}}{{#hasMore}}, {{/hasMore}}{{/headerParams}}){{/hasHeaderParams}}
|
|
val localVariableConfig = RequestConfig(
|
|
RequestMethod.{{httpMethod}},
|
|
"{{path}}"{{#pathParams}}.replace("{"+"{{baseName}}"+"}", "${{paramName}}"){{/pathParams}},
|
|
query = localVariableQuery,
|
|
headers = localVariableHeaders
|
|
)
|
|
val response = request<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Any?{{/returnType}}>(
|
|
localVariableConfig,
|
|
localVariableBody
|
|
)
|
|
|
|
return when (response.responseType) {
|
|
ResponseType.Success -> {{#returnType}}(response as Success<*>).data as {{{returnType}}}{{/returnType}}{{^returnType}}Unit{{/returnType}}
|
|
ResponseType.Informational -> TODO()
|
|
ResponseType.Redirection -> TODO()
|
|
ResponseType.ClientError -> throw ClientException((response as ClientError<*>).body as? String ?: "Client error")
|
|
ResponseType.ServerError -> throw ServerException((response as ServerError<*>).message ?: "Server error")
|
|
else -> throw kotlin.IllegalStateException("Undefined ResponseType.")
|
|
}
|
|
}
|
|
|
|
{{/operation}}
|
|
}
|
|
{{/operations}} |