docs: function RecursivePaginatedWebCall(client, method, property, options = {}) {
      /**
       * store all entries
       */
      var data = [];
  
      /**
       * count of recursive calls required
       */
      var rcount = 0;
  
      return new Promise((resolve, reject) => {
        function recurse() {
          rcount++;
          client
            .apiCall(method, options)
            .then(res => {
              data = data.concat(res[property]);
  
              /**
               * if more pages, keep going otherwise resolve the promise
               */
              if (
                res.response_metadata &&
                res.response_metadata.next_cursor &&
                res.response_metadata.next_cursor !== ""
              ) {
                options.cursor = res.response_metadata.next_cursor;
  
                // keep recursing
                recurse();
              } else {
                resolve(data);
              }
            })
            .catch(e => {
              reject(e);
            });
        }
  
        // start recursion
        recurse();
      });
    }