From 310e39736b210781b304adc3ca2ade27fa3beaed Mon Sep 17 00:00:00 2001
From: Jake Taylor <jake@elixxir.io>
Date: Fri, 5 Aug 2022 12:49:08 -0500
Subject: [PATCH] allow nullable facts for ud.NewFromBackup in bindings

---
 bindings/ud.go | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/bindings/ud.go b/bindings/ud.go
index 243d24b55..c5d8fc2e7 100644
--- a/bindings/ud.go
+++ b/bindings/ud.go
@@ -144,8 +144,8 @@ func LoadOrNewUserDiscovery(e2eID int, follower UdNetworkStatus,
 // Parameters:
 //  - e2eID - e2e object ID in the tracker
 //  - follower - network follower func wrapped in UdNetworkStatus
-//  - emailFactJson - a JSON marshalled email fact.Fact
-//  - phoneFactJson - a JSON marshalled phone fact.Fact
+//  - emailFactJson - nullable JSON marshalled email fact.Fact
+//  - phoneFactJson - nullable JSON marshalled phone fact.Fact
 func NewUdManagerFromBackup(e2eID int, follower UdNetworkStatus, emailFactJson,
 	phoneFactJson []byte) (*UserDiscovery, error) {
 
@@ -156,14 +156,18 @@ func NewUdManagerFromBackup(e2eID int, follower UdNetworkStatus, emailFactJson,
 	}
 
 	var email, phone fact.Fact
-	err = json.Unmarshal(emailFactJson, &email)
-	if err != nil {
-		return nil, err
+	if emailFactJson != nil {
+		err = json.Unmarshal(emailFactJson, &email)
+		if err != nil {
+			return nil, err
+		}
 	}
 
-	err = json.Unmarshal(phoneFactJson, &phone)
-	if err != nil {
-		return nil, err
+	if phoneFactJson != nil {
+		err = json.Unmarshal(phoneFactJson, &phone)
+		if err != nil {
+			return nil, err
+		}
 	}
 
 	UdNetworkStatusFn := func() xxdk.Status {
-- 
GitLab