Skip to content

Commit 3250a5d

Browse files
committed
swagger-scala-module 2.9.0
1 parent 7e17ce1 commit 3250a5d

File tree

2 files changed

+4
-47
lines changed

2 files changed

+4
-47
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pomIncludeRepository := { x => false }
1818

1919
libraryDependencies ++= Seq(
2020
"io.swagger.core.v3" % "swagger-core-jakarta" % "2.2.7",
21-
"com.github.swagger-akka-http" %% "swagger-scala-module" % "2.8.2",
21+
"com.github.swagger-akka-http" %% "swagger-scala-module" % "2.9.0",
2222
"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.14.1",
2323
"org.scalatest" %% "scalatest" % "3.2.14" % Test,
2424
"org.slf4j" % "slf4j-simple" % "2.0.6" % Test

src/main/scala/com/github/swagger/scala3enum/converter/SwaggerScala3EnumModelConverter.scala

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ import io.swagger.v3.core.converter.{AnnotatedType, ModelConverter, ModelConvert
55
import io.swagger.v3.core.jackson.ModelResolver
66
import io.swagger.v3.core.util.{Json, PrimitiveType}
77
import io.swagger.v3.oas.annotations.Parameter
8-
import io.swagger.v3.oas.annotations.media.Schema.{AccessMode, RequiredMode}
9-
import io.swagger.v3.oas.annotations.media.{ArraySchema, Schema as SchemaAnnotation}
8+
import io.swagger.v3.oas.annotations.media.Schema.AccessMode
9+
import io.swagger.v3.oas.annotations.media.{Schema as SchemaAnnotation}
1010
import io.swagger.v3.oas.models.media.Schema
1111

12-
import java.lang.annotation.Annotation
1312
import java.lang.reflect.InvocationTargetException
1413
import java.util.Iterator
1514
import scala.reflect.Enum
@@ -113,7 +112,7 @@ class SwaggerScala3EnumModelConverter extends ModelResolver(Json.mapper()) {
113112
private def setRequired(annotatedType: AnnotatedType): Unit = annotatedType match {
114113
case _: AnnotatedTypeForOption => // not required
115114
case _ => {
116-
val required = getRequiredSettings(annotatedType).headOption.getOrElse(true)
115+
val required = SwaggerScalaModelConverter.getRequiredSettings(annotatedType).headOption.getOrElse(true)
117116
if (required) {
118117
Option(annotatedType.getParent).foreach { parent =>
119118
Option(annotatedType.getPropertyName).foreach { n =>
@@ -124,48 +123,6 @@ class SwaggerScala3EnumModelConverter extends ModelResolver(Json.mapper()) {
124123
}
125124
}
126125

127-
private def getRequiredSettings(annotatedType: AnnotatedType): Seq[Boolean] = annotatedType match {
128-
case _: AnnotatedTypeForOption => Seq.empty
129-
case _ => getRequiredSettings(nullSafeList(annotatedType.getCtxAnnotations))
130-
}
131-
132-
private def getRequiredSettings(annotations: Seq[Annotation]): Seq[Boolean] = {
133-
val flags = annotations.collect {
134-
case p: Parameter => if (p.required()) RequiredMode.REQUIRED else RequiredMode.NOT_REQUIRED
135-
case s: SchemaAnnotation => {
136-
if (s.requiredMode() == RequiredMode.AUTO) {
137-
if (s.required()) {
138-
RequiredMode.REQUIRED
139-
} else if (SwaggerScalaModelConverter.isRequiredBasedOnAnnotation) {
140-
RequiredMode.NOT_REQUIRED
141-
} else {
142-
RequiredMode.AUTO
143-
}
144-
} else {
145-
s.requiredMode()
146-
}
147-
}
148-
case a: ArraySchema => {
149-
if (a.arraySchema().requiredMode() == RequiredMode.AUTO) {
150-
if (a.arraySchema().required()) {
151-
RequiredMode.REQUIRED
152-
} else if (SwaggerScalaModelConverter.isRequiredBasedOnAnnotation) {
153-
RequiredMode.NOT_REQUIRED
154-
} else {
155-
RequiredMode.AUTO
156-
}
157-
} else {
158-
a.arraySchema().requiredMode()
159-
}
160-
}
161-
}
162-
flags.flatMap {
163-
case RequiredMode.REQUIRED => Some(true)
164-
case RequiredMode.NOT_REQUIRED => Some(false)
165-
case _ => None
166-
}
167-
}
168-
169126
private def nullSafeList[T](array: Array[T]): List[T] = Option(array) match {
170127
case None => List.empty[T]
171128
case Some(arr) => arr.toList

0 commit comments

Comments
 (0)