From b4d89289e55ae90b8b8709987b5ad4a83d86abb9 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 28 Sep 2022 14:22:00 +0200
Subject: [PATCH] Refactor BackupParams coding

---
 .../Messenger/Functions/MessengerRestoreBackup.swift |  3 +--
 Sources/XXMessengerClient/Utils/BackupParams.swift   | 12 +++++++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift
index 66f50dd5..b196faca 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 02fdc595..c3bd8fc0 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)
+  }
+}
-- 
GitLab