From 8f82906abd2280e532a91d6bd312ed514b7fe2d4 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Fri, 26 Aug 2022 13:17:10 +0100
Subject: [PATCH] Remove CMixMakeLegacyReceptionIdentity

Merge into CMixMakeReceptionIdentity
---
 Sources/XXClient/CMix/CMix.swift              |  3 ---
 .../CMixMakeLegacyReceptionIdentity.swift     | 25 -------------------
 .../Functors/CMixMakeReceptionIdentity.swift  | 17 +++++++++----
 .../Messenger/Functors/MessengerConnect.swift |  2 +-
 .../Functors/MessengerConnectTests.swift      | 13 +++++++---
 5 files changed, 22 insertions(+), 38 deletions(-)
 delete mode 100644 Sources/XXClient/CMix/Functors/CMixMakeLegacyReceptionIdentity.swift

diff --git a/Sources/XXClient/CMix/CMix.swift b/Sources/XXClient/CMix/CMix.swift
index fe9e27b7..ef17f9ec 100644
--- a/Sources/XXClient/CMix/CMix.swift
+++ b/Sources/XXClient/CMix/CMix.swift
@@ -4,7 +4,6 @@ public struct CMix {
   public var getId: CMixGetId
   public var getReceptionRegistrationValidationSignature: CMixGetReceptionRegistrationValidationSignature
   public var makeReceptionIdentity: CMixMakeReceptionIdentity
-  public var makeLegacyReceptionIdentity: CMixMakeLegacyReceptionIdentity
   public var isHealthy: CMixIsHealthy
   public var getNodeRegistrationStatus: CMixGetNodeRegistrationStatus
   public var hasRunningProcesses: CMixHasRunningProcesses
@@ -24,7 +23,6 @@ extension CMix {
       getId: .live(bindingsCMix),
       getReceptionRegistrationValidationSignature: .live(bindingsCMix),
       makeReceptionIdentity: .live(bindingsCMix),
-      makeLegacyReceptionIdentity: .live(bindingsCMix),
       isHealthy: .live(bindingsCMix),
       getNodeRegistrationStatus: .live(bindingsCMix),
       hasRunningProcesses: .live(bindingsCMix),
@@ -45,7 +43,6 @@ extension CMix {
     getId: .unimplemented,
     getReceptionRegistrationValidationSignature: .unimplemented,
     makeReceptionIdentity: .unimplemented,
-    makeLegacyReceptionIdentity: .unimplemented,
     isHealthy: .unimplemented,
     getNodeRegistrationStatus: .unimplemented,
     hasRunningProcesses: .unimplemented,
diff --git a/Sources/XXClient/CMix/Functors/CMixMakeLegacyReceptionIdentity.swift b/Sources/XXClient/CMix/Functors/CMixMakeLegacyReceptionIdentity.swift
deleted file mode 100644
index ee0c9ad6..00000000
--- a/Sources/XXClient/CMix/Functors/CMixMakeLegacyReceptionIdentity.swift
+++ /dev/null
@@ -1,25 +0,0 @@
-import Bindings
-import XCTestDynamicOverlay
-
-public struct CMixMakeLegacyReceptionIdentity {
-  public var run: () throws -> ReceptionIdentity
-
-  public func callAsFunction() throws -> ReceptionIdentity {
-    try run()
-  }
-}
-
-extension CMixMakeLegacyReceptionIdentity {
-  public static func live(_ bindingsCMix: BindingsCmix) -> CMixMakeLegacyReceptionIdentity {
-    CMixMakeLegacyReceptionIdentity {
-      let data = try bindingsCMix.makeLegacyReceptionIdentity()
-      return try ReceptionIdentity.decode(data)
-    }
-  }
-}
-
-extension CMixMakeLegacyReceptionIdentity {
-  public static let unimplemented = CMixMakeLegacyReceptionIdentity(
-    run: XCTUnimplemented("\(Self.self)")
-  )
-}
diff --git a/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift b/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift
index 973812cf..3ce33e4d 100644
--- a/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift
+++ b/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift
@@ -2,17 +2,24 @@ import Bindings
 import XCTestDynamicOverlay
 
 public struct CMixMakeReceptionIdentity {
-  public var run: () throws -> ReceptionIdentity
+  public var run: (Bool) throws -> ReceptionIdentity
 
-  public func callAsFunction() throws -> ReceptionIdentity {
-    try run()
+  public func callAsFunction(
+    legacy: Bool = false
+  ) throws -> ReceptionIdentity {
+    try run(legacy)
   }
 }
 
 extension CMixMakeReceptionIdentity {
   public static func live(_ bindingsCMix: BindingsCmix) -> CMixMakeReceptionIdentity {
-    CMixMakeReceptionIdentity {
-      let data = try bindingsCMix.makeReceptionIdentity()
+    CMixMakeReceptionIdentity { legacy in
+      let data: Data
+      if legacy {
+        data = try bindingsCMix.makeLegacyReceptionIdentity()
+      } else {
+        data = try bindingsCMix.makeReceptionIdentity()
+      }
       return try ReceptionIdentity.decode(data)
     }
   }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
index d871f534..efca553a 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
+++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
@@ -22,7 +22,7 @@ extension MessengerConnect {
       env.e2e.set(try env.login(
         cMixId: cMix.getId(),
         authCallbacks: env.authCallbacks.registered(),
-        identity: try cMix.makeLegacyReceptionIdentity(),
+        identity: try cMix.makeReceptionIdentity(legacy: true),
         e2eParamsJSON: env.getE2EParams()
       ))
     }
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
index 7654bc26..1f69797f 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
@@ -12,6 +12,7 @@ final class MessengerConnectTests: XCTestCase {
       var e2eParamsJSON: Data
     }
 
+    var didMakeReceptionIdentity: [Bool] = []
     var didLogIn: [DidLogIn] = []
     var didLogInWithAuthCallbacks: [AuthCallbacks?] = []
     var didSetE2E: [E2E?] = []
@@ -25,7 +26,10 @@ final class MessengerConnectTests: XCTestCase {
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { cMixId }
-      cMix.makeLegacyReceptionIdentity.run = { receptionId }
+      cMix.makeReceptionIdentity.run = { legacy in
+        didMakeReceptionIdentity.append(legacy)
+        return receptionId
+      }
       return cMix
     }
     env.e2e.set = { didSetE2E.append($0) }
@@ -49,11 +53,12 @@ final class MessengerConnectTests: XCTestCase {
 
     try connect()
 
+    XCTAssertNoDifference(didMakeReceptionIdentity, [true])
     XCTAssertNoDifference(didLogIn, [
       DidLogIn(
         ephemeral: false,
         cMixId: 1234,
-        identity: .stub,
+        identity: receptionId,
         e2eParamsJSON: e2eParams
       )
     ])
@@ -89,7 +94,7 @@ final class MessengerConnectTests: XCTestCase {
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { 1234 }
-      cMix.makeLegacyReceptionIdentity.run = { throw error }
+      cMix.makeReceptionIdentity.run = { _ in throw error }
       return cMix
     }
     env.authCallbacks.registered = { .unimplemented }
@@ -108,7 +113,7 @@ final class MessengerConnectTests: XCTestCase {
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { 1234 }
-      cMix.makeLegacyReceptionIdentity.run = { .stub }
+      cMix.makeReceptionIdentity.run = { _ in .stub }
       return cMix
     }
     env.authCallbacks.registered = { .unimplemented }
-- 
GitLab