Skip to content

Commit

Permalink
added examples and formats for ISO DateTime
Browse files Browse the repository at this point in the history
  • Loading branch information
darkxanter committed Feb 27, 2021
1 parent f22b947 commit 247aa2f
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import com.papsign.ktor.openapigen.schema.builder.SchemaBuilder
import java.io.InputStream
import java.math.BigDecimal
import java.math.BigInteger
import java.time.Instant
import java.time.*
import java.util.*
import kotlin.reflect.KType

Expand All @@ -33,9 +33,9 @@ object DefaultPrimitiveSchemaProvider: SchemaBuilderProviderModule, OpenAPIGenMo
)
}

inline operator fun <reified T> invoke(type: DataType, format: DataFormat? = null): Builder {
inline operator fun <reified T> invoke(type: DataType, format: DataFormat? = null, pattern: String? = null, example: T? = null): Builder {
return Builder(
SchemaModel.SchemaModelLitteral<T>(type, format)
SchemaModel.SchemaModelLitteral<T>(type, format, pattern = pattern, example = example)
)
}
}
Expand Down Expand Up @@ -74,9 +74,40 @@ object DefaultPrimitiveSchemaProvider: SchemaBuilderProviderModule, OpenAPIGenMo
Builder<BigDecimal>(
DataType.number
),
Builder<LocalDate>(
DataType.string,
DataFormat.date,
example = LocalDate.now()
),
Builder<LocalTime>(
DataType.string,
pattern = "HH:mm:ss",
example = LocalTime.now()
),
Builder<OffsetTime>(
DataType.string,
pattern = "HH:mm:ss+XXX",
example = OffsetTime.now()
),
Builder<LocalDateTime>(
DataType.string,
DataFormat.`date-time`,
example = LocalDateTime.now()
),
Builder<OffsetDateTime>(
DataType.string,
DataFormat.`date-time`,
example = OffsetDateTime.now()
),
Builder<ZonedDateTime>(
DataType.string,
DataFormat.`date-time`,
example = ZonedDateTime.now()
),
Builder<Instant>(
DataType.string,
DataFormat.`date-time`
DataFormat.`date-time`,
example = Instant.now()
),
Builder<Date>(
DataType.string,
Expand Down
16 changes: 16 additions & 0 deletions src/test/kotlin/TestServer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,17 @@ object TestServer {
}
}
}
route("local-time") {
get<LocalTimeQuery, LocalTimeResponse> { params ->
respond(LocalTimeResponse(params.time))
}
}
route("offset-time") {
get<OffsetTimeQuery, OffsetTimeResponse> { params ->
respond(OffsetTimeResponse(params.time))
}
}

route("local-date-time") {
get<LocalDateTimeQuery, LocalDateTimeResponse> { params ->
respond(LocalDateTimeResponse(params.date))
Expand Down Expand Up @@ -391,9 +402,14 @@ object TestServer {
data class ZonedDateTimeQuery(@QueryParam("OffsetDateTime") val date: ZonedDateTime)
data class InstantQuery(@QueryParam("Instant") val date: Instant)

data class LocalTimeQuery(@QueryParam("LocalTime") val time: LocalTime)
data class OffsetTimeQuery(@QueryParam("OffsetTime") val time: OffsetTime)

data class LocalDateResponse(val date: LocalDate?)
data class LocalDateTimeResponse(val date: LocalDateTime?)
data class OffsetDateTimeResponse(val date: OffsetDateTime?)
data class ZonedDateTimeResponse(val date: ZonedDateTime?)
data class InstantResponse(val instant: Instant)
data class LocalTimeResponse(val time: LocalTime?)
data class OffsetTimeResponse(val time: OffsetTime?)
}

0 comments on commit 247aa2f

Please sign in to comment.