@pnp/cli-microsoft365
Version:
Manage Microsoft 365 and SharePoint Framework projects on any platform
37 lines • 1.89 kB
JavaScript
import { odata } from './odata.js';
import { formatting } from './formatting.js';
import { cli } from '../cli/cli.js';
export const entraAdministrativeUnit = {
/**
* Get an administrative unit by its display name.
* @param displayName Administrative unit display name.
* @param properties Properties to include in the response.
* @returns The administrative unit.
* @throws Error when administrative unit was not found.
*/
async getAdministrativeUnitByDisplayName(displayName, properties) {
const queryParameters = [];
if (properties) {
const allProperties = properties.split(',');
const selectProperties = allProperties.filter(prop => !prop.includes('/'));
if (selectProperties.length > 0) {
queryParameters.push(`$select=${selectProperties}`);
}
}
const queryString = queryParameters.length > 0
? `?${queryParameters.join('&')}`
: '';
const graphResource = 'https://graph.microsoft.com';
const administrativeUnits = await odata.getAllItems(`${graphResource}/v1.0/directory/administrativeUnits?$filter=displayName eq '${formatting.encodeQueryParameter(displayName)}'${queryString}`);
if (administrativeUnits.length === 0) {
throw `The specified administrative unit '${displayName}' does not exist.`;
}
if (administrativeUnits.length > 1) {
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', administrativeUnits);
const selectedAdministrativeUnit = await cli.handleMultipleResultsFound(`Multiple administrative units with name '${displayName}' found.`, resultAsKeyValuePair);
return selectedAdministrativeUnit;
}
return administrativeUnits[0];
}
};
//# sourceMappingURL=entraAdministrativeUnit.js.map