From 2e40377ddbc970a21b1129b80b9dfe2f4e882a9f Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Fri, 5 Aug 2022 19:47:02 +0100
Subject: [PATCH] Add CMixGetNodeRegistrationStatus functor

---
 Sources/ElixxirDAppsSDK/CMix/CMix.swift       |  3 +++
 .../CMixGetNodeRegistrationStatus.swift       | 25 +++++++++++++++++++
 2 files changed, 28 insertions(+)
 create mode 100644 Sources/ElixxirDAppsSDK/CMix/Functors/CMixGetNodeRegistrationStatus.swift

diff --git a/Sources/ElixxirDAppsSDK/CMix/CMix.swift b/Sources/ElixxirDAppsSDK/CMix/CMix.swift
index 3cc8d100..5edb9fe0 100644
--- a/Sources/ElixxirDAppsSDK/CMix/CMix.swift
+++ b/Sources/ElixxirDAppsSDK/CMix/CMix.swift
@@ -6,6 +6,7 @@ public struct CMix {
   public var makeReceptionIdentity: CMixMakeReceptionIdentity
   public var makeLegacyReceptionIdentity: CMixMakeLegacyReceptionIdentity
   public var isHealthy: CMixIsHealthy
+  public var getNodeRegistrationStatus: CMixGetNodeRegistrationStatus
   public var hasRunningProcesses: CMixHasRunningProcesses
   public var networkFollowerStatus: CMixNetworkFollowerStatus
   public var startNetworkFollower: CMixStartNetworkFollower
@@ -25,6 +26,7 @@ extension CMix {
       makeReceptionIdentity: .live(bindingsCMix),
       makeLegacyReceptionIdentity: .live(bindingsCMix),
       isHealthy: .live(bindingsCMix),
+      getNodeRegistrationStatus: .live(bindingsCMix),
       hasRunningProcesses: .live(bindingsCMix),
       networkFollowerStatus: .live(bindingsCMix),
       startNetworkFollower: .live(bindingsCMix),
@@ -45,6 +47,7 @@ extension CMix {
     makeReceptionIdentity: .unimplemented,
     makeLegacyReceptionIdentity: .unimplemented,
     isHealthy: .unimplemented,
+    getNodeRegistrationStatus: .unimplemented,
     hasRunningProcesses: .unimplemented,
     networkFollowerStatus: .unimplemented,
     startNetworkFollower: .unimplemented,
diff --git a/Sources/ElixxirDAppsSDK/CMix/Functors/CMixGetNodeRegistrationStatus.swift b/Sources/ElixxirDAppsSDK/CMix/Functors/CMixGetNodeRegistrationStatus.swift
new file mode 100644
index 00000000..612b68a6
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/CMix/Functors/CMixGetNodeRegistrationStatus.swift
@@ -0,0 +1,25 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct CMixGetNodeRegistrationStatus {
+  public var run: () throws -> NodeRegistrationReport
+
+  public func callAsFunction() throws -> NodeRegistrationReport {
+    try run()
+  }
+}
+
+extension CMixGetNodeRegistrationStatus {
+  public static func live(_ bindingsCMix: BindingsCmix) -> CMixGetNodeRegistrationStatus {
+    CMixGetNodeRegistrationStatus {
+      let data = try bindingsCMix.getNodeRegistrationStatus()
+      return try NodeRegistrationReport.decode(data)
+    }
+  }
+}
+
+extension CMixGetNodeRegistrationStatus {
+  public static let unimplemented = CMixGetNodeRegistrationStatus(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab