@00f100/pbie-node
Version:
NodeJS library written in typescript and designed for using PowerBI embedded reports.
48 lines • 2 kB
JavaScript
;
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