Skip to content

Commit 76f9c4d

Browse files
authored
#54 Support for Timestamp, BigDecimal, and BigInt (#55)
1 parent 9344a0c commit 76f9c4d

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

library/src/main/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistration.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import scala.collection.JavaConverters._
2626
import scala.reflect.runtime.universe._
2727
import OpenAPIModelRegistration._
2828

29+
import java.sql.Timestamp
30+
2931
class OpenAPIModelRegistration(
3032
components: Components,
3133
extraTypesHandler: ExtraTypesHandling.ExtraTypesHandler = ExtraTypesHandling.noExtraHandling,
@@ -243,6 +245,9 @@ class OpenAPIModelRegistration(
243245
case t if t =:= typeOf[LocalDateTime] => OpenAPISimpleType("string", Some("date-time"))
244246
case t if t =:= typeOf[LocalDate] => OpenAPISimpleType("string", Some("date"))
245247
case t if t =:= typeOf[LocalTime] => OpenAPISimpleType("string", Some("time"))
248+
case t if t =:= typeOf[Timestamp] => OpenAPISimpleType("string", Some("date-time"))
249+
case t if t =:= typeOf[BigDecimal] => OpenAPISimpleType("number")
250+
case t if t =:= typeOf[BigInt] => OpenAPISimpleType("integer")
246251
}
247252

248253
private def registerAsReference(name: String, schema: Schema[_]): Schema[_] = {

library/src/test/scala/za/co/absa/springdocopenapiscala/OpenAPIModelRegistrationSpec.scala

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ package za.co.absa.springdocopenapiscala
1818

1919
import io.swagger.v3.oas.models.Components
2020
import io.swagger.v3.oas.models.media.Schema
21-
2221
import org.scalatest
2322
import org.scalatest.flatspec.AnyFlatSpec
2423

2524
import java.time.{Instant, LocalDate, LocalDateTime, LocalTime, ZonedDateTime}
2625
import java.util.UUID
2726
import scala.collection.JavaConverters._
2827
import scala.reflect.runtime.universe._
29-
3028
import za.co.absa.springdocopenapiscala.OpenAPIModelRegistration.ExtraTypesHandling
3129

30+
import java.sql.Timestamp
31+
3232
class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
3333

3434
private case class OnlySimpleTypes(
@@ -47,7 +47,10 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
4747
o: Instant,
4848
p: LocalDateTime,
4949
r: LocalDate,
50-
s: LocalTime
50+
s: LocalTime,
51+
t: BigDecimal,
52+
w: BigInt,
53+
z: Timestamp
5154
)
5255

5356
private case class SimpleTypesMaybeInOption(
@@ -194,6 +197,9 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
194197
assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.p", "string", Some("date-time"))
195198
assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.r", "string", Some("date"))
196199
assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.s", "string", Some("time"))
200+
assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.t", "number")
201+
assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.w", "integer")
202+
assertTypeAndFormatAreAsExpected(actualSchemas, "OnlySimpleTypes.z", "string", Some("date-time"))
197203
}
198204

199205
it should "mark all non-Option fields of case class as required" in {

0 commit comments

Comments
 (0)