From c7188e3a1c939f06024f2acd89757f8d885b81ab Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 10 Aug 2022 22:04:06 +0100
Subject: [PATCH] Update SingleUseResponseReport model

---
 .../Models/SingleUseResponseReport.swift      | 30 ++++-------------
 .../Models/SingleUseResponseReportTests.swift | 32 +++++++------------
 2 files changed, 18 insertions(+), 44 deletions(-)

diff --git a/Sources/ElixxirDAppsSDK/Models/SingleUseResponseReport.swift b/Sources/ElixxirDAppsSDK/Models/SingleUseResponseReport.swift
index 0aea471e..788ca27c 100644
--- a/Sources/ElixxirDAppsSDK/Models/SingleUseResponseReport.swift
+++ b/Sources/ElixxirDAppsSDK/Models/SingleUseResponseReport.swift
@@ -4,40 +4,29 @@ public struct SingleUseResponseReport: Equatable {
   public init(
     rounds: [Int],
     payload: Data,
-    receptionId: ReceptionId,
+    ephId: Int64,
+    receptionId: Data,
     error: String?
   ) {
     self.rounds = rounds
     self.payload = payload
+    self.ephId = ephId
     self.receptionId = receptionId
     self.error = error
   }
 
   public var rounds: [Int]
   public var payload: Data
-  public var receptionId: ReceptionId
+  public var ephId: Int64
+  public var receptionId: Data
   public var error: String?
 }
 
-extension SingleUseResponseReport {
-  public struct ReceptionId: Equatable {
-    public init(
-      ephId: [Int],
-      source: Data
-    ) {
-      self.ephId = ephId
-      self.source = source
-    }
-
-    public var ephId: [Int]
-    public var source: Data
-  }
-}
-
 extension SingleUseResponseReport: Codable {
   enum CodingKeys: String, CodingKey {
     case rounds = "Rounds"
     case payload = "Payload"
+    case ephId = "EphID"
     case receptionId = "ReceptionID"
     case error = "Err"
   }
@@ -50,10 +39,3 @@ extension SingleUseResponseReport: Codable {
     try JSONEncoder().encode(self)
   }
 }
-
-extension SingleUseResponseReport.ReceptionId: Codable {
-  enum CodingKeys: String, CodingKey {
-    case ephId = "EphId"
-    case source = "Source"
-  }
-}
diff --git a/Tests/ElixxirDAppsSDKTests/Models/SingleUseResponseReportTests.swift b/Tests/ElixxirDAppsSDKTests/Models/SingleUseResponseReportTests.swift
index f4bd95f9..34750c20 100644
--- a/Tests/ElixxirDAppsSDKTests/Models/SingleUseResponseReportTests.swift
+++ b/Tests/ElixxirDAppsSDKTests/Models/SingleUseResponseReportTests.swift
@@ -6,16 +6,14 @@ final class SingleUseResponseReportTests: XCTestCase {
   func testCoding() throws {
     let rounds: [Int] = [1, 5, 9]
     let payloadB64 = "rSuPD35ELWwm5KTR9ViKIz/r1YGRgXIl5792SF8o8piZzN6sT4Liq4rUU/nfOPvQEjbfWNh/NYxdJ72VctDnWw=="
-    let receptionIdEphId: [Int] = [0, 0, 0, 0, 0, 0, 3, 89]
-    let receptionIdSourceB64 = "emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
+    let ephId: Int64 = 1_655_533
+    let receptionIdB64 = "emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
     let jsonString = """
     {
       "Rounds": [\(rounds.map { "\($0)" }.joined(separator: ", "))],
       "Payload": "\(payloadB64)",
-      "ReceptionID": {
-        "EphId": [\(receptionIdEphId.map { "\($0)" }.joined(separator: ", "))],
-        "Source": "\(receptionIdSourceB64)"
-      },
+      "EphID": \(ephId),
+      "ReceptionID": "\(receptionIdB64)",
       "Err": null
     }
     """
@@ -25,10 +23,8 @@ final class SingleUseResponseReportTests: XCTestCase {
     XCTAssertNoDifference(model, SingleUseResponseReport(
       rounds: rounds,
       payload: Data(base64Encoded: payloadB64)!,
-      receptionId: .init(
-        ephId: receptionIdEphId,
-        source: Data(base64Encoded: receptionIdSourceB64)!
-      ),
+      ephId: ephId,
+      receptionId: Data(base64Encoded: receptionIdB64)!,
       error: nil
     ))
 
@@ -41,17 +37,15 @@ final class SingleUseResponseReportTests: XCTestCase {
   func testDecodingReportWithError() throws {
     let rounds: [Int] = [1, 5, 9]
     let payloadB64 = "rSuPD35ELWwm5KTR9ViKIz/r1YGRgXIl5792SF8o8piZzN6sT4Liq4rUU/nfOPvQEjbfWNh/NYxdJ72VctDnWw=="
-    let receptionIdEphId: [Int] = [0, 0, 0, 0, 0, 0, 3, 89]
-    let receptionIdSourceB64 = "emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
+    let ephId: Int64 = 1_655_533
+    let receptionIdB64 = "emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
     let error = "something went wrong"
     let jsonString = """
     {
       "Rounds": [\(rounds.map { "\($0)" }.joined(separator: ", "))],
       "Payload": "\(payloadB64)",
-      "ReceptionID": {
-        "EphId": [\(receptionIdEphId.map { "\($0)" }.joined(separator: ", "))],
-        "Source": "\(receptionIdSourceB64)"
-      },
+      "EphID": \(ephId),
+      "ReceptionID": "\(receptionIdB64)",
       "Err": "\(error)"
     }
     """
@@ -61,10 +55,8 @@ final class SingleUseResponseReportTests: XCTestCase {
     XCTAssertNoDifference(model, SingleUseResponseReport(
       rounds: rounds,
       payload: Data(base64Encoded: payloadB64)!,
-      receptionId: .init(
-        ephId: receptionIdEphId,
-        source: Data(base64Encoded: receptionIdSourceB64)!
-      ),
+      ephId: ephId,
+      receptionId: Data(base64Encoded: receptionIdB64)!,
       error: error
     ))
   }
-- 
GitLab