UNPKG

@00f100/pbie-node

Version:

NodeJS library written in typescript and designed for using PowerBI embedded reports.

48 lines 2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const adal_node_1 = __importDefault(require("adal-node")); const https_1 = __importDefault(require("https")); const request_1 = __importDefault(require("request")); exports.getAuthToken = async (config) => { const AuthenticationContext = adal_node_1.default.AuthenticationContext; const { authorityUrl, resourceUrl, appSecret, appId } = config; https_1.default.globalAgent.options.ca = config.signature; const promise = new Promise((resolve, reject) => { const authCallback = (err, tokenResponse) => { if (err) return reject(err); if ('error' in tokenResponse) return reject(new Error(tokenResponse.error)); return resolve(tokenResponse); }; new AuthenticationContext(authorityUrl) .acquireTokenWithClientCredentials(resourceUrl, appId, appSecret, authCallback); }); return promise; }; exports.getEmbedToken = (config, url, options, reportId) => { const { workspaceId } = config; const promise = new Promise((resolve, reject) => { request_1.default(url, options, (error, { statusCode }, body) => { if (error) return reject(error); if (statusCode >= 400) { const decoded = JSON.parse(body); return reject(new Error(decoded.error.message)); } if (!body || body === '') reject(new Error(`No report with id: ${reportId} in group with id: ${workspaceId}`)); try { resolve(JSON.parse(body)); } catch (error) { reject(error); } }); }); return promise; }; //# sourceMappingURL=internals.js.map