Skip to content

Commit e696448

Browse files
authored
Service api fix (#18767)
* moved service api into shared source * moved service api into shared source * This Scala cask change makes the service traits available to Both JVM and JS platforms. It does this by moving the api interfaces into the cross-platform Shared sources
1 parent ee3ff39 commit e696448

File tree

5 files changed

+25
-13
lines changed

5 files changed

+25
-13
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,6 @@ public String toDefaultValue(Schema p) {
140140

141141
@Override
142142
public String getSchemaType(Schema p) {
143-
// pants ... this is also used in the imports, so
144-
// we're getting stuff like this:
145-
//
146-
// import docstore.model.ujson.Value
147-
//
148143
if (ModelUtils.isFreeFormObject(p)) {
149144
// We're opinionated in this template to use ujson
150145
return "Value";
@@ -287,25 +282,42 @@ public String toApiName(String name) {
287282

288283
@Override
289284
public String apiFilename(String templateName, String tag) {
290-
String suffix = apiTemplateFiles().get(templateName);
291-
String fn = toApiFilename(tag);
285+
286+
final String suffix = apiTemplateFiles().get(templateName);
287+
final String fn = toApiFilename(tag);
292288
if (templateName.equals(ApiServiceTemplate)) {
293-
return apiFileFolder() + '/' + fn + suffix;
289+
return apiInterfaceFileFolder() + '/' + fn + suffix;
290+
}
291+
return apiFileFolder() + '/' + fn + "Routes" + suffix;
292+
}
293+
@Override
294+
public String modelFilename(String templateName, String modelName) {
295+
final String defaultFilename = super.modelFilename(templateName, modelName);
296+
if (templateName.equals(ApiServiceTemplate)) {
297+
final String suffix = apiTemplateFiles().get(templateName);
298+
final String fn = toApiFilename(modelName);
299+
final String path = modelFileFolder() + '/' + fn + suffix;
300+
return path;
294301
} else {
295-
return apiFileFolder() + '/' + fn + "Routes" + suffix;
302+
return defaultFilename;
296303
}
297304
}
298305

299306
@Override
300307
public String apiFileFolder() {
301-
return outputFolder + "/jvm/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
308+
final String folder = outputFolder + "/jvm/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);;
309+
return folder;
302310
}
303311

304312
@Override
305313
public String modelFileFolder() {
306314
return outputFolder + "/shared/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar);
307315
}
308316

317+
public String apiInterfaceFileFolder() {
318+
return outputFolder + "/shared/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
319+
}
320+
309321
static String capitalise(String p) {
310322
if (p.length() < 2) {
311323
return p.toUpperCase(Locale.ROOT);

samples/server/petstore/scala-cask/.openapi-generator/FILES

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ jvm/src/main/scala/sample/cask/ExampleApp.scala
1313
jvm/src/main/scala/sample/cask/api/OpenApiRoutes.scala
1414
jvm/src/main/scala/sample/cask/api/PetRoutes.scala
1515
jvm/src/main/scala/sample/cask/api/PetRoutes.scala
16-
jvm/src/main/scala/sample/cask/api/PetService.scala
1716
jvm/src/main/scala/sample/cask/api/StoreRoutes.scala
1817
jvm/src/main/scala/sample/cask/api/StoreRoutes.scala
19-
jvm/src/main/scala/sample/cask/api/StoreService.scala
2018
jvm/src/main/scala/sample/cask/api/UserRoutes.scala
2119
jvm/src/main/scala/sample/cask/api/UserRoutes.scala
22-
jvm/src/main/scala/sample/cask/api/UserService.scala
2320
jvm/src/main/scala/sample/cask/api/package.scala
2421
jvm/src/main/scala/sample/cask/package.scala
2522
project/build.properties
2623
project/plugins.sbt
24+
shared/src/main/scala/sample/cask/api/PetService.scala
25+
shared/src/main/scala/sample/cask/api/StoreService.scala
26+
shared/src/main/scala/sample/cask/api/UserService.scala
2727
shared/src/main/scala/sample/cask/model/ApiResponse.scala
2828
shared/src/main/scala/sample/cask/model/ApiResponseData.scala
2929
shared/src/main/scala/sample/cask/model/Category.scala

0 commit comments

Comments
 (0)