package amo import "surdeus.su/core/amo/events" import "surdeus.su/core/amo/api" import "surdeus.su/core/ss/urlenc" import "errors" import "fmt" // Returns the events from AmoCRM by specified request. // If there are no such events returns an empty slice of events. func (client *Client) GetEvents( opts ...urlenc.Builder, ) ([]events.Event, error) { res := fmt.Sprintf( "/api/v4/events?%s", urlenc.Join(opts...).Encode(), ) ret := []events.Event{} for { resp := events.EventsResponse{} err := client.API.Get(res, &resp) if err != nil { // Return empty if no content avialable. if errors.Is(err, api.ErrNoContent) { break } return nil, err } ret = append(ret, resp.Embedded.Events...) if resp.Links.Next.Href == "" { break } //time.Sleep(time.Millisecond * 300) res = resp.Links.Next.Href } return ret, nil }