From 304fba92ff15311692011d0b7042d6b3045c8dac Mon Sep 17 00:00:00 2001 From: Marco Spengler Date: Tue, 27 Aug 2024 08:05:00 +0200 Subject: [PATCH] fix(moco): add ability to provide impersonation information on activity update (N8N-22) --- .../moco/src/nodes/Moco/ActivityDescription.ts | 17 +++++++++++++++++ nodes/moco/src/nodes/Moco/Moco.node.spec.ts | 5 ++++- nodes/moco/src/nodes/Moco/Moco.node.ts | 6 +++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/nodes/moco/src/nodes/Moco/ActivityDescription.ts b/nodes/moco/src/nodes/Moco/ActivityDescription.ts index 60fbec6d..10236f09 100644 --- a/nodes/moco/src/nodes/Moco/ActivityDescription.ts +++ b/nodes/moco/src/nodes/Moco/ActivityDescription.ts @@ -432,6 +432,23 @@ export const activityFields: INodeProperties[] = [ /* -------------------------------------------------------------------------- */ /* activity:update */ /* -------------------------------------------------------------------------- */ + { + displayName: 'Impersonate User Name or ID', + name: 'impersonateUserId', + type: 'options', + default: '', + typeOptions: { + loadOptionsMethod: 'listUsers', + }, + description: + 'Choose from the list, or specify an ID using an expression', + displayOptions: { + show: { + resource: ['activity'], + operation: ['update'], + }, + }, + }, { displayName: 'Activity ID', name: 'activityId', diff --git a/nodes/moco/src/nodes/Moco/Moco.node.spec.ts b/nodes/moco/src/nodes/Moco/Moco.node.spec.ts index ed569107..ff78fbbb 100644 --- a/nodes/moco/src/nodes/Moco/Moco.node.spec.ts +++ b/nodes/moco/src/nodes/Moco/Moco.node.spec.ts @@ -770,7 +770,10 @@ describe('Moco', () => { 0, 'PUT', `/activities/${activityId}`, - { body }, + { + impersonateUserId: undefined, + body, + }, ); }); diff --git a/nodes/moco/src/nodes/Moco/Moco.node.ts b/nodes/moco/src/nodes/Moco/Moco.node.ts index 5c35caf6..c1491deb 100644 --- a/nodes/moco/src/nodes/Moco/Moco.node.ts +++ b/nodes/moco/src/nodes/Moco/Moco.node.ts @@ -379,6 +379,10 @@ export class Moco implements INodeType { if (operation === 'update') { const activityId = this.getNodeParameter('activityId', item); + const impersonateUserId = + (this.getNodeParameter('impersonateUserId', item) as string) || + undefined; + const body: ActivityParameters = { date: this.getNodeParameter('date', item) as string, project_id: this.getNodeParameter('projectId', item) as number, @@ -398,7 +402,7 @@ export class Moco implements INodeType { item, 'PUT', `/activities/${activityId}`, - { body }, + { impersonateUserId, body }, )) as User; } }