[scala] [template] scala model property style (#5486)

* Model property naming style generic for scala

* scala templates based on abstractScala regererated

* docs generators updated

* property format tests
This commit is contained in:
Aleksandr Nekrasov
2020-03-02 10:48:09 +07:00
committed by GitHub
parent a10452e37f
commit 6dd76d65e7
30 changed files with 169 additions and 196 deletions

View File

@@ -10,6 +10,7 @@ sidebar_label: scala-akka
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|mainPackage|Top-level package name, which defines 'apiPackage', 'modelPackage', 'invokerPackage'| |org.openapitools.client|
|modelPackage|package for generated models| |null|
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|

View File

@@ -9,6 +9,7 @@ sidebar_label: scala-gatling
|apiPackage|package for generated api classes| |null|
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|modelPackage|package for generated models| |null|
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|

View File

@@ -11,6 +11,7 @@ sidebar_label: scala-play-server
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|generateCustomExceptions|If set, generates custom exception types.| |true|
|modelPackage|package for generated models| |null|
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|routesFileName|Name of the routes file to generate.| |routes|
|skipStubs|If set, skips generation of stub classes.| |false|

View File

@@ -10,6 +10,7 @@ sidebar_label: scala-sttp
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|mainPackage|Top-level package name, which defines 'apiPackage', 'modelPackage', 'invokerPackage'| |org.openapitools.client|
|modelPackage|package for generated models| |null|
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|

View File

@@ -9,6 +9,7 @@ sidebar_label: scalatra
|apiPackage|package for generated api classes| |null|
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|modelPackage|package for generated models| |null|
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|

View File

@@ -35,11 +35,12 @@ import java.util.List;
import java.util.Map;
import static org.openapitools.codegen.utils.StringUtils.camelize;
import static org.openapitools.codegen.utils.StringUtils.underscore;
public abstract class AbstractScalaCodegen extends DefaultCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractScalaCodegen.class);
protected String modelPropertyNaming = "camelCase";
protected String modelPropertyNaming = CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.camelCase.name();
protected String invokerPackage = "org.openapitools.client";
protected String sourceFolder = "src/main/scala";
protected boolean stripPackageName = true;
@@ -115,6 +116,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
cliOptions.add(new CliOption(CodegenConstants.MODEL_PACKAGE, CodegenConstants.MODEL_PACKAGE_DESC));
cliOptions.add(new CliOption(CodegenConstants.API_PACKAGE, CodegenConstants.API_PACKAGE_DESC));
cliOptions.add(new CliOption(CodegenConstants.SOURCE_FOLDER, CodegenConstants.SOURCE_FOLDER_DESC));
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue(modelPropertyNaming));
}
@@ -137,6 +139,62 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
LOGGER.warn("stripPackageName=false. Compilation errors may occur if API type names clash with types " +
"in the default imports");
}
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
setModelPropertyNaming(
(String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
}
}
public void setModelPropertyNaming(String naming) {
try {
this.modelPropertyNaming = CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.valueOf(naming).name();
} catch (IllegalArgumentException ex) {
throw new IllegalArgumentException("Invalid model property naming '" +
naming + "'. Must be 'original', 'camelCase', " +
"'PascalCase' or 'snake_case'");
}
}
public String getModelPropertyNaming() {
return this.modelPropertyNaming;
}
@Override
public String toVarName(String name) {
String varName = sanitizeName(name);
if ("_".equals(varName)) {
varName = "_u";
}
// if it's all uppper case, do nothing
if (!varName.matches("^[A-Z_0-9]*$")) {
varName = getNameUsingModelPropertyNaming(varName);
}
if (isReservedWord(varName) || varName.matches("^\\d.*")) {
varName = escapeReservedWord(varName);
}
return varName;
}
public String getNameUsingModelPropertyNaming(String name) {
switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) {
case original:
return name;
case camelCase:
return camelize(name, true);
case PascalCase:
return camelize(name);
case snake_case:
return underscore(name);
default:
throw new IllegalArgumentException("Invalid model property naming '" +
name + "'. Must be 'original', 'camelCase', " +
"'PascalCase' or 'snake_case'");
}
}
public String getSourceFolder() {

View File

@@ -262,11 +262,6 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code
return formatIdentifier(name, false);
}
@Override
public String toVarName(String name) {
return formatIdentifier(name, false);
}
@Override
public String toEnumName(CodegenProperty property) {
return formatIdentifier(property.baseName, true);

View File

@@ -156,58 +156,13 @@ public class ScalaHttpClientCodegen extends AbstractScalaCodegen implements Code
instantiationTypes.put("array", "ListBuffer");
instantiationTypes.put("map", "HashMap");
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase"));
}
@Override
public void processOpts() {
LOGGER.warn("IMPORTANT: This generator (scala-http-client-deprecated) is no longer actively maintained and will be deprecated. " +
"PLease use 'scala-akka' generator instead.");
super.processOpts();
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
setModelPropertyNaming((String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
}
}
public void setModelPropertyNaming(String naming) {
if ("original".equals(naming) || "camelCase".equals(naming) ||
"PascalCase".equals(naming) || "snake_case".equals(naming)) {
this.modelPropertyNaming = naming;
} else {
throw new IllegalArgumentException("Invalid model property naming '" +
naming + "'. Must be 'original', 'camelCase', " +
"'PascalCase' or 'snake_case'");
}
}
public String getModelPropertyNaming() {
return this.modelPropertyNaming;
}
@Override
public String toVarName(String name) {
// sanitize name
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
if ("_".equals(name)) {
name = "_u";
}
// if it's all uppper case, do nothing
if (name.matches("^[A-Z_]*$")) {
return name;
}
name = getNameUsingModelPropertyNaming(name);
// for reserved word or word starting with number, append _
if (isReservedWord(name) || name.matches("^\\d.*")) {
name = escapeReservedWord(name);
}
return name;
}
@Override
@@ -216,24 +171,6 @@ public class ScalaHttpClientCodegen extends AbstractScalaCodegen implements Code
return toVarName(name);
}
public String getNameUsingModelPropertyNaming(String name) {
switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) {
case original:
return name;
case camelCase:
return camelize(name, true);
case PascalCase:
return camelize(name);
case snake_case:
return underscore(name);
default:
throw new IllegalArgumentException("Invalid model property naming '" +
name + "'. Must be 'original', 'camelCase', " +
"'PascalCase' or 'snake_case'");
}
}
@Override
public CodegenType getTag() {
return CodegenType.CLIENT;

View File

@@ -120,59 +120,11 @@ public class ScalaLagomServerCodegen extends AbstractScalaCodegen implements Cod
instantiationTypes.put("array", "ListBuffer");
instantiationTypes.put("map", "HashMap");
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING,
CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase"));
}
@Override
public void processOpts() {
super.processOpts();
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
setModelPropertyNaming(
(String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
}
}
public void setModelPropertyNaming(String naming) {
if ("original".equals(naming) || "camelCase".equals(naming) ||
"PascalCase".equals(naming) || "snake_case".equals(naming)) {
this.modelPropertyNaming = naming;
} else {
throw new IllegalArgumentException("Invalid model property naming '" +
naming + "'. Must be 'original', 'camelCase', " +
"'PascalCase' or 'snake_case'");
}
}
public String getModelPropertyNaming() {
return this.modelPropertyNaming;
}
@Override
public String toVarName(String name) {
// sanitize name
name = sanitizeName(
name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
if ("_".equals(name)) {
name = "_u";
}
// if it's all uppper case, do nothing
if (name.matches("^[A-Z_]*$")) {
return name;
}
name = getNameUsingModelPropertyNaming(name);
// for reserved word or word starting with number, append _
if (isReservedWord(name) || name.matches("^\\d.*")) {
name = escapeReservedWord(name);
}
return name;
}
@Override
@@ -181,24 +133,6 @@ public class ScalaLagomServerCodegen extends AbstractScalaCodegen implements Cod
return toVarName(name);
}
private String getNameUsingModelPropertyNaming(String name) {
switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) {
case original:
return name;
case camelCase:
return camelize(name, true);
case PascalCase:
return camelize(name);
case snake_case:
return underscore(name);
default:
throw new IllegalArgumentException("Invalid model property naming '" +
name + "'. Must be 'original', 'camelCase', " +
"'PascalCase' or 'snake_case'");
}
}
@Override
public CodegenType getTag() {
return CodegenType.SERVER;

View File

@@ -128,55 +128,11 @@ public class ScalazClientCodegen extends AbstractScalaCodegen implements Codegen
instantiationTypes.put("map", "HashMap");
additionalProperties.put("fnEnumEntry", new EnumEntryLambda());
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase"));
}
@Override
public void processOpts() {
super.processOpts();
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
setModelPropertyNaming((String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
}
}
public void setModelPropertyNaming(String naming) {
if ("original".equals(naming) || "camelCase".equals(naming) ||
"PascalCase".equals(naming) || "snake_case".equals(naming)) {
this.modelPropertyNaming = naming;
} else {
throw new IllegalArgumentException("Invalid model property naming '" +
naming + "'. Must be 'original', 'camelCase', " +
"'PascalCase' or 'snake_case'");
}
}
public String getModelPropertyNaming() {
return this.modelPropertyNaming;
}
@Override
public String toVarName(String name) {
// sanitize name
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
if ("_".equals(name)) {
name = "_u";
}
// if it's all uppper case, do nothing
if (name.matches("^[A-Z_]*$")) {
return name;
}
name = getNameUsingModelPropertyNaming(name);
// for reserved word or word starting with number, append _
if (isReservedWord(name) || name.matches("^\\d.*")) {
name = escapeReservedWord(name);
}
return name;
}
@Override

View File

@@ -32,6 +32,7 @@ public class ScalaAkkaClientOptionsProvider implements OptionsProvider {
public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";
public static final String PREPEND_FORM_OR_BODY_PARAMETERS_VALUE = "true";
public static final String MAIN_PACKAGE_VALUE = "net.test";
public static final String MODEL_PROPERTY_NAMING = "camelCase";
@Override
@@ -51,6 +52,7 @@ public class ScalaAkkaClientOptionsProvider implements OptionsProvider {
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
.put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, PREPEND_FORM_OR_BODY_PARAMETERS_VALUE)
.put("mainPackage", MAIN_PACKAGE_VALUE)
.put(CodegenConstants.MODEL_PROPERTY_NAMING, MODEL_PROPERTY_NAMING)
.build();
}

View File

@@ -0,0 +1,85 @@
package org.openapitools.codegen.scala;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.languages.AbstractScalaCodegen;
import org.testng.Assert;
import org.testng.annotations.Test;
public class AbstractScalaCodegenTest {
private final AbstractScalaCodegen fakeScalaCodegen = new AbstractScalaCodegenTest.P_AbstractScalaCodegen();
private static class P_AbstractScalaCodegen extends AbstractScalaCodegen {
}
@Test
public void convertVarNameCamelCase() {
// with default camelCase
Assert.assertEquals(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.camelCase.name(), fakeScalaCodegen.getModelPropertyNaming());
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "name");
Assert.assertEquals(fakeScalaCodegen.toVarName("user-name"), "userName");
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "userName");
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "userName");
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "uSername");
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1aAaa`");
}
@Test
public void convertVarNamePascalCase() {
fakeScalaCodegen.setModelPropertyNaming(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.PascalCase.name());
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "Name");
Assert.assertEquals(fakeScalaCodegen.toVarName("user-name"), "UserName");
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "UserName");
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "UserName");
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "USername");
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1AAaa`");
}
@Test
public void convertVarNameSnakeCase() {
fakeScalaCodegen.setModelPropertyNaming(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.snake_case.name());
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "name");
Assert.assertEquals(fakeScalaCodegen.toVarName("user-name"), "user_name");
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "user_name");
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "user_name");
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "u_sername");
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1_a_aaa`");
}
@Test
public void convertVarNameOriginalCase() {
fakeScalaCodegen.setModelPropertyNaming(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.original.name());
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "name");
Assert.assertEquals(fakeScalaCodegen.toVarName("Name"), "Name");
Assert.assertEquals(fakeScalaCodegen.toVarName("name-sanitized-to-underscore"), "name_sanitized_to_underscore");
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "user_name");
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "user_name");
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "uSername");
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1AAaa`");
}
}

View File

@@ -46,5 +46,6 @@ public class ScalaAkkaClientOptionsTest extends AbstractOptionsTest {
verify(clientCodegen).setSourceFolder(ScalaAkkaClientOptionsProvider.SOURCE_FOLDER_VALUE);
verify(clientCodegen).setPrependFormOrBodyParameters(Boolean.valueOf(ScalaAkkaClientOptionsProvider.PREPEND_FORM_OR_BODY_PARAMETERS_VALUE));
verify(clientCodegen).setMainPackage(ScalaAkkaClientOptionsProvider.MAIN_PACKAGE_VALUE);
verify(clientCodegen).setModelPropertyNaming(ScalaAkkaClientOptionsProvider.MODEL_PROPERTY_NAMING);
}
}

View File

@@ -2,7 +2,7 @@
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
This Scala Play Framework project was generated by the OpenAPI generator tool at 2020-02-25T23:20:59.671788+07:00[Asia/Bangkok].
This Scala Play Framework project was generated by the OpenAPI generator tool at 2020-02-29T14:21:53.710+07:00[Asia/Bangkok].
## API

View File

@@ -4,7 +4,7 @@ import model.ApiResponse
import model.Pet
import play.api.libs.Files.TemporaryFile
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
trait PetApi {
/**
* Add a new pet to the store

View File

@@ -8,7 +8,7 @@ import model.ApiResponse
import model.Pet
import play.api.libs.Files.TemporaryFile
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
@Singleton
class PetApiController @Inject()(cc: ControllerComponents, api: PetApi) extends AbstractController(cc) {
/**

View File

@@ -7,7 +7,7 @@ import play.api.libs.Files.TemporaryFile
/**
* Provides a default implementation for [[PetApi]].
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
class PetApiImpl extends PetApi {
/**
* @inheritdoc

View File

@@ -2,7 +2,7 @@ package api
import model.Order
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
trait StoreApi {
/**
* Delete purchase order by ID

View File

@@ -6,7 +6,7 @@ import play.api.libs.json._
import play.api.mvc._
import model.Order
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
@Singleton
class StoreApiController @Inject()(cc: ControllerComponents, api: StoreApi) extends AbstractController(cc) {
/**

View File

@@ -5,7 +5,7 @@ import model.Order
/**
* Provides a default implementation for [[StoreApi]].
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
class StoreApiImpl extends StoreApi {
/**
* @inheritdoc

View File

@@ -2,7 +2,7 @@ package api
import model.User
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
trait UserApi {
/**
* Create user

View File

@@ -6,7 +6,7 @@ import play.api.libs.json._
import play.api.mvc._
import model.User
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
@Singleton
class UserApiController @Inject()(cc: ControllerComponents, api: UserApi) extends AbstractController(cc) {
/**

View File

@@ -5,7 +5,7 @@ import model.User
/**
* Provides a default implementation for [[UserApi]].
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
class UserApiImpl extends UserApi {
/**
* @inheritdoc

View File

@@ -5,7 +5,7 @@ import play.api.libs.json._
/**
* Describes the result of uploading an image resource
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
case class ApiResponse(
code: Option[Int],
`type`: Option[String],

View File

@@ -5,7 +5,7 @@ import play.api.libs.json._
/**
* A category for a pet
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
case class Category(
id: Option[Long],
name: Option[String]

View File

@@ -7,7 +7,7 @@ import java.time.OffsetDateTime
* An order for a pets from the pet store
* @param status Order Status
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
case class Order(
id: Option[Long],
petId: Option[Long],

View File

@@ -6,7 +6,7 @@ import play.api.libs.json._
* A pet for sale in the pet store
* @param status pet status in the store
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
case class Pet(
id: Option[Long],
category: Option[Category],

View File

@@ -5,7 +5,7 @@ import play.api.libs.json._
/**
* A tag for a pet
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
case class Tag(
id: Option[Long],
name: Option[String]

View File

@@ -6,7 +6,7 @@ import play.api.libs.json._
* A User who is purchasing from the pet store
* @param userStatus User Status
*/
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
case class User(
id: Option[Long],
username: Option[String],

View File

@@ -4,7 +4,7 @@ import api._
import play.api.inject.{Binding, Module => PlayModule}
import play.api.{Configuration, Environment}
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
class Module extends PlayModule {
override def bindings(environment: Environment, configuration: Configuration): Seq[Binding[_]] = Seq(
bind[PetApi].to[PetApiImpl],