node-visionlink
Version:
Node.js wrapper for Caterpillar's VisionLink APIs.
63 lines (46 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (username, password) {
var functions = {};
for (var i = 0; i < _topics.READY_TOPICS.length; i++) {
functions[_topics.READY_TOPICS[i]] = readyRequest(_topics.READY_TOPICS[i], username, password);
}
return functions;
};
var _request = require('request');
var _request2 = _interopRequireDefault(_request);
var _xml2js = require('xml2js');
var _topics = require('./topics');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var readyRequest = function readyRequest(api, username, password) {
return function () {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref$page = _ref.page,
page = _ref$page === undefined ? 1 : _ref$page,
_ref$options = _ref.options,
options = _ref$options === undefined ? {} : _ref$options;
var opt = Object.assign({}, {
url: 'https://api.myvisionlink.com/' + api + '/page/' + page.toString(),
headers: {
Authorization: 'Basic ' + new Buffer(username + ':' + password).toString('base64')
}
}, options);
return new Promise(function (resolve, reject) {
return (0, _request2.default)(opt, function (error, response, body) {
if (error) {
return reject({ error: error });
} else if (response.statusCode !== 200) {
return reject({ statusCode: response.statusCode });
}
return (0, _xml2js.parseString)(body, { trim: true, explicitArray: false }, function (err, obj) {
if (err) {
return reject({ error: err });
}
return resolve(obj);
});
});
});
};
};