From 3ba82085b2c74d8ad5327491602043cbb97725e9 Mon Sep 17 00:00:00 2001
From: joshemb <josh@elixxir.io>
Date: Mon, 26 Sep 2022 10:30:15 -0700
Subject: [PATCH] Revert the removal of batch lookup

---
 ud/lookup.go | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/ud/lookup.go b/ud/lookup.go
index 867c2900c..569dc5b99 100644
--- a/ud/lookup.go
+++ b/ud/lookup.go
@@ -44,6 +44,30 @@ func Lookup(user udE2e,
 	return lookup(net, rng, uid, grp, udContact, callback, p)
 }
 
+// BatchLookup performs a Lookup operation on a list of user IDs.
+// The lookup performs a callback on each lookup on the returned contact object
+// constructed from the response.
+func BatchLookup(udContact contact.Contact,
+	net udCmix, callback lookupCallback,
+	rng csprng.Source,
+	uids []*id.ID, grp *cyclic.Group,
+	p single.RequestParams) {
+	jww.INFO.Printf("ud.BatchLookup(%s, %s)", uids, p.Timeout)
+
+	for _, uid := range uids {
+		go func(localUid *id.ID) {
+			_, _, err := lookup(net, rng, localUid, grp,
+				udContact, callback, p)
+			if err != nil {
+				jww.WARN.Printf("Failed batch lookup on user %s: %v",
+					localUid, err)
+			}
+		}(uid)
+	}
+
+	return
+}
+
 // lookup is a helper function which sends a lookup request to the user discovery
 // service. It will construct a contact object off of the returned public key.
 // The callback will be called on that contact object.
-- 
GitLab