From fa1a06296ec560500f6592b643b68cf309d41558 Mon Sep 17 00:00:00 2001 From: Kamal Bramwell <kamal@elixxir.io> Date: Fri, 2 Dec 2022 09:13:34 -0500 Subject: [PATCH] Wrap return values in Result<> --- .../backup/cloud/crust/CrustDataSource.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt index 2ffbad53..6ac3f6dd 100644 --- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt +++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt @@ -4,7 +4,7 @@ import bindings.Bindings import bindings.UserDiscovery interface CrustDataSource { - suspend fun uploadBackup(path: String): ByteArray + suspend fun uploadBackup(path: String): Result<ByteArray> suspend fun recoverBackup(username: String): Result<ByteArray> } @@ -14,10 +14,15 @@ class BindingsCrustMediator( ) : CrustDataSource { - override suspend fun uploadBackup(path: String): ByteArray { - return udManager?.let { - Bindings.uploadBackup(path, udManager, receptionRsaPrivateKey) - } ?: byteArrayOf() + override suspend fun uploadBackup(path: String): Result<ByteArray> { + return try { + udManager?.let { + val uploadSuccessReport = Bindings.uploadBackup(path, udManager, receptionRsaPrivateKey) + Result.success(uploadSuccessReport) + } ?: Result.failure(Exception("Failed to run backup. UserDiscovery not initialized.")) + } catch (e: Exception) { + Result.failure(e) + } } override suspend fun recoverBackup(username: String): Result<ByteArray> { -- GitLab