From 18816b0e9bb9b5bbfbe7b36391158582627223ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartu=20=C3=96zen?= Date: Thu, 18 Dec 2025 20:31:11 +0300 Subject: [PATCH] Return a result from startSync --- .../suwayomi/tachidesk/global/impl/sync/SyncManager.kt | 10 +++++++--- .../tachidesk/graphql/mutations/SyncMutation.kt | 5 ++++- .../suwayomi/tachidesk/graphql/types/SyncType.kt | 7 +++++++ 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 server/src/main/kotlin/suwayomi/tachidesk/graphql/types/SyncType.kt diff --git a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncManager.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncManager.kt index 8633ed510..519a560c8 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/sync/SyncManager.kt @@ -13,6 +13,7 @@ import kotlinx.serialization.protobuf.ProtoBuf import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.transaction import org.jetbrains.exposed.sql.update +import suwayomi.tachidesk.graphql.types.StartSyncResult import suwayomi.tachidesk.manga.impl.Category import suwayomi.tachidesk.manga.impl.backup.BackupFlags import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport @@ -80,13 +81,13 @@ object SyncManager { } @OptIn(DelicateCoroutinesApi::class) - fun startSync() { + fun startSync(): StartSyncResult { if (!serverConfig.syncYomiEnabled.value) { - return + return StartSyncResult.SYNC_DISABLED } if (!syncMutex.tryLock()) { - return + return StartSyncResult.SYNC_IN_PROGRESS } GlobalScope.launch { @@ -94,6 +95,8 @@ object SyncManager { }.invokeOnCompletion { syncMutex.unlock() } + + return StartSyncResult.SUCCESS } private suspend fun syncData() { @@ -354,3 +357,4 @@ object SyncManager { } } } + diff --git a/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/SyncMutation.kt b/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/SyncMutation.kt index 953f1d127..17b51a488 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/SyncMutation.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/SyncMutation.kt @@ -2,6 +2,7 @@ package suwayomi.tachidesk.graphql.mutations import suwayomi.tachidesk.global.impl.sync.SyncManager import suwayomi.tachidesk.graphql.directives.RequireAuth +import suwayomi.tachidesk.graphql.types.StartSyncResult class SyncMutation { data class StartSyncInput( @@ -10,16 +11,18 @@ class SyncMutation { data class StartSyncPayload( val clientMutationId: String? = null, + val result: StartSyncResult, ) @RequireAuth fun startSync(input: StartSyncInput): StartSyncPayload { val (clientMutationId) = input - SyncManager.startSync() + val result = SyncManager.startSync() return StartSyncPayload( clientMutationId = clientMutationId, + result = result, ) } } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/graphql/types/SyncType.kt b/server/src/main/kotlin/suwayomi/tachidesk/graphql/types/SyncType.kt new file mode 100644 index 000000000..fff42f9d2 --- /dev/null +++ b/server/src/main/kotlin/suwayomi/tachidesk/graphql/types/SyncType.kt @@ -0,0 +1,7 @@ +package suwayomi.tachidesk.graphql.types + +enum class StartSyncResult { + SUCCESS, + SYNC_IN_PROGRESS, + SYNC_DISABLED, +}