diff --git a/library/src/main/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistration.scala b/library/src/main/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistration.scala index 0cb51e7..69fb6df 100644 --- a/library/src/main/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistration.scala +++ b/library/src/main/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistration.scala @@ -19,7 +19,7 @@ package za.co.absa.springdocopenapiscala import io.swagger.v3.oas.models.Components import io.swagger.v3.oas.models.media.{Discriminator, Schema} -import java.time.{Instant, LocalDate, LocalDateTime, ZonedDateTime} +import java.time.{Instant, LocalDate, LocalDateTime, LocalTime, ZonedDateTime} import java.util.UUID import scala.annotation.tailrec import scala.collection.JavaConverters._ @@ -242,6 +242,7 @@ class OpenAPIModelRegistration( case t if t =:= typeOf[Instant] => OpenAPISimpleType("string", Some("date-time")) case t if t =:= typeOf[LocalDateTime] => OpenAPISimpleType("string", Some("date-time")) case t if t =:= typeOf[LocalDate] => OpenAPISimpleType("string", Some("date")) + case t if t =:= typeOf[LocalTime] => OpenAPISimpleType("string", Some("time")) } private def registerAsReference(name: String, schema: Schema[_]): Schema[_] = { diff --git a/library/src/test/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistrationSpec.scala b/library/src/test/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistrationSpec.scala index 164dee0..7d28dae 100644 --- a/library/src/test/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistrationSpec.scala +++ b/library/src/test/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistrationSpec.scala @@ -22,7 +22,7 @@ import io.swagger.v3.oas.models.media.Schema import org.scalatest import org.scalatest.flatspec.AnyFlatSpec -import java.time.{Instant, LocalDate, LocalDateTime, ZonedDateTime} +import java.time.{Instant, LocalDate, LocalDateTime, LocalTime, ZonedDateTime} import java.util.UUID import scala.collection.JavaConverters._ import scala.reflect.runtime.universe._ @@ -46,7 +46,8 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec { l: ZonedDateTime, o: Instant, p: LocalDateTime, - r: LocalDate + r: LocalDate, + s: LocalTime ) private case class SimpleTypesMaybeInOption( @@ -192,6 +193,7 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec { assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.o", "string", Some("date-time")) assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.p", "string", Some("date-time")) assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.r", "string", Some("date")) + assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.s", "string", Some("time")) } it should "mark all non-Option fields of case class as required" in {