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
This commit is contained in:
Aaron Pritzlaff 2024-05-26 14:37:35 +01:00 committed by GitHub
parent ee3ff39225
commit e6964482b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 25 additions and 13 deletions

View File

@ -140,11 +140,6 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code
@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 class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code
@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 class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code
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);

View File

@ -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