UNPKG

@pnp/cli-microsoft365

Version:

Manage Microsoft 365 and SharePoint Framework projects on any platform

70 lines 2.77 kB
import { z } from 'zod'; import { globalOptionsZod } from '../../../../Command.js'; import request from '../../../../request.js'; import { formatting } from '../../../../utils/formatting.js'; import GraphCommand from '../../../base/GraphCommand.js'; import commands from '../../commands.js'; export const options = z.strictObject({ ...globalOptionsZod.shape, taskId: z.string().alias('i'), url: z.string().alias('u'), alias: z.string().optional(), type: z.string() .refine(val => ['powerpoint', 'word', 'excel', 'other'].includes(val.toLocaleLowerCase()), { message: 'The type must be one of the following: PowerPoint, Word, Excel, Other.' }) .optional() }); class PlannerTaskReferenceAddCommand extends GraphCommand { get name() { return commands.TASK_REFERENCE_ADD; } get description() { return 'Adds a new reference to a Planner task'; } get schema() { return options; } async commandAction(logger, args) { try { const etag = await this.getTaskDetailsEtag(args.options.taskId); const requestOptionsTaskDetails = { url: `${this.resource}/v1.0/planner/tasks/${formatting.encodeQueryParameter(args.options.taskId)}/details`, headers: { 'accept': 'application/json;odata.metadata=none', 'If-Match': etag, 'Prefer': 'return=representation' }, responseType: 'json', data: { references: { [formatting.openTypesEncoder(args.options.url)]: { '@odata.type': 'microsoft.graph.plannerExternalReference', previewPriority: ' !', ...(args.options.alias && { alias: args.options.alias }), ...(args.options.type && { type: args.options.type }) } } } }; const res = await request.patch(requestOptionsTaskDetails); await logger.log(res.references); } catch (err) { this.handleRejectedODataJsonPromise(err); } } async getTaskDetailsEtag(taskId) { const requestOptions = { url: `${this.resource}/v1.0/planner/tasks/${formatting.encodeQueryParameter(taskId)}/details`, headers: { accept: 'application/json' }, responseType: 'json' }; const response = await request.get(requestOptions); return response['@odata.etag']; } } export default new PlannerTaskReferenceAddCommand(); //# sourceMappingURL=task-reference-add.js.map