From 526b73aa99c7f33f5a76dc77b92c236b0f9e074d Mon Sep 17 00:00:00 2001 From: Elara6331 Date: Sun, 10 Mar 2024 15:34:40 -0700 Subject: [PATCH] Fix LookupAll functions --- client.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/client.go b/client.go index 8eb00b7..c09b2f7 100644 --- a/client.go +++ b/client.go @@ -65,23 +65,23 @@ type Client struct { // Lookup looks up the profile descriptor for the given resource. func (c Client) Lookup(resource string) (*Descriptor, error) { out := &Descriptor{} - return out, c.lookup(resource, "", out) + return out, c.lookup(resource, "", false, out) } // LookupID looks up the profile descriptor that matches the given ID // for the given resource. func (c Client) LookupID(resource, id string) (*Descriptor, error) { out := &Descriptor{} - return out, c.lookup(resource, id, out) + return out, c.lookup(resource, id, false, out) } // Lookup looks up all the available profile descriptors for the given resource. func (c Client) LookupAll(resource string) (map[string]*Descriptor, error) { out := map[string]*Descriptor{} - return out, c.lookup(resource, "", &out) + return out, c.lookup(resource, "", true, &out) } -func (c Client) lookup(resource, id string, dest any) error { +func (c Client) lookup(resource, id string, all bool, dest any) error { wfdesc, err := webfinger.LookupAcct(resource) if err != nil { return err @@ -97,12 +97,6 @@ func (c Client) lookup(resource, id string, dest any) error { return err } - if id != "" { - q := pfdURL.Query() - q.Set("id", id) - pfdURL.RawQuery = q.Encode() - } - pubkeySaved := false pubkey, err := c.GetPubkey(pfdURL.Host) if errors.Is(err, ErrPubkeyNotFound) { @@ -125,6 +119,14 @@ func (c Client) lookup(resource, id string, dest any) error { return err } + q := pfdURL.Query() + if all { + q.Set("all", "1") + } else if id != "" { + q.Set("id", id) + } + pfdURL.RawQuery = q.Encode() + res, err := http.Get(pfdURL.String()) if err != nil { return err