UNPKG

mstr-report-data-service

Version:

A Node function for calling Microstrategy's reportDataService task and returning the payload as JSON.

65 lines (54 loc) 2.29 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _requestPromise = require('request-promise'); var _requestPromise2 = _interopRequireDefault(_requestPromise); var _parseMstrResults = require('./parseMstrResults'); var _parseMstrResults2 = _interopRequireDefault(_parseMstrResults); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * The reportDataService function. * @param {Object} args Request arguments object. * @param {String} args.user Username. * @param {String} args.pass Password of user. * @param {String} args.reportID reportID of the report you want to run. * @param {String} args.server Server name. * @param {String} args.project Project name. * @param {String} args.url Url of your Microstrategy instance. * @param {String} [args.port] Server port. * @returns {Promise} Resolved promise containing report data. */ function reportDataService(args) { return new Promise(function (resolve, reject) { // error handling; var errCount = 1; var err = ['url', 'pass', 'project', 'server', 'user', 'reportID'].reduce(function (acc, prop, idx) { return !args.hasOwnProperty(prop) ? acc.concat('Error [' + errCount++ + ']: ' + prop + ' is undefined.') : acc; }, []).join('\n'); if (err.length > 0) return reject(err); (0, _requestPromise2.default)({ method: 'GET', url: args.url, qs: { taskId: 'reportDataService', password: args.pass, port: args.port || '0', project: args.project, server: args.server, userid: args.user, reportID: args.reportID, // report id, in MSTR right click on report > properties styleName: 'ReportDataVisualizationXMLStyle', taskContentType: 'xml', taskEnv: 'xml' } }).then(_parseMstrResults2.default).then(function (body) { resolve(body); }).catch(function (err) { reject(err); }); }); } exports.default = reportDataService; module.exports = reportDataService; //# sourceMappingURL=reportDataService.js.map