robinhood-node icon indicating copy to clipboard operation
robinhood-node copied to clipboard

How to list all the instruments

Open liuhongbo opened this issue 5 years ago • 2 comments

Code being executed:

rh.instruments('', (err, response, body) => {
            
            if (err){
                console.error(err);
            }
            else{
                
                if (body.next){
                   //which means has more pages , but how to retrieve the next page? it needs to pass a parameter cursor into the url 
                }
            }
        })

the instruments only get the first page of the instruments with the body.next has the url for next page, but seems there is no way to call the instruments method with the cursor parameter

liuhongbo avatar Dec 04 '20 17:12 liuhongbo

@liuhongbo here is a snippet of code that worked for me when using the next param to fetch more orders in the transaction history. Hopefully this helps you!

let orders = [];
let cursor = null;
let next = null;
do {
  try {
    const options = {};
    if (cursor) {
      options.cursor = cursor;
    }
    const { body } = await promisify(robinhood.orders)(options);
    orders = [...orders, ...body.results];
    if (body.next) {
      next = new URL(body.next);
      cursor = next.searchParams.get('cursor');
    } else {
      next = null;
    }
  } catch (err) {
    internal.log(err);
    cursor = null;
  }
} while (next !== null);

mafischer avatar Feb 05 '21 21:02 mafischer

also, see url in documentation

mafischer avatar Feb 05 '21 21:02 mafischer