From dfeca3e7934b788d54bdbdb6fffee16da4aab347 Mon Sep 17 00:00:00 2001 From: Sascha Hahne Date: Tue, 30 Nov 2021 20:24:05 +0100 Subject: [PATCH] Add Route to stop and reset the updater --- .../suwayomi/tachidesk/manga/MangaAPI.kt | 1 + .../manga/controller/UpdateController.kt | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt index ed5e94af38..6baebb3213 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt @@ -114,6 +114,7 @@ object MangaAPI { path("update") { get("recentChapters/{pageNum}", UpdateController::recentChapters) post("fetch", UpdateController::categoryUpdate) + post("reset", UpdateController.reset) get("summary", UpdateController::updateSummary) ws("", UpdateController::categoryUpdateWS) } 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 9d3a12e344..040a98c181 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/UpdateController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/UpdateController.kt @@ -15,6 +15,8 @@ import suwayomi.tachidesk.manga.impl.update.IUpdater import suwayomi.tachidesk.manga.impl.update.UpdaterSocket import suwayomi.tachidesk.manga.model.dataclass.CategoryDataClass import suwayomi.tachidesk.server.JavalinSetup.future +import suwayomi.tachidesk.server.util.handler +import suwayomi.tachidesk.server.util.withOperation /* * Copyright (C) Contributors to the Suwayomi project @@ -86,4 +88,25 @@ object UpdateController { val updater by DI.global.instance() ctx.json(updater.getStatus().value.getJsonSummary()) } + + val reset = handler( + documentWith = { + withOperation { + summary("Stops and resets the Updater") + } + }, + behaviorOf = { ctx -> + val updater by DI.global.instance() + logger.info { "Resetting Updater" } + ctx.future( + future { + updater.reset() + }.thenApply { + ctx.status(HttpCode.OK) + } + ) + }, + withResults = { + } + ) }