diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift index a3ee341400daded594b13f6fdbef0c0d5acd7f60..38f9d8018437755dc1509193a41ec4153b826808 100644 --- a/Sources/ElixxirDAppsSDK/E2E.swift +++ b/Sources/ElixxirDAppsSDK/E2E.swift @@ -6,6 +6,7 @@ public struct E2E { public var getContact: E2EGetContact public var payloadSize: E2EPayloadSize public var partitionSize: E2EPartitionSize + public var addPartnerCallback: E2EAddPartnerCallback // TODO: } @@ -17,7 +18,8 @@ extension E2E { getReceptionId: .live(bindingsE2E: bindingsE2E), getContact: .live(bindingsE2E: bindingsE2E), payloadSize: .live(bindingsE2E: bindingsE2E), - partitionSize: .live(bindingsE2E: bindingsE2E) + partitionSize: .live(bindingsE2E: bindingsE2E), + addPartnerCallback: .live(bindingsE2E) ) } } @@ -28,6 +30,7 @@ extension E2E { getReceptionId: .unimplemented, getContact: .unimplemented, payloadSize: .unimplemented, - partitionSize: .unimplemented + partitionSize: .unimplemented, + addPartnerCallback: .unimplemented ) } diff --git a/Sources/ElixxirDAppsSDK/E2EAddPartnerCallback.swift b/Sources/ElixxirDAppsSDK/E2EAddPartnerCallback.swift new file mode 100644 index 0000000000000000000000000000000000000000..06713845c9ceae677e3c33e23de60131771bd772 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/E2EAddPartnerCallback.swift @@ -0,0 +1,37 @@ +import Bindings +import XCTestDynamicOverlay + +public struct E2EAddPartnerCallback { + public var run: (Data, AuthCallbacks) throws -> Cancellable + + public func callAsFunction( + partnerId: Data, + callbacks: AuthCallbacks + ) throws -> Cancellable { + try run(partnerId, callbacks) + } +} + +extension E2EAddPartnerCallback { + public static func live(_ bindingsE2E: BindingsE2e) -> E2EAddPartnerCallback { + E2EAddPartnerCallback { partnerId, callbacks in + try bindingsE2E.addPartnerCallback( + partnerId, + cb: callbacks.makeBindingsAuthCallbacks() + ) + return Cancellable { + do { + try bindingsE2E.deletePartnerCallback(partnerId) + } catch { + fatalError("BindingsE2e.deletePartnerCallback returned error: \(error)") + } + } + } + } +} + +extension E2EAddPartnerCallback { + public static let unimplemented = E2EAddPartnerCallback( + run: XCTUnimplemented("\(Self.self)") + ) +}