UNPKG

hess-select-profile

Version:

Select a given profile value on the hess energy website https://hessenergy.com

51 lines (50 loc) 1.39 kB
var cheerio = require('cheerio') var request = require('request') var rk = require('required-keys'); var getProfileValueOnPage = require('./lib/getProfileValueOnPage') module.exports = function (data, cb) { var keys = ['jar', 'value', 'viewState'] var err = rk.truthySync(data, keys) if (err) { return cb({ message: 'error selecting profile, missing key in data', error: err, stack: new Error().stack }) } var value = data.value var jar = data.jar var viewState = data.viewState var url = 'https://www.hessenergy.com/customer/customerservice.aspx' var opts = { jar: jar, url: url, method: 'post', form: { __VIEWSTATE: viewState, ctl00$MainContentPlaceHolder$ucLeftNavigation$ddlProfile: value } } var r = request(opts, function (err, res, body) { if (err) { return cb({ message: 'error submitting login', error: err, stack: new Error().stack }) } var statusCode = res.statusCode var $ = cheerio.load(body) var newValue = getProfileValueOnPage($) if (newValue === value) { return cb(null, $) } return cb({ message: 'failed to select profile', error: 'current profile value on page does not match desired profile value', desiredValue: value, currentValue: newValue, stack: new Error().stack }) }) }