add backup validation endpoints

This commit is contained in:
Aria Moradi
2021-08-21 06:08:17 +04:30
parent c29a749833
commit e93d66d8a1
4 changed files with 38 additions and 3 deletions

View File

@@ -79,6 +79,7 @@ object ProtoBackupImport : ProtoBackupBase() {
""".trimIndent()
}
println("fek fek")
return validationResult
}

View File

@@ -7,11 +7,16 @@ package suwayomi.tachidesk.manga.impl.backup.proto
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
import okio.buffer
import okio.gzip
import okio.source
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import suwayomi.tachidesk.manga.impl.backup.AbstractBackupValidator
import suwayomi.tachidesk.manga.impl.backup.proto.models.Backup
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSerializer
import suwayomi.tachidesk.manga.model.table.SourceTable
import java.io.InputStream
object ProtoBackupValidator : AbstractBackupValidator() {
fun validate(backup: Backup): ValidationResult {
@@ -42,4 +47,11 @@ object ProtoBackupValidator : AbstractBackupValidator() {
return ValidationResult(missingSources, missingTrackers)
}
fun validate(sourceStream: InputStream): ValidationResult {
val backupString = sourceStream.source().gzip().buffer().use { it.readByteArray() }
val backup = ProtoBackupImport.parser.decodeFromByteArray(BackupSerializer, backupString)
return validate(backup)
}
}