UNPKG

node-visionlink

Version:

Node.js wrapper for Caterpillar's VisionLink APIs.

69 lines (51 loc) 2.09 kB
'use strict'; 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); }); }); }); }; };