diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift index 66f50dd550930409dd164315095b7517fd34acca..b196faca4b578bf3ea9bc534073be015b24dc816 100644 --- a/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift +++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift @@ -42,9 +42,8 @@ extension MessengerRestoreBackup { sessionPassword: password, backupFileContents: backupData ) - let decoder = JSONDecoder() let paramsData = report.params.data(using: .utf8)! - let params = try decoder.decode(BackupParams.self, from: paramsData) + let params = try BackupParams.decode(paramsData) let cMix = try env.loadCMix( storageDir: storageDir, password: password, diff --git a/Sources/XXMessengerClient/Utils/BackupParams.swift b/Sources/XXMessengerClient/Utils/BackupParams.swift index 02fdc595461cbcc14e617560b6f7b91b6b398fc2..c3bd8fc0f8e566348bb1d731bf8606c2f8bea5ce 100644 --- a/Sources/XXMessengerClient/Utils/BackupParams.swift +++ b/Sources/XXMessengerClient/Utils/BackupParams.swift @@ -1,6 +1,6 @@ import Foundation -public struct BackupParams: Equatable, Codable { +public struct BackupParams: Equatable { public init( username: String, email: String?, @@ -15,3 +15,13 @@ public struct BackupParams: Equatable, Codable { public var email: String? public var phone: String? } + +extension BackupParams: Codable { + public static func decode(_ data: Data) throws -> Self { + try JSONDecoder().decode(Self.self, from: data) + } + + public func encode() throws -> Data { + try JSONEncoder().encode(self) + } +}