1
0
Форкнуть 0
This commit is contained in:
Andreas Mikolajewski 2021-05-14 03:32:08 +02:00
Родитель 5dae99fadc
Коммит 87093dc671
1 изменённых файлов: 3 добавлений и 16 удалений

Просмотреть файл

@ -40,7 +40,8 @@ class BackupAndRestoreService @Inject constructor(
suspend fun createBackup(unprotectedBackup: UnprotectedBackup, protectionMethod: ProtectionMethod): Result<ProtectedBackupData> {
return runResultTry {
val unprotectedBackupData = transformToBackupData(unprotectedBackup)
Result.Success(wrapBackup(unprotectedBackupData, protectionMethod))
val protectedBackup = protectionMethod.wrap(unprotectedBackupData, serializer)
Result.Success(protectedBackup)
}
}
@ -51,13 +52,6 @@ class BackupAndRestoreService @Inject constructor(
}
}
private fun wrapBackup(unprotectedBackupData: UnprotectedBackupData, protectionMethod: ProtectionMethod): ProtectedBackupData {
return when (protectionMethod) {
is JwePasswordProtectionMethod -> protectionMethod.wrap(unprotectedBackupData, serializer)
else -> throw UnknownProtectionMethodException("Unknown protection options: ${protectionMethod::class.qualifiedName}")
}
}
/**
* Given a serialized backup tries to determine the backup type and deserialize it.
*
@ -82,19 +76,12 @@ class BackupAndRestoreService @Inject constructor(
*/
suspend fun restoreBackup(protectedBackupData: ProtectedBackupData, protectionMethod: ProtectionMethod): Result<UnprotectedBackup> {
return runResultTry {
val unprotectedBackup = unwrapBackup(protectedBackupData, protectionMethod)
val unprotectedBackup = protectionMethod.unwrap(protectedBackupData, serializer)
val unprotectedBackupData = importBackup(unprotectedBackup)
Result.Success(unprotectedBackupData)
}
}
private fun unwrapBackup(protectedBackupData: ProtectedBackupData, protectionMethod: ProtectionMethod): UnprotectedBackupData {
return when (protectionMethod) {
is JwePasswordProtectionMethod -> protectionMethod.unwrap(protectedBackupData, serializer)
else -> throw UnknownBackupFormatException("Unknown restore options: ${protectedBackupData::class.qualifiedName}")
}
}
private suspend fun importBackup(backupData: UnprotectedBackupData): UnprotectedBackup {
return when (backupData) {
is Microsoft2020UnprotectedBackupData -> microsoft2020BackupProcessor.import(backupData)