UNPKG

docparse-scraper-nst

Version:

Node Zombie based scraper to scrape bills from the NStar (supplier code "NST)" website

57 lines (51 loc) 1.68 kB
var inspect = require('eyespect').inspector(); var async = require('async'); var rk = require('required-keys'); module.exports = function scrapeSingleAccount(data, cb) { var keys = ['accountIndex', 'numAccounts', 'config', 'logger', 'bro', 'currentLogin', 'accountNumber', 'supplierCode', 'numAccounts']; var err = rk.nonNullSync(data, keys); if (err) { return cb(err); } var getDataOnAccountHomepage = data.getDataOnAccountHomepage; if (!getDataOnAccountHomepage) { getDataOnAccountHomepage = require('./getDataOnAccountHomepage'); } var selectAccount = data.selectAccount; if (!selectAccount) { selectAccount = require('./selectAccount'); } var processAllBills = data.processAllBills; if (!processAllBills) { processAllBills = require('./processAllBills'); } var logger = data.logger; var accountNumber; getDataOnAccountHomepage(data, function (err, resData) { if (err) { return cb(err); } inspect(resData, 'resData'); data.billDates = resData.billDates; data.billNumbers = resData.billNumbers; selectAccount(data, function (err) { if (err) { logger.debug('error selecting account', { type: 'scraper', supplierCode: 'NST', accountNumber: accountNumber, error: err }); return cb(err); } processAllBills(data, function (err, reply) { if (err) { logger.debug('error when processing all bills', { type: 'scraper', supplierCode: 'NST', accountNumber: accountNumber, error: err }); return cb(err); } cb(); }); }); }); };