forked from loafle/openapi-generator-original
Added functionality to handle optional parameters for Scala (#3683)
* 1. Modified api.mushtache to handle optional paramters for scala (#3665) 2. Updated petstore sample for scala * Generated scala-petstore.sh (#3665) * 1. Updated api.mustache to handle optional thing with headers and file parameters 2. Generated petstore sample for the above changes
This commit is contained in:
parent
8e7d3d1a72
commit
062e6fc3ac
@ -31,7 +31,7 @@ class {{classname}}(val defBasePath: String = "{{basePath}}",
|
||||
{{#allParams}} * @param {{paramName}} {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
|
||||
{{/allParams}} * @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
|
||||
*/
|
||||
def {{operationId}} ({{#allParams}}{{paramName}}: {{dataType}}{{#defaultValue}} /* = {{{defaultValue}}} */{{/defaultValue}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {{#returnType}}: Option[{{returnType}}]{{/returnType}} = {
|
||||
def {{operationId}}({{#allParams}}{{paramName}}: {{#required}}{{dataType}}{{#defaultValue}} /* = {{{defaultValue}}}*/{{/defaultValue}}{{/required}}{{^required}}Option[{{dataType}}]{{#defaultValue}} /* = {{{defaultValue}}}*/{{/defaultValue}}{{^defaultValue}} = None{{/defaultValue}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}){{#returnType}}: Option[{{returnType}}]{{/returnType}} = {
|
||||
// create path and map variables
|
||||
val path = "{{path}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}",apiInvoker.escape({{paramName}}))
|
||||
|
||||
@ -53,27 +53,57 @@ class {{classname}}(val defBasePath: String = "{{basePath}}",
|
||||
{{/isPrimitiveType}}
|
||||
{{/required}}
|
||||
{{/allParams}}
|
||||
{{#queryParams}}if(String.valueOf({{paramName}}) != "null") queryParams += "{{baseName}}" -> {{paramName}}.toString
|
||||
{{#queryParams}}
|
||||
{{#required}}
|
||||
if(String.valueOf({{paramName}}) != "null") queryParams += "{{baseName}}" -> {{paramName}}.toString
|
||||
{{/required}}
|
||||
{{^required}}
|
||||
{{paramName}}.map(paramVal => queryParams += "{{baseName}}" -> paramVal.toString)
|
||||
{{/required}}
|
||||
{{/queryParams}}
|
||||
|
||||
{{#headerParams}}headerParams += "{{baseName}}" -> {{paramName}}
|
||||
{{#headerParams}}
|
||||
{{#required}}
|
||||
headerParams += "{{baseName}}" -> {{paramName}}
|
||||
{{/required}}
|
||||
{{^required}}
|
||||
{{paramName}}.map(paramVal => headerParams += "{{baseName}}" -> paramVal)
|
||||
{{/required}}
|
||||
{{/headerParams}}
|
||||
|
||||
var postBody: AnyRef = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}
|
||||
var postBody: AnyRef = {{#bodyParam}}{{#required}}{{paramName}}{{/required}}{{^required}}{{paramName}}.map(paramVal => paramVal){{/required}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}
|
||||
|
||||
if(contentType.startsWith("multipart/form-data")) {
|
||||
val mp = new FormDataMultiPart()
|
||||
{{#formParams}}{{#notFile}}
|
||||
{{#required}}
|
||||
mp.field("{{baseName}}", {{paramName}}.toString(), MediaType.MULTIPART_FORM_DATA_TYPE)
|
||||
{{/required}}
|
||||
{{^required}}
|
||||
{{paramName}}.map(paramVal => mp.field("{{baseName}}", paramVal.toString, MediaType.MULTIPART_FORM_DATA_TYPE))
|
||||
{{/required}}
|
||||
{{/notFile}}{{#isFile}}
|
||||
{{#required}}
|
||||
mp.field("{{baseName}}", file.getName)
|
||||
mp.bodyPart(new FileDataBodyPart("{{baseName}}", {{paramName}}, MediaType.MULTIPART_FORM_DATA_TYPE))
|
||||
{{/required}}
|
||||
{{^required}}
|
||||
file.map(fileVal => mp.field("{{baseName}}", fileVal.getName))
|
||||
{{paramName}}.map(paramVal => mp.bodyPart(new FileDataBodyPart("{{baseName}}", paramVal, MediaType.MULTIPART_FORM_DATA_TYPE)))
|
||||
{{/required}}
|
||||
{{/isFile}}{{/formParams}}
|
||||
postBody = mp
|
||||
}
|
||||
else {
|
||||
{{#formParams}}
|
||||
{{#notFile}}formParams += "{{baseName}}" -> {{paramName}}.toString(){{/notFile}}
|
||||
{{#notFile}}
|
||||
{{#required}}
|
||||
formParams += "{{baseName}}" -> {{paramName}}.toString()
|
||||
{{/required}}
|
||||
{{^required}}
|
||||
{{paramName}}.map(paramVal => formParams += "{{baseName}}" -> paramVal.toString)
|
||||
{{/required}}
|
||||
{{/notFile}}
|
||||
{{/formParams}}
|
||||
}
|
||||
|
||||
|
@ -25,8 +25,8 @@
|
||||
package io.swagger.client.api
|
||||
|
||||
import io.swagger.client.model.Pet
|
||||
import io.swagger.client.model.ApiResponse
|
||||
import java.io.File
|
||||
import io.swagger.client.model.ApiResponse
|
||||
import io.swagger.client.ApiInvoker
|
||||
import io.swagger.client.ApiException
|
||||
|
||||
@ -96,7 +96,7 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
||||
* @param apiKey (optional)
|
||||
* @return void
|
||||
*/
|
||||
def deletePet (petId: Long, apiKey: String) = {
|
||||
def deletePet(petId: Long, apiKey: Option[String] = None) = {
|
||||
// create path and map variables
|
||||
val path = "/pet/{petId}".replaceAll("\\{format\\}","json").replaceAll("\\{" + "petId" + "\\}",apiInvoker.escape(petId))
|
||||
|
||||
@ -110,7 +110,7 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
||||
val formParams = new HashMap[String, String]
|
||||
|
||||
|
||||
headerParams += "api_key" -> apiKey
|
||||
apiKey.map(paramVal => headerParams += "api_key" -> paramVal)
|
||||
|
||||
var postBody: AnyRef = null
|
||||
|
||||
@ -314,7 +314,7 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
||||
* @param status Updated status of the pet (optional)
|
||||
* @return void
|
||||
*/
|
||||
def updatePetWithForm (petId: Long, name: String, status: String) = {
|
||||
def updatePetWithForm(petId: Long, name: Option[String] = None, status: Option[String] = None) = {
|
||||
// create path and map variables
|
||||
val path = "/pet/{petId}".replaceAll("\\{format\\}","json").replaceAll("\\{" + "petId" + "\\}",apiInvoker.escape(petId))
|
||||
|
||||
@ -334,15 +334,15 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
||||
if(contentType.startsWith("multipart/form-data")) {
|
||||
val mp = new FormDataMultiPart()
|
||||
|
||||
mp.field("name", name.toString(), MediaType.MULTIPART_FORM_DATA_TYPE)
|
||||
name.map(paramVal => mp.field("name", paramVal.toString, MediaType.MULTIPART_FORM_DATA_TYPE))
|
||||
|
||||
mp.field("status", status.toString(), MediaType.MULTIPART_FORM_DATA_TYPE)
|
||||
status.map(paramVal => mp.field("status", paramVal.toString, MediaType.MULTIPART_FORM_DATA_TYPE))
|
||||
|
||||
postBody = mp
|
||||
}
|
||||
else {
|
||||
formParams += "name" -> name.toString()
|
||||
formParams += "status" -> status.toString()
|
||||
name.map(paramVal => formParams += "name" -> paramVal.toString)
|
||||
status.map(paramVal => formParams += "status" -> paramVal.toString)
|
||||
}
|
||||
|
||||
try {
|
||||
@ -364,7 +364,7 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
||||
* @param file file to upload (optional)
|
||||
* @return ApiResponse
|
||||
*/
|
||||
def uploadFile (petId: Long, additionalMetadata: String, file: File) : Option[ApiResponse] = {
|
||||
def uploadFile(petId: Long, additionalMetadata: Option[String] = None, file: Option[File] = None): Option[ApiResponse] = {
|
||||
// create path and map variables
|
||||
val path = "/pet/{petId}/uploadImage".replaceAll("\\{format\\}","json").replaceAll("\\{" + "petId" + "\\}",apiInvoker.escape(petId))
|
||||
|
||||
@ -384,16 +384,15 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
||||
if(contentType.startsWith("multipart/form-data")) {
|
||||
val mp = new FormDataMultiPart()
|
||||
|
||||
mp.field("additionalMetadata", additionalMetadata.toString(), MediaType.MULTIPART_FORM_DATA_TYPE)
|
||||
additionalMetadata.map(paramVal => mp.field("additionalMetadata", paramVal.toString, MediaType.MULTIPART_FORM_DATA_TYPE))
|
||||
|
||||
mp.field("file", file.getName)
|
||||
mp.bodyPart(new FileDataBodyPart("file", file, MediaType.MULTIPART_FORM_DATA_TYPE))
|
||||
file.map(fileVal => mp.field("file", fileVal.getName))
|
||||
file.map(paramVal => mp.bodyPart(new FileDataBodyPart("file", paramVal, MediaType.MULTIPART_FORM_DATA_TYPE)))
|
||||
|
||||
postBody = mp
|
||||
}
|
||||
else {
|
||||
formParams += "additionalMetadata" -> additionalMetadata.toString()
|
||||
|
||||
additionalMetadata.map(paramVal => formParams += "additionalMetadata" -> paramVal.toString)
|
||||
}
|
||||
|
||||
try {
|
||||
|
Loading…
x
Reference in New Issue
Block a user