package amo import "surdeus.su/core/amo/api" import "surdeus.su/core/amo/leads" import "surdeus.su/core/ss/urlenc" import "errors" import "fmt" //import "log" // Get list of leads. func (client *Client) GetLeads( opts ...urlenc.Builder, ) ([]Lead, NextFunc[[]Lead], error) { res := fmt.Sprintf( "/api/v4/leads?%s", urlenc.Join(opts...).Encode(), ) return client.GetLeadsByURL(res) } func (client *Client) GetLeadsByURL( u string, ) ([]Lead, NextFunc[[]Lead], error) { var fn NextFunc[[]Lead] lds := leads.Leads{} err := client.API.Get(u, &lds) if err != nil { // Check for empty. if errors.Is(err, api.ErrNoContent) { return nil, nil, nil } // Some other error. return nil, nil, err } nextHref := lds.Links.Next.Href if nextHref != "" { fn = MakeNextFunc( nextHref, client.GetLeadsByURL, ) } return lds.Embedded.Leads, fn, nil } // Get lead with the specified ID. func (client *Client) GetLead( leadID int, opts ...urlenc.Builder, ) (*leads.Lead, error) { deal := new(leads.Lead) resource := fmt.Sprintf( "/api/v4/leads/%d?%s", leadID, urlenc.Join(opts...).Encode(), ) err := client.API.Get(resource, deal) return deal, err } func (client *Client) UpdateLead( lead *leads.Lead, ) error { return client.updateEntity("/api/v4/leads", lead.ID, lead) }