mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-02 05:30:51 +00:00
Add enums to scala-http4s-server (#21320)
This commit is contained in:
parent
db38f0f556
commit
fc29daa6c0
@ -350,7 +350,16 @@ public class ScalaHttp4sServerCodegen extends DefaultCodegen implements CodegenC
|
|||||||
// model oneOf as sealed trait
|
// model oneOf as sealed trait
|
||||||
|
|
||||||
CodegenModel cModel = model.getModel();
|
CodegenModel cModel = model.getModel();
|
||||||
cModel.getVendorExtensions().put("x-isSealedTrait", !cModel.oneOf.isEmpty());
|
|
||||||
|
if (!cModel.oneOf.isEmpty()) {
|
||||||
|
cModel.getVendorExtensions().put("x-isSealedTrait", true);
|
||||||
|
}
|
||||||
|
else if (cModel.isEnum) {
|
||||||
|
cModel.getVendorExtensions().put("x-isEnum", true);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
cModel.getVendorExtensions().put("x-another", true);
|
||||||
|
}
|
||||||
|
|
||||||
if (cModel.discriminator != null) {
|
if (cModel.discriminator != null) {
|
||||||
cModel.getVendorExtensions().put("x-use-discr", true);
|
cModel.getVendorExtensions().put("x-use-discr", true);
|
||||||
|
@ -11,6 +11,13 @@ import io.circe.generic.semiauto.{ deriveDecoder, deriveEncoder }
|
|||||||
import {{.}}
|
import {{.}}
|
||||||
{{/imports}}
|
{{/imports}}
|
||||||
|
|
||||||
|
{{#models}}
|
||||||
|
{{#model}}
|
||||||
|
{{#vendorExtensions.x-isEnum}}
|
||||||
|
import {{modelPackage}}.{{classname}}.{{classname}}
|
||||||
|
{{/vendorExtensions.x-isEnum}}
|
||||||
|
{{/model}}
|
||||||
|
{{/models}}
|
||||||
{{#models}}
|
{{#models}}
|
||||||
{{#model}}
|
{{#model}}
|
||||||
/**
|
/**
|
||||||
@ -82,7 +89,19 @@ object {{classname}} {
|
|||||||
}
|
}
|
||||||
{{/vendorExtensions.x-isSealedTrait}}
|
{{/vendorExtensions.x-isSealedTrait}}
|
||||||
|
|
||||||
{{^vendorExtensions.x-isSealedTrait}}
|
{{#vendorExtensions.x-isEnum}}
|
||||||
|
object {{classname}} extends Enumeration {
|
||||||
|
type {{classname}} = Value
|
||||||
|
{{#allowableValues}}
|
||||||
|
{{#values}}
|
||||||
|
val {{.}} = Value
|
||||||
|
{{/values}}
|
||||||
|
{{/allowableValues}}
|
||||||
|
implicit val decoder: Decoder[{{classname}}.Value] = Decoder.decodeEnumeration({{classname}})
|
||||||
|
implicit val encoder: Encoder[{{classname}}.Value] = Encoder.encodeEnumeration({{classname}})
|
||||||
|
}
|
||||||
|
{{/vendorExtensions.x-isEnum}}
|
||||||
|
{{#vendorExtensions.x-another}}
|
||||||
case class {{classname}}(
|
case class {{classname}}(
|
||||||
{{#vars}}
|
{{#vars}}
|
||||||
{{name}}: {{^required}}Option[{{{vendorExtensions.x-type}}}]{{/required}}{{#required}}{{{vendorExtensions.x-type}}}{{/required}}{{^-last}},{{/-last}}
|
{{name}}: {{^required}}Option[{{{vendorExtensions.x-type}}}]{{/required}}{{#required}}{{{vendorExtensions.x-type}}}{{/required}}{{^-last}},{{/-last}}
|
||||||
@ -92,7 +111,7 @@ object {{classname}} {
|
|||||||
implicit val encoder{{classname}}: Encoder[{{classname}}] = deriveEncoder[{{classname}}].mapJson(_.dropNullValues)
|
implicit val encoder{{classname}}: Encoder[{{classname}}] = deriveEncoder[{{classname}}].mapJson(_.dropNullValues)
|
||||||
implicit val decoder{{classname}}: Decoder[{{classname}}] = deriveDecoder[{{classname}}]
|
implicit val decoder{{classname}}: Decoder[{{classname}}] = deriveDecoder[{{classname}}]
|
||||||
}
|
}
|
||||||
{{/vendorExtensions.x-isSealedTrait}}
|
{{/vendorExtensions.x-another}}
|
||||||
|
|
||||||
{{/model}}
|
{{/model}}
|
||||||
{{/models}}
|
{{/models}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user