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
JavaScript
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();
});
});
});
};