diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt index ed5e94af..6baebb32 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 9d3a12e3..040a98c1 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 = { + } + ) }