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 @Override
public String getSchemaType(Schema p) { 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)) { if (ModelUtils.isFreeFormObject(p)) {
// We're opinionated in this template to use ujson // We're opinionated in this template to use ujson
return "Value"; return "Value";
@ -287,18 +282,31 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code
@Override @Override
public String apiFilename(String templateName, String tag) { 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)) { if (templateName.equals(ApiServiceTemplate)) {
return apiFileFolder() + '/' + fn + suffix; return apiInterfaceFileFolder() + '/' + fn + suffix;
} else { }
return apiFileFolder() + '/' + fn + "Routes" + 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 defaultFilename;
}
} }
@Override @Override
public String apiFileFolder() { public String apiFileFolder() {
return outputFolder + "/jvm/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar); final String folder = outputFolder + "/jvm/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);;
return folder;
} }
@Override @Override
@ -306,6 +314,10 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code
return outputFolder + "/shared/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar); return outputFolder + "/shared/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar);
} }
public String apiInterfaceFileFolder() {
return outputFolder + "/shared/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
}
static String capitalise(String p) { static String capitalise(String p) {
if (p.length() < 2) { if (p.length() < 2) {
return p.toUpperCase(Locale.ROOT); 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/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/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/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/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/api/package.scala
jvm/src/main/scala/sample/cask/package.scala jvm/src/main/scala/sample/cask/package.scala
project/build.properties project/build.properties
project/plugins.sbt 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/ApiResponse.scala
shared/src/main/scala/sample/cask/model/ApiResponseData.scala shared/src/main/scala/sample/cask/model/ApiResponseData.scala
shared/src/main/scala/sample/cask/model/Category.scala shared/src/main/scala/sample/cask/model/Category.scala