UNPKG

@pnp/cli-microsoft365

Version:

Manage Microsoft 365 and SharePoint Framework projects on any platform

93 lines 4.22 kB
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _VivaEngageGroupListCommand_instances, _VivaEngageGroupListCommand_initTelemetry, _VivaEngageGroupListCommand_initOptions, _VivaEngageGroupListCommand_initValidators; import request from '../../../../request.js'; import VivaEngageCommand from '../../../base/VivaEngageCommand.js'; import commands from '../../commands.js'; class VivaEngageGroupListCommand extends VivaEngageCommand { get name() { return commands.ENGAGE_GROUP_LIST; } get description() { return 'Returns the list of groups in a Viva Engage network or the groups for a specific user'; } constructor() { super(); _VivaEngageGroupListCommand_instances.add(this); this.items = []; __classPrivateFieldGet(this, _VivaEngageGroupListCommand_instances, "m", _VivaEngageGroupListCommand_initTelemetry).call(this); __classPrivateFieldGet(this, _VivaEngageGroupListCommand_instances, "m", _VivaEngageGroupListCommand_initOptions).call(this); __classPrivateFieldGet(this, _VivaEngageGroupListCommand_instances, "m", _VivaEngageGroupListCommand_initValidators).call(this); } defaultProperties() { return ['id', 'name', 'email', 'privacy', 'external', 'moderated']; } async getAllItems(logger, args, page) { let endpoint = `${this.resource}/v1`; if (args.options.userId) { endpoint += `/groups/for_user/${args.options.userId}.json`; } else { endpoint += `/groups.json`; } endpoint += `?page=${page}`; const requestOptions = { url: endpoint, headers: { accept: 'application/json;odata.metadata=none', 'content-type': 'application/json;odata=nometadata' }, responseType: 'json' }; const output = await request.get(requestOptions); if (!output.length) { return; } this.items = this.items.concat(output); if (args.options.limit && this.items.length > args.options.limit) { this.items = this.items.slice(0, args.options.limit); } else if (this.items.length % 50 === 0) { await this.getAllItems(logger, args, ++page); } } async commandAction(logger, args) { this.items = []; // this will reset the items array in interactive mode try { await this.getAllItems(logger, args, 1); await logger.log(this.items); } catch (err) { this.handleRejectedODataJsonPromise(err); } } } _VivaEngageGroupListCommand_instances = new WeakSet(), _VivaEngageGroupListCommand_initTelemetry = function _VivaEngageGroupListCommand_initTelemetry() { this.telemetry.push((args) => { Object.assign(this.telemetryProperties, { userId: args.options.userId !== undefined, limit: args.options.limit !== undefined }); }); }, _VivaEngageGroupListCommand_initOptions = function _VivaEngageGroupListCommand_initOptions() { this.options.unshift({ option: '--userId [userId]' }, { option: '--limit [limit]' }); }, _VivaEngageGroupListCommand_initValidators = function _VivaEngageGroupListCommand_initValidators() { this.validators.push(async (args) => { if (args.options.userId && typeof args.options.userId !== 'number') { return `${args.options.userId} is not a number`; } if (args.options.limit && typeof args.options.limit !== 'number') { return `${args.options.limit} is not a number`; } return true; }); }; export default new VivaEngageGroupListCommand(); //# sourceMappingURL=engage-group-list.js.map