From 235e90d66bee4cfabcc76e3ff993cb5abdc583ef Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Mon, 25 Jul 2022 18:03:36 +0100
Subject: [PATCH] Add E2EReplayConfirmReceivedRequest functor

---
 Sources/ElixxirDAppsSDK/E2E.swift             |  5 ++--
 .../E2EReplayConfirmReceivedRequest.swift     | 28 +++++++++++++++++++
 2 files changed, 31 insertions(+), 2 deletions(-)
 create mode 100644 Sources/ElixxirDAppsSDK/E2EReplayConfirmReceivedRequest.swift

diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift
index 1cb50625..e127fdac 100644
--- a/Sources/ElixxirDAppsSDK/E2E.swift
+++ b/Sources/ElixxirDAppsSDK/E2E.swift
@@ -20,9 +20,8 @@ public struct E2E {
   public var deleteRequest: E2EDeleteRequest
   public var verifyOwnership: E2EVerifyOwnership
   public var confirmReceivedRequest: E2EConfirmReceivedRequest
+  public var replayConfirmReceivedRequest: E2EReplayConfirmReceivedRequest
   public var send: E2ESend
-
-  // TODO:
 }
 
 extension E2E {
@@ -47,6 +46,7 @@ extension E2E {
       deleteRequest: .live(bindingsE2E),
       verifyOwnership: .live(bindingsE2E),
       confirmReceivedRequest: .live(bindingsE2E),
+      replayConfirmReceivedRequest: .live(bindingsE2E),
       send: .live(bindingsE2E)
     )
   }
@@ -73,6 +73,7 @@ extension E2E {
     deleteRequest: .unimplemented,
     verifyOwnership: .unimplemented,
     confirmReceivedRequest: .unimplemented,
+    replayConfirmReceivedRequest: .unimplemented,
     send: .unimplemented
   )
 }
diff --git a/Sources/ElixxirDAppsSDK/E2EReplayConfirmReceivedRequest.swift b/Sources/ElixxirDAppsSDK/E2EReplayConfirmReceivedRequest.swift
new file mode 100644
index 00000000..3bc60966
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/E2EReplayConfirmReceivedRequest.swift
@@ -0,0 +1,28 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct E2EReplayConfirmReceivedRequest {
+  public var run: (Data) throws -> Int64
+
+  public func callAsFunction(
+    partnerId: Data
+  ) throws -> Int64 {
+    try run(partnerId)
+  }
+}
+
+extension E2EReplayConfirmReceivedRequest {
+  public static func live(_ bindingsE2E: BindingsE2e) -> E2EReplayConfirmReceivedRequest {
+    E2EReplayConfirmReceivedRequest { partnerId in
+      var result: Int64 = 0
+      try bindingsE2E.replayConfirm(partnerId, ret0_: &result)
+      return result
+    }
+  }
+}
+
+extension E2EReplayConfirmReceivedRequest {
+  public static let unimplemented = E2EReplayConfirmReceivedRequest(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab