Backup creation and restore gql endpoints (#587)

This commit is contained in:
Mitchell Syer
2023-07-02 11:45:44 -04:00
committed by GitHub
parent 1a9a0b3394
commit a11b654c3d
13 changed files with 477 additions and 43 deletions

View File

@@ -0,0 +1,32 @@
package suwayomi.tachidesk.graphql.queries
import io.javalin.http.UploadedFile
import suwayomi.tachidesk.graphql.types.BackupRestoreStatus
import suwayomi.tachidesk.graphql.types.toStatus
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupImport
import suwayomi.tachidesk.manga.impl.backup.proto.ProtoBackupValidator
class BackupQuery {
data class ValidateBackupInput(
val backup: UploadedFile
)
data class ValidateBackupSource(
val id: Long,
val name: String
)
data class ValidateBackupResult(
val missingSources: List<ValidateBackupSource>
)
fun validateBackup(
input: ValidateBackupInput
): ValidateBackupResult {
val result = ProtoBackupValidator.validate(input.backup.content)
return ValidateBackupResult(
result.missingSourceIds.map { ValidateBackupSource(it.first, it.second) }
)
}
fun restoreStatus(): BackupRestoreStatus {
return ProtoBackupImport.backupRestoreState.value.toStatus()
}
}