@pnp/cli-microsoft365
Version:
Manage Microsoft 365 and SharePoint Framework projects on any platform
69 lines • 2.62 kB
JavaScript
import { z } from 'zod';
import request from "../../../../request.js";
import GraphCommand from "../../../base/GraphCommand.js";
import commands from "../../commands.js";
import { entraAdministrativeUnit } from "../../../../utils/entraAdministrativeUnit.js";
import { globalOptionsZod } from "../../../../Command.js";
import { zod } from "../../../../utils/zod.js";
const options = globalOptionsZod
.extend({
id: zod.alias('i', z.string().uuid().optional()),
displayName: zod.alias('n', z.string().optional()),
properties: zod.alias('p', z.string().optional())
})
.strict();
class EntraAdministrativeUnitGetCommand extends GraphCommand {
get name() {
return commands.ADMINISTRATIVEUNIT_GET;
}
get description() {
return 'Gets information about a specific administrative unit';
}
get schema() {
return options;
}
getRefinedSchema(schema) {
return schema
.refine(options => [options.id, options.displayName].filter(Boolean).length === 1, {
message: 'Specify either id or displayName'
});
}
async commandAction(logger, args) {
let administrativeUnit;
try {
if (args.options.id) {
administrativeUnit = await this.getAdministrativeUnitById(args.options.id, args.options.properties);
}
else {
administrativeUnit = await entraAdministrativeUnit.getAdministrativeUnitByDisplayName(args.options.displayName);
}
await logger.log(administrativeUnit);
}
catch (err) {
this.handleRejectedODataJsonPromise(err);
}
}
async getAdministrativeUnitById(id, 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 requestOptions = {
url: `${this.resource}/v1.0/directory/administrativeUnits/${id}${queryString}`,
headers: {
accept: 'application/json;odata.metadata=none'
},
responseType: 'json'
};
return await request.get(requestOptions);
}
}
export default new EntraAdministrativeUnitGetCommand();
//# sourceMappingURL=administrativeunit-get.js.map