UNPKG

@pnp/cli-microsoft365

Version:

Manage Microsoft 365 and SharePoint Framework projects on any platform

67 lines 3.19 kB
import { cli } from "../cli/cli.js"; import request from "../request.js"; import { formatting } from "./formatting.js"; import { odata } from "./odata.js"; const powerPlatformResource = 'https://api.bap.microsoft.com'; export const powerPlatform = { async getDynamicsInstanceApiUrl(environment, asAdmin) { let url = ''; if (asAdmin) { url = `${powerPlatformResource}/providers/Microsoft.BusinessAppPlatform/scopes/admin/environments/${formatting.encodeQueryParameter(environment)}`; } else { url = `${powerPlatformResource}/providers/Microsoft.BusinessAppPlatform/environments/${formatting.encodeQueryParameter(environment)}`; } const requestOptions = { url: `${url}?api-version=2020-10-01&$select=properties.linkedEnvironmentMetadata.instanceApiUrl`, headers: { accept: 'application/json;odata.metadata=none' }, responseType: 'json' }; try { const response = await request.get(requestOptions); return response.properties.linkedEnvironmentMetadata.instanceApiUrl; } catch (ex) { throw Error(`The environment '${environment}' could not be retrieved. See the inner exception for more details: ${ex.message}`); } }, async getWebsiteById(environment, id) { const requestOptions = { url: `https://api.powerplatform.com/powerpages/environments/${environment}/websites/${id}?api-version=2022-03-01-preview`, headers: { accept: 'application/json;odata.metadata=none' }, responseType: 'json' }; try { const response = await request.get(requestOptions); return response; } catch (ex) { throw Error(`The specified Power Page website with id '${id}' does not exist.`); } }, async getWebsiteByName(environment, websiteName) { const response = await odata.getAllItems(`https://api.powerplatform.com/powerpages/environments/${environment}/websites?api-version=2022-03-01-preview`); const items = response.filter(response => response.name === websiteName); if (items.length === 0) { throw Error(`The specified Power Page website '${websiteName}' does not exist.`); } if (items.length > 1) { const resultAsKeyValuePair = formatting.convertArrayToHashTable('websiteUrl', items); return cli.handleMultipleResultsFound(`Multiple Power Page websites with name '${websiteName}' found`, resultAsKeyValuePair); } return items[0]; }, async getWebsiteByUrl(environment, url) { const response = await odata.getAllItems(`https://api.powerplatform.com/powerpages/environments/${environment}/websites?api-version=2022-03-01-preview`); const items = response.filter(response => response.websiteUrl === url); if (items.length === 0) { throw Error(`The specified Power Page website with url '${url}' does not exist.`); } return items[0]; } }; //# sourceMappingURL=powerPlatform.js.map