diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java index adb1fb97161d..576e138aead4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java @@ -140,11 +140,6 @@ public String toDefaultValue(Schema p) { @Override public String getSchemaType(Schema p) { - // pants ... this is also used in the imports, so - // we're getting stuff like this: - // - // import docstore.model.ujson.Value - // if (ModelUtils.isFreeFormObject(p)) { // We're opinionated in this template to use ujson return "Value"; @@ -287,18 +282,31 @@ public String toApiName(String name) { @Override public String apiFilename(String templateName, String tag) { - String suffix = apiTemplateFiles().get(templateName); - String fn = toApiFilename(tag); + + final String suffix = apiTemplateFiles().get(templateName); + final String fn = toApiFilename(tag); if (templateName.equals(ApiServiceTemplate)) { - return apiFileFolder() + '/' + fn + suffix; + return apiInterfaceFileFolder() + '/' + fn + suffix; + } + return apiFileFolder() + '/' + fn + "Routes" + suffix; + } + @Override + public String modelFilename(String templateName, String modelName) { + final String defaultFilename = super.modelFilename(templateName, modelName); + if (templateName.equals(ApiServiceTemplate)) { + final String suffix = apiTemplateFiles().get(templateName); + final String fn = toApiFilename(modelName); + final String path = modelFileFolder() + '/' + fn + suffix; + return path; } else { - return apiFileFolder() + '/' + fn + "Routes" + suffix; + return defaultFilename; } } @Override public String apiFileFolder() { - return outputFolder + "/jvm/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar); + final String folder = outputFolder + "/jvm/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);; + return folder; } @Override @@ -306,6 +314,10 @@ public String modelFileFolder() { return outputFolder + "/shared/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar); } + public String apiInterfaceFileFolder() { + return outputFolder + "/shared/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar); + } + static String capitalise(String p) { if (p.length() < 2) { return p.toUpperCase(Locale.ROOT); diff --git a/samples/server/petstore/scala-cask/.openapi-generator/FILES b/samples/server/petstore/scala-cask/.openapi-generator/FILES index 914d965e7787..e3a6308f3d25 100644 --- a/samples/server/petstore/scala-cask/.openapi-generator/FILES +++ b/samples/server/petstore/scala-cask/.openapi-generator/FILES @@ -13,17 +13,17 @@ jvm/src/main/scala/sample/cask/ExampleApp.scala jvm/src/main/scala/sample/cask/api/OpenApiRoutes.scala jvm/src/main/scala/sample/cask/api/PetRoutes.scala jvm/src/main/scala/sample/cask/api/PetRoutes.scala -jvm/src/main/scala/sample/cask/api/PetService.scala jvm/src/main/scala/sample/cask/api/StoreRoutes.scala jvm/src/main/scala/sample/cask/api/StoreRoutes.scala -jvm/src/main/scala/sample/cask/api/StoreService.scala jvm/src/main/scala/sample/cask/api/UserRoutes.scala jvm/src/main/scala/sample/cask/api/UserRoutes.scala -jvm/src/main/scala/sample/cask/api/UserService.scala jvm/src/main/scala/sample/cask/api/package.scala jvm/src/main/scala/sample/cask/package.scala project/build.properties project/plugins.sbt +shared/src/main/scala/sample/cask/api/PetService.scala +shared/src/main/scala/sample/cask/api/StoreService.scala +shared/src/main/scala/sample/cask/api/UserService.scala shared/src/main/scala/sample/cask/model/ApiResponse.scala shared/src/main/scala/sample/cask/model/ApiResponseData.scala shared/src/main/scala/sample/cask/model/Category.scala diff --git a/samples/server/petstore/scala-cask/jvm/src/main/scala/sample/cask/api/PetService.scala b/samples/server/petstore/scala-cask/shared/src/main/scala/sample/cask/api/PetService.scala similarity index 100% rename from samples/server/petstore/scala-cask/jvm/src/main/scala/sample/cask/api/PetService.scala rename to samples/server/petstore/scala-cask/shared/src/main/scala/sample/cask/api/PetService.scala diff --git a/samples/server/petstore/scala-cask/jvm/src/main/scala/sample/cask/api/StoreService.scala b/samples/server/petstore/scala-cask/shared/src/main/scala/sample/cask/api/StoreService.scala similarity index 100% rename from samples/server/petstore/scala-cask/jvm/src/main/scala/sample/cask/api/StoreService.scala rename to samples/server/petstore/scala-cask/shared/src/main/scala/sample/cask/api/StoreService.scala diff --git a/samples/server/petstore/scala-cask/jvm/src/main/scala/sample/cask/api/UserService.scala b/samples/server/petstore/scala-cask/shared/src/main/scala/sample/cask/api/UserService.scala similarity index 100% rename from samples/server/petstore/scala-cask/jvm/src/main/scala/sample/cask/api/UserService.scala rename to samples/server/petstore/scala-cask/shared/src/main/scala/sample/cask/api/UserService.scala