diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java index 4b98b531b26..d8c33f499da 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java @@ -409,6 +409,7 @@ public class ScalaAkkaHttpServerCodegen extends AbstractScalaCodegen implements entityMarshallerTypes.add(marshaller); operationSpecificMarshallers.add(marshaller); } + response.vendorExtensions.put("x-empty-response", response.baseType == null && response.message == null); response.vendorExtensions.put("x-is-default", response.code.equals("0")); } op.vendorExtensions.put("x-specific-marshallers", operationSpecificMarshallers); diff --git a/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache b/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache index cc9e7b69039..b680bb05503 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache @@ -2,6 +2,7 @@ package {{package}} import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route +import akka.http.scaladsl.model.StatusCodes {{^pathMatcherPatterns.isEmpty}}import akka.http.scaladsl.server.{PathMatcher, PathMatcher1} {{/pathMatcherPatterns.isEmpty}} {{#hasMarshalling}}import akka.http.scaladsl.marshalling.ToEntityMarshaller @@ -63,8 +64,9 @@ object {{classname}}Patterns { trait {{classname}}Service { {{#operation}} -{{#responses}} def {{operationId}}{{#vendorExtensions.x-is-default}}Default{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}{{#baseType}}({{#vendorExtensions.x-is-default}}statusCode: Int, {{/vendorExtensions.x-is-default}}response{{baseType}}{{containerType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/baseType}}{{^baseType}}{{#vendorExtensions.x-is-default}}(statusCode: Int){{/vendorExtensions.x-is-default}}{{/baseType}}: Route = - complete(({{#vendorExtensions.x-is-default}}statusCode{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}, {{#baseType}}response{{baseType}}{{containerType}}{{/baseType}}{{^baseType}}"{{message}}"{{/baseType}})) +{{#responses}} def {{operationId}}{{#vendorExtensions.x-is-default}}Default{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}{{#baseType}}({{#vendorExtensions.x-is-default}}statusCode: Int, {{/vendorExtensions.x-is-default}}response{{baseType}}{{containerType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/baseType}}{{^baseType}}{{#vendorExtensions.x-is-default}}(statusCode: Int){{/vendorExtensions.x-is-default}}{{/baseType}}: Route ={{#vendorExtensions.x-empty-response}} + complete({{#vendorExtensions.x-is-default}}statusCode{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}StatusCodes.getForKey({{code}}){{/vendorExtensions.x-is-default}}){{/vendorExtensions.x-empty-response}}{{^vendorExtensions.x-empty-response}} + complete(({{#vendorExtensions.x-is-default}}statusCode{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}, {{#baseType}}response{{baseType}}{{containerType}}{{/baseType}}{{^baseType}}"{{message}}"{{/baseType}})){{/vendorExtensions.x-empty-response}} {{/responses}} /** {{#responses}} * {{#code}}Code: {{.}}{{/code}}{{#message}}, Message: {{.}}{{/message}}{{#dataType}}, DataType: {{.}}{{/dataType}} diff --git a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala index a78bb32e9a5..4c437290a56 100644 --- a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala +++ b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala @@ -2,6 +2,7 @@ package org.openapitools.server.api import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route +import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.marshalling.ToEntityMarshaller import akka.http.scaladsl.unmarshalling.FromEntityUnmarshaller import akka.http.scaladsl.unmarshalling.FromStringUnmarshaller diff --git a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala index a7bfdc65012..7d8a1743b0e 100644 --- a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala +++ b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala @@ -2,6 +2,7 @@ package org.openapitools.server.api import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route +import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.marshalling.ToEntityMarshaller import akka.http.scaladsl.unmarshalling.FromEntityUnmarshaller import akka.http.scaladsl.unmarshalling.FromStringUnmarshaller diff --git a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala index 0d8cdff7694..2470f1e036c 100644 --- a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala +++ b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala @@ -2,6 +2,7 @@ package org.openapitools.server.api import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route +import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.marshalling.ToEntityMarshaller import akka.http.scaladsl.unmarshalling.FromEntityUnmarshaller import akka.http.scaladsl.unmarshalling.FromStringUnmarshaller