From dd4e995a1831f3b29992fd1ecf2f2e1f8828f2ed Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 7 Sep 2022 22:40:40 +0200
Subject: [PATCH] Add FactHelpers

---
 .../XXMessengerClient/Utils/FactHelpers.swift | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 Sources/XXMessengerClient/Utils/FactHelpers.swift

diff --git a/Sources/XXMessengerClient/Utils/FactHelpers.swift b/Sources/XXMessengerClient/Utils/FactHelpers.swift
new file mode 100644
index 00000000..b948f2eb
--- /dev/null
+++ b/Sources/XXMessengerClient/Utils/FactHelpers.swift
@@ -0,0 +1,36 @@
+import XXClient
+
+extension Array where Element == Fact {
+  public var username: String? {
+    get { first(where: { $0.type == 0 })?.fact }
+    set {
+      removeAll(where: { $0.type == 0 })
+      if let newValue = newValue {
+        append(Fact(fact: newValue, type: 0))
+        sort(by: { $0.type < $1.type })
+      }
+    }
+  }
+
+  public var email: String? {
+    get { first(where: { $0.type == 1 })?.fact }
+    set {
+      removeAll(where: { $0.type == 1 })
+      if let newValue = newValue {
+        append(Fact(fact: newValue, type: 1))
+        sort(by: { $0.type < $1.type })
+      }
+    }
+  }
+
+  public var phone: String? {
+    get { first(where: { $0.type == 2 })?.fact }
+    set {
+      removeAll(where: { $0.type == 2 })
+      if let newValue = newValue {
+        append(Fact(fact: newValue, type: 2))
+        sort(by: { $0.type < $1.type })
+      }
+    }
+  }
+}
-- 
GitLab