aurbano / robinhood-node

:chart_with_upwards_trend: NodeJS client for Robinhood Trading :fire:

Home Page:https://aurbano.github.io/robinhood-node

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to list all the instruments

liuhongbo opened this issue · 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
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);

also, see url in documentation