@pnp/cli-microsoft365
Version:
Manage Microsoft 365 and SharePoint Framework projects on any platform
67 lines • 3.19 kB
JavaScript
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