From fa433fa3bbdfc208fa503ece84b1393af9b614c6 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 29 Jul 2022 13:45:40 +0100 Subject: [PATCH] Add NewCmixFromBackup functor --- .../Functors/NewCmixFromBackup.swift | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/Functors/NewCmixFromBackup.swift diff --git a/Sources/ElixxirDAppsSDK/Functors/NewCmixFromBackup.swift b/Sources/ElixxirDAppsSDK/Functors/NewCmixFromBackup.swift new file mode 100644 index 00000000..2c7bbbc7 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/Functors/NewCmixFromBackup.swift @@ -0,0 +1,45 @@ +import Bindings +import XCTestDynamicOverlay + +public struct NewCmixFromBackup { + public var run: (String, String, Data, Data, Data) throws -> BackupReport + + public func callAsFunction( + ndfJSON: String, + storageDir: String, + sessionPassword: Data, + backupPassphrase: Data, + backupFileContents: Data + ) throws -> BackupReport { + try run(ndfJSON, storageDir, sessionPassword, backupPassphrase, backupFileContents) + } +} + +extension NewCmixFromBackup { + public static let live = NewCmixFromBackup { + ndfJSON, storageDir, sessionPassword, backupPassphrase, backupFileContents in + + var error: NSError? + let reportData = BindingsNewCmixFromBackup( + ndfJSON, + storageDir, + sessionPassword, + backupPassphrase, + backupFileContents, + &error + ) + if let error = error { + throw error + } + guard let reportData = reportData else { + fatalError("BindingsNewCmixFromBackup returned `nil` without providing error") + } + return try BackupReport.decode(reportData) + } +} + +extension NewCmixFromBackup { + public static let unimplemented = NewCmixFromBackup( + run: XCTUnimplemented("\(Self.self)") + ) +} -- GitLab