mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-01 21:20:55 +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
|
||||
|
||||
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) {
|
||||
cModel.getVendorExtensions().put("x-use-discr", true);
|
||||
|
@ -11,6 +11,13 @@ import io.circe.generic.semiauto.{ deriveDecoder, deriveEncoder }
|
||||
import {{.}}
|
||||
{{/imports}}
|
||||
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
{{#vendorExtensions.x-isEnum}}
|
||||
import {{modelPackage}}.{{classname}}.{{classname}}
|
||||
{{/vendorExtensions.x-isEnum}}
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
/**
|
||||
@ -82,7 +89,19 @@ object {{classname}} {
|
||||
}
|
||||
{{/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}}(
|
||||
{{#vars}}
|
||||
{{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 decoder{{classname}}: Decoder[{{classname}}] = deriveDecoder[{{classname}}]
|
||||
}
|
||||
{{/vendorExtensions.x-isSealedTrait}}
|
||||
{{/vendorExtensions.x-another}}
|
||||
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user