|
1 | 1 | package suwayomi.tachidesk.server.util
|
2 | 2 |
|
3 | 3 | import io.javalin.http.Context
|
| 4 | +import io.javalin.http.HttpCode |
4 | 5 | import io.javalin.plugin.openapi.dsl.DocumentedHandler
|
5 | 6 | import io.javalin.plugin.openapi.dsl.OpenApiDocumentation
|
6 | 7 | import io.javalin.plugin.openapi.dsl.documented
|
@@ -114,19 +115,27 @@ sealed class Param<T> {
|
114 | 115 | class ResultsBuilder {
|
115 | 116 | val results = mutableListOf<ResultType<*>>()
|
116 | 117 |
|
117 |
| - inline fun <reified T> json(status: String) { |
118 |
| - results += ResultType.MimeType(status, "application/json", T::class.java) |
| 118 | + inline fun <reified T> json(code: HttpCode) { |
| 119 | + results += ResultType.MimeType(code, "application/json", T::class.java) |
119 | 120 | }
|
120 |
| - inline fun <reified T> plainText(status: String) { |
121 |
| - results += ResultType.MimeType(status, "text/plain", String::class.java) |
| 121 | + fun plainText(code: HttpCode) { |
| 122 | + results += ResultType.MimeType(code, "text/plain", String::class.java) |
| 123 | + } |
| 124 | + fun httpCode(code: HttpCode) { |
| 125 | + results += ResultType.StatusCode(code) |
122 | 126 | }
|
123 | 127 | }
|
124 | 128 |
|
125 | 129 | sealed class ResultType <T> {
|
126 | 130 | abstract fun applyTo(documentation: OpenApiDocumentation)
|
127 |
| - data class MimeType<T>(val status: String, val mime: String, private val clazz: Class<T>) : ResultType<T>() { |
| 131 | + data class MimeType<T>(val code: HttpCode, val mime: String, private val clazz: Class<T>) : ResultType<T>() { |
| 132 | + override fun applyTo(documentation: OpenApiDocumentation) { |
| 133 | + documentation.result(code.status.toString(), clazz) |
| 134 | + } |
| 135 | + } |
| 136 | + data class StatusCode(val code: HttpCode) : ResultType<Unit>() { |
128 | 137 | override fun applyTo(documentation: OpenApiDocumentation) {
|
129 |
| - documentation.result(status, clazz) |
| 138 | + documentation.result<Unit>(code.status.toString()) |
130 | 139 | }
|
131 | 140 | }
|
132 | 141 | }
|
|
0 commit comments