From 97289dffd2abac5965a5e1fa09b013e88a0c944c Mon Sep 17 00:00:00 2001 From: Syer10 Date: Mon, 10 Oct 2022 16:05:21 -0400 Subject: [PATCH] Documentation cleanup --- .../tachidesk/manga/controller/BackupController.kt | 4 ++-- .../manga/controller/ExtensionController.kt | 2 +- .../tachidesk/manga/controller/MangaController.kt | 7 ++++--- .../tachidesk/server/util/DocumentationDsl.kt | 14 ++++++++++---- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt index 52e7981d83..499e2e15c2 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/BackupController.kt @@ -92,7 +92,7 @@ object BackupController { ) }, withResults = { - mime(HttpCode.OK, "application/octet-stream") + stream(HttpCode.OK) } ) @@ -124,7 +124,7 @@ object BackupController { ) }, withResults = { - mime(HttpCode.OK, "application/octet-stream") + stream(HttpCode.OK) } ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/ExtensionController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/ExtensionController.kt index b4d499cb08..45e5478316 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/ExtensionController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/ExtensionController.kt @@ -158,7 +158,7 @@ object ExtensionController { ) }, withResults = { - httpCode(HttpCode.OK) + image(HttpCode.OK) httpCode(HttpCode.NOT_FOUND) } ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/MangaController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/MangaController.kt index e101d5302f..a7ea4c2c21 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/MangaController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/MangaController.kt @@ -23,6 +23,7 @@ import suwayomi.tachidesk.server.util.handler import suwayomi.tachidesk.server.util.pathParam import suwayomi.tachidesk.server.util.queryParam import suwayomi.tachidesk.server.util.withOperation +import kotlin.time.Duration.Companion.days object MangaController { /** get manga info */ @@ -63,14 +64,14 @@ object MangaController { future { Manga.getMangaThumbnail(mangaId, useCache) } .thenApply { ctx.header("content-type", it.second) - val httpCacheSeconds = 60 * 60 * 24 + val httpCacheSeconds = 1.days.inWholeSeconds ctx.header("cache-control", "max-age=$httpCacheSeconds") it.first } ) }, withResults = { - mime(HttpCode.OK, "image/*") + image(HttpCode.OK) httpCode(HttpCode.NOT_FOUND) } ) @@ -319,7 +320,7 @@ object MangaController { ) }, withResults = { - mime(HttpCode.OK, "image/*") + image(HttpCode.OK) httpCode(HttpCode.NOT_FOUND) } ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/util/DocumentationDsl.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/util/DocumentationDsl.kt index 21ba7622e7..d72ce66637 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/util/DocumentationDsl.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/util/DocumentationDsl.kt @@ -152,8 +152,14 @@ class ResultsBuilder { fun plainText(code: HttpCode) { results += ResultType.MimeType(code, "text/plain", String::class.java) } - fun mime(code: HttpCode, mime: String) { - results += ResultType.MimeType(code, mime, null) + fun image(code: HttpCode) { + results += ResultType.MimeType(code, "image/*", ByteArray::class.java) + } + fun stream(code: HttpCode) { + results += ResultType.MimeType(code, "application/octet-stream", ByteArray::class.java) + } + inline fun mime(code: HttpCode, mime: String) { + results += ResultType.MimeType(code, mime, T::class.java) } fun httpCode(code: HttpCode) { results += ResultType.StatusCode(code) @@ -162,9 +168,9 @@ class ResultsBuilder { sealed class ResultType { abstract fun applyTo(documentation: OpenApiDocumentation) - data class MimeType(val code: HttpCode, val mime: String, private val clazz: Class<*>?) : ResultType() { + data class MimeType(val code: HttpCode, val mime: String, private val clazz: Class<*>) : ResultType() { override fun applyTo(documentation: OpenApiDocumentation) { - documentation.result(code.status.toString(), clazz) + documentation.result(code.status.toString(), clazz, mime) } } data class StatusCode(val code: HttpCode) : ResultType() {