node-visionlink
Version:
Node.js wrapper for Caterpillar's VisionLink APIs.
69 lines (51 loc) • 2.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (username, password) {
var functions = {};
for (var i = 0; i < _topics.VL_TOPICS.length; i++) {
functions[_topics.VL_TOPICS[i].name] = VLRequest(_topics.VL_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 VLRequest = function VLRequest(api, username, password) {
return function () {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref$queue_name = _ref.queue_name,
queue_name = _ref$queue_name === undefined ? 'testqueue' : _ref$queue_name,
_ref$queue_position = _ref.queue_position,
queue_position = _ref$queue_position === undefined ? 0 : _ref$queue_position,
_ref$options = _ref.options,
options = _ref$options === undefined ? {} : _ref$options;
var opt = Object.assign({}, {
url: 'https://legacy.myvisionlink.com/APIService/' + api.context + '/v' + api.version.toString() + '/' + api.service,
headers: {
Authorization: 'Basic ' + new Buffer(username + ':' + password).toString('base64')
}
}, options);
if (api.topic) {
opt.url += '/' + queue_name + '/' + api.topic + '/' + queue_position;
}
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);
});
});
});
};
};