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