From 5b0426a94ca49278e3080a67da29d4e7c9723c70 Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Sat, 21 May 2022 06:12:10 -0400 Subject: [PATCH] Docs improvements (#359) * Use Array since Javalin OpenAPI requires it to read the list generics * Use custom Pager class for documentation --- .../tachidesk/manga/controller/CategoryController.kt | 4 ++-- .../tachidesk/manga/controller/ExtensionController.kt | 2 +- .../tachidesk/manga/controller/MangaController.kt | 4 ++-- .../tachidesk/manga/controller/SourceController.kt | 6 +++--- .../tachidesk/manga/controller/UpdateController.kt | 10 ++++++++-- .../tachidesk/manga/model/dataclass/PaginatedList.kt | 2 +- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/CategoryController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/CategoryController.kt index bd3f7fc9..a4ff4c05 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/CategoryController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/CategoryController.kt @@ -30,7 +30,7 @@ object CategoryController { ctx.json(Category.getCategoryList()) }, withResults = { - json>(HttpCode.OK) + json>(HttpCode.OK) } ) @@ -107,7 +107,7 @@ object CategoryController { ctx.json(CategoryManga.getCategoryMangaList(categoryId)) }, withResults = { - json>(HttpCode.OK) + json>(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 6774f84f..b4d499cb 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/ExtensionController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/ExtensionController.kt @@ -37,7 +37,7 @@ object ExtensionController { ) }, withResults = { - json>(HttpCode.OK) + json>(HttpCode.OK) } ) 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 f75e9711..e101d530 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/MangaController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/MangaController.kt @@ -128,7 +128,7 @@ object MangaController { ctx.json(CategoryManga.getMangaCategories(mangaId)) }, withResults = { - json>(HttpCode.OK) + json>(HttpCode.OK) } ) @@ -205,7 +205,7 @@ object MangaController { ctx.future(future { Chapter.getChapterList(mangaId, onlineFetch) }) }, withResults = { - json>(HttpCode.OK) + json>(HttpCode.OK) httpCode(HttpCode.NOT_FOUND) } ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/SourceController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/SourceController.kt index 2a5ea2f0..a5d4e3d8 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/SourceController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/SourceController.kt @@ -39,7 +39,7 @@ object SourceController { ctx.json(Source.getSourceList()) }, withResults = { - json>(HttpCode.OK) + json>(HttpCode.OK) } ) @@ -118,7 +118,7 @@ object SourceController { ctx.json(Source.getSourcePreferences(sourceId)) }, withResults = { - json>(HttpCode.OK) + json>(HttpCode.OK) } ) @@ -154,7 +154,7 @@ object SourceController { ctx.json(Search.getFilterList(sourceId, reset)) }, withResults = { - json>(HttpCode.OK) + json>(HttpCode.OK) } ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/UpdateController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/UpdateController.kt index ad4e62cc..21864836 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/UpdateController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/UpdateController.kt @@ -14,7 +14,7 @@ import suwayomi.tachidesk.manga.impl.update.IUpdater import suwayomi.tachidesk.manga.impl.update.UpdateStatus import suwayomi.tachidesk.manga.impl.update.UpdaterSocket import suwayomi.tachidesk.manga.model.dataclass.CategoryDataClass -import suwayomi.tachidesk.manga.model.dataclass.MangaDataClass +import suwayomi.tachidesk.manga.model.dataclass.MangaChapterDataClass import suwayomi.tachidesk.manga.model.dataclass.PaginatedList import suwayomi.tachidesk.server.JavalinSetup.future import suwayomi.tachidesk.server.util.formParam @@ -49,10 +49,16 @@ object UpdateController { ) }, withResults = { - json>(HttpCode.OK) + json(HttpCode.OK) } ) + /** + * Class made for handling return type in the documentation for [recentChapters], + * since OpenApi cannot handle runtime generics. + */ + private class PagedMangaChapterListDataClass : PaginatedList(emptyList(), false) + val categoryUpdate = handler( formParam("categoryId"), documentWith = { diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/PaginatedList.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/PaginatedList.kt index 1466351d..4a38a916 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/PaginatedList.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/model/dataclass/PaginatedList.kt @@ -9,7 +9,7 @@ package suwayomi.tachidesk.manga.model.dataclass import kotlin.math.min -data class PaginatedList( +open class PaginatedList( val page: List, val hasNextPage: Boolean, )