Skip to content

Commit

Permalink
update kotlin samples
Browse files Browse the repository at this point in the history
  • Loading branch information
frantuma committed Nov 16, 2018
1 parent 4c72ac0 commit 8813ead
Show file tree
Hide file tree
Showing 9 changed files with 57 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -78,7 +78,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -229,7 +229,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand All @@ -253,7 +253,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
* @return void
*/
fun updatePetWithForm(petId: kotlin.Long, name: kotlin.String, status: kotlin.String) : Unit {
val localVariableBody: kotlin.Any? = mapOf("name" to "$name", "status" to "$status")
val localVariableBody: kotlin.Any? = mapOf("name" to name, "status" to status)
val localVariableQuery: MultiValueMap = mapOf()

val contentHeaders: kotlin.collections.Map<kotlin.String,kotlin.String> = mapOf("Content-Type" to "multipart/form-data")
Expand All @@ -268,7 +268,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand All @@ -293,7 +293,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
*/
@Suppress("UNCHECKED_CAST")
fun uploadFile(petId: kotlin.Long, additionalMetadata: kotlin.String, file: java.io.File) : ApiResponse {
val localVariableBody: kotlin.Any? = mapOf("additionalMetadata" to "$additionalMetadata", "file" to "$file")
val localVariableBody: kotlin.Any? = mapOf("additionalMetadata" to additionalMetadata, "file" to file)
val localVariableQuery: MultiValueMap = mapOf()

val contentHeaders: kotlin.collections.Map<kotlin.String,kotlin.String> = mapOf("Content-Type" to "multipart/form-data")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class StoreApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiC
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -76,7 +76,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -113,7 +113,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -150,7 +150,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -263,7 +263,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -301,7 +301,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,22 @@ open class ApiClient(val baseUrl: String) {
MediaType.parse(mediaType), content
)
} else if(mediaType == FormDataMediaType) {
var builder = FormBody.Builder()
val requestBodyBuilder = MultipartBody.Builder().setType(MultipartBody.FORM)

// content's type *must* be Map<String, Any>
@Suppress("UNCHECKED_CAST")
(content as Map<String,String>).forEach { key, value ->
builder = builder.add(key, value)
(content as Map<String,Any>).forEach { key, value ->
if(value::class == File::class) {
val file = value as File
requestBodyBuilder.addFormDataPart(key, file.name, RequestBody.create(MediaType.parse("application/octet-stream"), file))
} else {
val stringValue = value as String
requestBodyBuilder.addFormDataPart(key, stringValue)
}
TODO("Handle other types inside FormDataMediaType")
}
return builder.build()

return requestBodyBuilder.build()
} else if(mediaType == JsonMediaType) {
return RequestBody.create(
MediaType.parse(mediaType), Serializer.moshi.adapter(T::class.java).toJson(content)
Expand All @@ -58,6 +67,8 @@ open class ApiClient(val baseUrl: String) {

if(T::class.java == java.io.File::class.java){
return downloadFileFromResponse(response) as T
} else if(T::class == kotlin.Unit::class) {
return kotlin.Unit as T
}

var contentType = response.headers().get("Content-Type")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -79,7 +79,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -230,7 +230,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand All @@ -254,7 +254,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
* @return void
*/
fun updatePetWithForm(petId: kotlin.Long, name: kotlin.String, status: kotlin.String) : Unit {
val localVariableBody: kotlin.Any? = mapOf("name" to "$name", "status" to "$status")
val localVariableBody: kotlin.Any? = mapOf("name" to name, "status" to status)
val localVariableQuery: MultiValueMap = mapOf()

val contentHeaders: kotlin.collections.Map<kotlin.String,kotlin.String> = mapOf("Content-Type" to "multipart/form-data")
Expand All @@ -269,7 +269,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand All @@ -294,7 +294,7 @@ class PetApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCli
*/
@Suppress("UNCHECKED_CAST")
fun uploadFile(petId: kotlin.Long, additionalMetadata: kotlin.String, file: java.io.File) : ApiResponse {
val localVariableBody: kotlin.Any? = mapOf("additionalMetadata" to "$additionalMetadata", "file" to "$file")
val localVariableBody: kotlin.Any? = mapOf("additionalMetadata" to additionalMetadata, "file" to file)
val localVariableQuery: MultiValueMap = mapOf()

val contentHeaders: kotlin.collections.Map<kotlin.String,kotlin.String> = mapOf("Content-Type" to "multipart/form-data")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class StoreApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiC
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -77,7 +77,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -114,7 +114,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -151,7 +151,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -264,7 +264,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down Expand Up @@ -302,7 +302,7 @@ class UserApi(basePath: kotlin.String = "http:https://petstore.swagger.io/v2") : ApiCl
query = localVariableQuery,
headers = localVariableHeaders
)
val response = request<Any?>(
val response = request<Unit>(
localVariableConfig,
localVariableBody
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,22 @@ open class ApiClient(val baseUrl: String) {
MediaType.parse(mediaType), content
)
} else if(mediaType == FormDataMediaType) {
var builder = FormBody.Builder()
val requestBodyBuilder = MultipartBody.Builder().setType(MultipartBody.FORM)

// content's type *must* be Map<String, Any>
@Suppress("UNCHECKED_CAST")
(content as Map<String,String>).forEach { key, value ->
builder = builder.add(key, value)
(content as Map<String,Any>).forEach { key, value ->
if(value::class == File::class) {
val file = value as File
requestBodyBuilder.addFormDataPart(key, file.name, RequestBody.create(MediaType.parse("application/octet-stream"), file))
} else {
val stringValue = value as String
requestBodyBuilder.addFormDataPart(key, stringValue)
}
TODO("Handle other types inside FormDataMediaType")
}
return builder.build()

return requestBodyBuilder.build()
} else if(mediaType == JsonMediaType) {
return RequestBody.create(
MediaType.parse(mediaType), Serializer.moshi.adapter(T::class.java).toJson(content)
Expand All @@ -58,6 +67,8 @@ open class ApiClient(val baseUrl: String) {

if(T::class.java == java.io.File::class.java){
return downloadFileFromResponse(response) as T
} else if(T::class == kotlin.Unit::class) {
return kotlin.Unit as T
}

var contentType = response.headers().get("Content-Type")
Expand Down
2 changes: 1 addition & 1 deletion samples/server/petstore/kotlin-server/ktor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This is a sample server Petstore server. You can find out more about Swagger at [http:https://swagger.io](http:https://swagger.io) or on [irc.freenode.net, #swagger](http:https://swagger.io/irc/). For this sample, you can use the api key &#x60;special-key&#x60; to test the authorization filters.

Generated by Swagger Codegen 2.4.0-SNAPSHOT (2018-10-21T21:30:13.105-05:00).
Generated by Swagger Codegen 2.4.0-SNAPSHOT (2018-11-16T16:11:36.668+01:00).

## Requires

Expand Down

0 comments on commit 8813ead

Please sign in to comment.