async function retrieveData()

in app/nodejs/utils.js [32:66]


async function retrieveData(fur, age, location) {
    const dataFilename = [fur, age, location].join('/') + '/data.json';
    var dataFile = ""

    try {
      dataFile = await storage
        .bucket(process.env.PROCESSED_DATA_BUCKET)
        .file(dataFilename)
        .download();

    } catch (err) {
      if (err.code == 404) {
        logger.log('warn', `${process.env.PROCESSED_DATA_BUCKET} does not contain ${dataFilename}.` +
          ` Has the job been run?`);
      } else {
        logger.log('error', err)
      }
      // Template knows to handle empty data as data not available.
      return [0, []];
    }

    const data = JSON.parse(dataFile);
    const squirrelCount = data._counter;
    delete data._counter;

    logger.info(`Retrieved data for ${squirrelCount} entities.`);

    // Get aggregate counter values, sorted by their respective key
    const dataValues = [];
    Object.keys(data).sort().forEach(function (key) {
      dataValues.push(data[key]);
    });

    return [squirrelCount, dataValues];
  }