Minor improvements to ClickUp-Node

This commit is contained in:
Jan Oberhauser
2020-01-18 20:36:57 -06:00
parent a5d920c5ba
commit 6639ccefc1
5 changed files with 196 additions and 211 deletions

View File

@@ -5,11 +5,11 @@ import {
import {
IDataObject,
INodeTypeDescription,
INodeType,
IWebhookResponseData,
INodePropertyOptions,
ILoadOptionsFunctions,
INodePropertyOptions,
INodeType,
INodeTypeDescription,
IWebhookResponseData,
} from 'n8n-workflow';
import {
@@ -21,7 +21,7 @@ import { createHmac } from 'crypto';
export class ClickUpTrigger implements INodeType {
description: INodeTypeDescription = {
displayName: 'ClickUp Trigger',
name: 'clickupTrigger',
name: 'clickUpTrigger',
icon: 'file:clickup.png',
group: ['trigger'],
version: 1,
@@ -68,89 +68,17 @@ export class ClickUpTrigger implements INodeType {
name: '*',
value: '*',
},
{
name: 'task.created',
value: 'taskCreated',
},
{
name: 'task.updated',
value: 'taskUpdated',
},
{
name: 'task.deleted',
value: 'taskDeleted',
},
{
name: 'task.status.updated',
value: 'taskStatusUpdated',
},
{
name: 'task.assignee.updated',
value: 'taskAssigneeUpdated',
},
{
name: 'task.dueDate.updated',
value: 'taskDueDateUpdated',
},
{
name: 'task.tag.updated',
value: 'taskTagUpdated',
},
{
name: 'task.moved',
value: 'taskMoved',
},
{
name: 'task.comment.posted',
value: 'taskCommentPosted',
},
{
name: 'task.comment.updated',
value: 'taskCommentUpdated',
},
{
name: 'task.timeEstimate.updated',
value: 'taskTimeEstimateUpdated',
},
{
name: 'task.timeTracked.updated',
value: 'taskTimeTrackedUpdated',
},
{
name: 'list.created',
value: 'listCreated',
},
{
name: 'list.updated',
value: 'listUpdated',
},
{
name: 'list.deleted',
value: 'listDeleted',
},
{
name: 'folder.created',
value: 'folderCreated',
},
{
name: 'folder.updated',
value: 'folderUpdated',
},
{
name: 'folder.deleted',
value: 'folderDeleted',
},
{
name: 'space.created',
value: 'spaceCreated',
},
{
name: 'space.updated',
value: 'spaceUpdated',
},
{
name: 'space.deleted',
value: 'spaceDeleted',
name: 'folder.updated',
value: 'folderUpdated',
},
{
name: 'goal.created',
@@ -168,23 +96,88 @@ export class ClickUpTrigger implements INodeType {
name: 'keyResult.created',
value: 'keyResultCreated',
},
{
name: 'keyResult.deleted',
value: 'keyResultDelete',
},
{
name: 'keyResult.updated',
value: 'keyResultUpdated',
},
{
name: 'keyResult.deleted',
value: 'keyResultDelete',
name: 'list.created',
value: 'listCreated',
},
{
name: 'list.deleted',
value: 'listDeleted',
},
{
name: 'list.updated',
value: 'listUpdated',
},
{
name: 'space.created',
value: 'spaceCreated',
},
{
name: 'space.deleted',
value: 'spaceDeleted',
},
{
name: 'space.updated',
value: 'spaceUpdated',
},
{
name: 'task.assignee.updated',
value: 'taskAssigneeUpdated',
},
{
name: 'task.comment.posted',
value: 'taskCommentPosted',
},
{
name: 'task.comment.updated',
value: 'taskCommentUpdated',
},
{
name: 'task.created',
value: 'taskCreated',
},
{
name: 'task.deleted',
value: 'taskDeleted',
},
{
name: 'task.dueDate.updated',
value: 'taskDueDateUpdated',
},
{
name: 'task.moved',
value: 'taskMoved',
},
{
name: 'task.status.updated',
value: 'taskStatusUpdated',
},
{
name: 'task.tag.updated',
value: 'taskTagUpdated',
},
{
name: 'task.timeEstimate.updated',
value: 'taskTimeEstimateUpdated',
},
{
name: 'task.timeTracked.updated',
value: 'taskTimeTrackedUpdated',
},
{
name: 'task.updated',
value: 'taskUpdated',
},
],
},
{
displayName: 'RAW Data',
name: 'rawData',
type: 'boolean',
default: false,
description: 'If the data should be returned RAW instead of parsed.',
},
{
displayName: 'Filters',
name: 'filters',
@@ -192,12 +185,6 @@ export class ClickUpTrigger implements INodeType {
placeholder: 'Add Field',
default: {},
options: [
{
displayName: 'Space ID',
name: 'spaceId',
type: 'string',
default: '',
},
{
displayName: 'Folder ID',
name: 'folderId',
@@ -210,6 +197,12 @@ export class ClickUpTrigger implements INodeType {
type: 'string',
default: '',
},
{
displayName: 'Space ID',
name: 'spaceId',
type: 'string',
default: '',
},
{
displayName: 'Task ID',
name: 'taskId',
@@ -309,16 +302,12 @@ export class ClickUpTrigger implements INodeType {
async webhook(this: IWebhookFunctions): Promise<IWebhookResponseData> {
const webhookData = this.getWorkflowStaticData('node');
const headerData = this.getHeaderData() as IDataObject;
const rawData = this.getNodeParameter('rawData') as boolean;
const req = this.getRequestObject();
const computedSignature = createHmac('sha256', webhookData.secret as string).update(JSON.stringify(req.body)).digest('hex');
if (headerData['x-signature'] !== computedSignature) {
// Signature is not valid so ignore call
return {};
}
if (!rawData) {
delete req.body.history_items
}
return {
workflowData: [
this.helpers.returnJsonArray(req.body),