From 40b0554a6fc290f54e080159f020d7ff480f1cd9 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Mon, 25 Jul 2022 17:59:02 +0100
Subject: [PATCH] Add E2EConfirmReceivedRequest functor

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

diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift
index 6b83d568..1cb50625 100644
--- a/Sources/ElixxirDAppsSDK/E2E.swift
+++ b/Sources/ElixxirDAppsSDK/E2E.swift
@@ -19,6 +19,7 @@ public struct E2E {
   public var getReceivedRequest: E2EGetReceivedRequest
   public var deleteRequest: E2EDeleteRequest
   public var verifyOwnership: E2EVerifyOwnership
+  public var confirmReceivedRequest: E2EConfirmReceivedRequest
   public var send: E2ESend
 
   // TODO:
@@ -45,6 +46,7 @@ extension E2E {
       getReceivedRequest: .live(bindingsE2E),
       deleteRequest: .live(bindingsE2E),
       verifyOwnership: .live(bindingsE2E),
+      confirmReceivedRequest: .live(bindingsE2E),
       send: .live(bindingsE2E)
     )
   }
@@ -70,6 +72,7 @@ extension E2E {
     getReceivedRequest: .unimplemented,
     deleteRequest: .unimplemented,
     verifyOwnership: .unimplemented,
+    confirmReceivedRequest: .unimplemented,
     send: .unimplemented
   )
 }
diff --git a/Sources/ElixxirDAppsSDK/E2EConfirmReceivedRequest.swift b/Sources/ElixxirDAppsSDK/E2EConfirmReceivedRequest.swift
new file mode 100644
index 00000000..f83cd077
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/E2EConfirmReceivedRequest.swift
@@ -0,0 +1,28 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct E2EConfirmReceivedRequest {
+  public var run: (Data) throws -> Int64
+
+  public func callAsFunction(
+    partnerContact: Data
+  ) throws -> Int64 {
+    try run(partnerContact)
+  }
+}
+
+extension E2EConfirmReceivedRequest {
+  public static func live(_ bindingsE2E: BindingsE2e) -> E2EConfirmReceivedRequest {
+    E2EConfirmReceivedRequest { partnerContact in
+      var result: Int64 = 0
+      try bindingsE2E.confirm(partnerContact, ret0_: &result)
+      return result
+    }
+  }
+}
+
+extension E2EConfirmReceivedRequest {
+  public static let unimplemented = E2EConfirmReceivedRequest(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab