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}} * @param {{paramName}} {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
|
||||||
{{/allParams}} * @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
|
{{/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
|
// create path and map variables
|
||||||
val path = "{{path}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}",apiInvoker.escape({{paramName}}))
|
val path = "{{path}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}",apiInvoker.escape({{paramName}}))
|
||||||
|
|
||||||
@ -53,27 +53,57 @@ class {{classname}}(val defBasePath: String = "{{basePath}}",
|
|||||||
{{/isPrimitiveType}}
|
{{/isPrimitiveType}}
|
||||||
{{/required}}
|
{{/required}}
|
||||||
{{/allParams}}
|
{{/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}}
|
{{/queryParams}}
|
||||||
|
|
||||||
{{#headerParams}}headerParams += "{{baseName}}" -> {{paramName}}
|
{{#headerParams}}
|
||||||
|
{{#required}}
|
||||||
|
headerParams += "{{baseName}}" -> {{paramName}}
|
||||||
|
{{/required}}
|
||||||
|
{{^required}}
|
||||||
|
{{paramName}}.map(paramVal => headerParams += "{{baseName}}" -> paramVal)
|
||||||
|
{{/required}}
|
||||||
{{/headerParams}}
|
{{/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")) {
|
if(contentType.startsWith("multipart/form-data")) {
|
||||||
val mp = new FormDataMultiPart()
|
val mp = new FormDataMultiPart()
|
||||||
{{#formParams}}{{#notFile}}
|
{{#formParams}}{{#notFile}}
|
||||||
|
{{#required}}
|
||||||
mp.field("{{baseName}}", {{paramName}}.toString(), MediaType.MULTIPART_FORM_DATA_TYPE)
|
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}}
|
{{/notFile}}{{#isFile}}
|
||||||
|
{{#required}}
|
||||||
mp.field("{{baseName}}", file.getName)
|
mp.field("{{baseName}}", file.getName)
|
||||||
mp.bodyPart(new FileDataBodyPart("{{baseName}}", {{paramName}}, MediaType.MULTIPART_FORM_DATA_TYPE))
|
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}}
|
{{/isFile}}{{/formParams}}
|
||||||
postBody = mp
|
postBody = mp
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
{{#formParams}}
|
{{#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}}
|
{{/formParams}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,8 +25,8 @@
|
|||||||
package io.swagger.client.api
|
package io.swagger.client.api
|
||||||
|
|
||||||
import io.swagger.client.model.Pet
|
import io.swagger.client.model.Pet
|
||||||
import io.swagger.client.model.ApiResponse
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import io.swagger.client.model.ApiResponse
|
||||||
import io.swagger.client.ApiInvoker
|
import io.swagger.client.ApiInvoker
|
||||||
import io.swagger.client.ApiException
|
import io.swagger.client.ApiException
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
|||||||
* @param apiKey (optional)
|
* @param apiKey (optional)
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
def deletePet (petId: Long, apiKey: String) = {
|
def deletePet(petId: Long, apiKey: Option[String] = None) = {
|
||||||
// create path and map variables
|
// create path and map variables
|
||||||
val path = "/pet/{petId}".replaceAll("\\{format\\}","json").replaceAll("\\{" + "petId" + "\\}",apiInvoker.escape(petId))
|
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]
|
val formParams = new HashMap[String, String]
|
||||||
|
|
||||||
|
|
||||||
headerParams += "api_key" -> apiKey
|
apiKey.map(paramVal => headerParams += "api_key" -> paramVal)
|
||||||
|
|
||||||
var postBody: AnyRef = null
|
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)
|
* @param status Updated status of the pet (optional)
|
||||||
* @return void
|
* @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
|
// create path and map variables
|
||||||
val path = "/pet/{petId}".replaceAll("\\{format\\}","json").replaceAll("\\{" + "petId" + "\\}",apiInvoker.escape(petId))
|
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")) {
|
if(contentType.startsWith("multipart/form-data")) {
|
||||||
val mp = new FormDataMultiPart()
|
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
|
postBody = mp
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
formParams += "name" -> name.toString()
|
name.map(paramVal => formParams += "name" -> paramVal.toString)
|
||||||
formParams += "status" -> status.toString()
|
status.map(paramVal => formParams += "status" -> paramVal.toString)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -364,7 +364,7 @@ class PetApi(val defBasePath: String = "http://petstore.swagger.io/v2",
|
|||||||
* @param file file to upload (optional)
|
* @param file file to upload (optional)
|
||||||
* @return ApiResponse
|
* @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
|
// create path and map variables
|
||||||
val path = "/pet/{petId}/uploadImage".replaceAll("\\{format\\}","json").replaceAll("\\{" + "petId" + "\\}",apiInvoker.escape(petId))
|
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")) {
|
if(contentType.startsWith("multipart/form-data")) {
|
||||||
val mp = new FormDataMultiPart()
|
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)
|
file.map(fileVal => mp.field("file", fileVal.getName))
|
||||||
mp.bodyPart(new FileDataBodyPart("file", file, MediaType.MULTIPART_FORM_DATA_TYPE))
|
file.map(paramVal => mp.bodyPart(new FileDataBodyPart("file", paramVal, MediaType.MULTIPART_FORM_DATA_TYPE)))
|
||||||
|
|
||||||
postBody = mp
|
postBody = mp
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
formParams += "additionalMetadata" -> additionalMetadata.toString()
|
additionalMetadata.map(paramVal => formParams += "additionalMetadata" -> paramVal.toString)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user