@worktables/n8n-nodes-worktables 12.1.10 → 12.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nodes/Worktables/MondayWebhook.node.js +123 -3
- package/dist/nodes/Worktables/MondayWebhook.node.js.map +1 -1
- package/dist/nodes/Worktables/Worktables.node.js +81 -28
- package/dist/nodes/Worktables/Worktables.node.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -15,7 +15,12 @@ class MondayWebhook {
|
|
|
15
15
|
},
|
|
16
16
|
inputs: ["main"],
|
|
17
17
|
outputs: ["main"],
|
|
18
|
-
credentials: [
|
|
18
|
+
credentials: [
|
|
19
|
+
{
|
|
20
|
+
name: 'WorktablesApi',
|
|
21
|
+
required: false,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
19
24
|
webhooks: [
|
|
20
25
|
{
|
|
21
26
|
name: 'default',
|
|
@@ -24,10 +29,69 @@ class MondayWebhook {
|
|
|
24
29
|
path: '/webhook',
|
|
25
30
|
},
|
|
26
31
|
],
|
|
27
|
-
properties: [
|
|
32
|
+
properties: [
|
|
33
|
+
{
|
|
34
|
+
displayName: 'Get Item After Event',
|
|
35
|
+
name: 'getItemAfterEvent',
|
|
36
|
+
type: 'boolean',
|
|
37
|
+
default: false,
|
|
38
|
+
description: 'Fetch the related item from Monday after receiving the event',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Is Subitem',
|
|
42
|
+
name: 'isSubitem',
|
|
43
|
+
type: 'boolean',
|
|
44
|
+
default: false,
|
|
45
|
+
description: 'Treat the received item as a subitem when fetching data',
|
|
46
|
+
displayOptions: {
|
|
47
|
+
show: {
|
|
48
|
+
getItemAfterEvent: [true],
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
displayName: 'Fetch Subitems',
|
|
54
|
+
name: 'fetchSubitems',
|
|
55
|
+
type: 'boolean',
|
|
56
|
+
default: false,
|
|
57
|
+
description: 'Include subitems of the item in the response',
|
|
58
|
+
displayOptions: {
|
|
59
|
+
show: {
|
|
60
|
+
getItemAfterEvent: [true],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
displayName: 'Fetch All Columns',
|
|
66
|
+
name: 'fetchAllColumns',
|
|
67
|
+
type: 'boolean',
|
|
68
|
+
default: true,
|
|
69
|
+
description: 'When true, returns all columns; otherwise, only specified Column IDs',
|
|
70
|
+
displayOptions: {
|
|
71
|
+
show: {
|
|
72
|
+
getItemAfterEvent: [true],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
displayName: 'Column IDs',
|
|
78
|
+
name: 'columnIds',
|
|
79
|
+
type: 'string',
|
|
80
|
+
default: '',
|
|
81
|
+
placeholder: 'status,owner,date',
|
|
82
|
+
description: 'Comma-separated column IDs to fetch. Leave empty to fetch all columns.',
|
|
83
|
+
displayOptions: {
|
|
84
|
+
show: {
|
|
85
|
+
getItemAfterEvent: [true],
|
|
86
|
+
fetchAllColumns: [false],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
],
|
|
28
91
|
};
|
|
29
92
|
}
|
|
30
93
|
async webhook() {
|
|
94
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
31
95
|
const req = this.getRequestObject();
|
|
32
96
|
const res = this.getResponseObject();
|
|
33
97
|
const body = req.body;
|
|
@@ -36,8 +100,64 @@ class MondayWebhook {
|
|
|
36
100
|
res.status(200).json({ challenge: body.challenge });
|
|
37
101
|
return {};
|
|
38
102
|
}
|
|
103
|
+
const getItemAfterEvent = this.getNodeParameter('getItemAfterEvent', 0);
|
|
104
|
+
if (!getItemAfterEvent) {
|
|
105
|
+
return {
|
|
106
|
+
workflowData: [this.helpers.returnJsonArray([body])],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
const isSubitem = this.getNodeParameter('isSubitem', 0);
|
|
110
|
+
const fetchSubitems = this.getNodeParameter('fetchSubitems', 0);
|
|
111
|
+
const fetchAllColumns = this.getNodeParameter('fetchAllColumns', 0);
|
|
112
|
+
const columnIdsRaw = this.getNodeParameter('columnIds', 0);
|
|
113
|
+
const columnIds = (columnIdsRaw || '')
|
|
114
|
+
.split(',')
|
|
115
|
+
.map((s) => s.trim())
|
|
116
|
+
.filter((s) => s.length > 0);
|
|
117
|
+
const itemId = (_g = (_f = (_d = (_b = (_a = body === null || body === void 0 ? void 0 : body.event) === null || _a === void 0 ? void 0 : _a.pulseId) !== null && _b !== void 0 ? _b : (_c = body === null || body === void 0 ? void 0 : body.event) === null || _c === void 0 ? void 0 : _c.itemId) !== null && _d !== void 0 ? _d : (_e = body === null || body === void 0 ? void 0 : body.event) === null || _e === void 0 ? void 0 : _e.entityId) !== null && _f !== void 0 ? _f : body === null || body === void 0 ? void 0 : body.pulseId) !== null && _g !== void 0 ? _g : body === null || body === void 0 ? void 0 : body.itemId;
|
|
118
|
+
if (!itemId) {
|
|
119
|
+
return {
|
|
120
|
+
workflowData: [this.helpers.returnJsonArray([body])],
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
const columnsSelection = fetchAllColumns
|
|
124
|
+
? 'column_values { id text value type }'
|
|
125
|
+
: columnIds.length > 0
|
|
126
|
+
? `column_values (ids: [${columnIds.map((id) => `"${id}"`).join(', ')}]) { id text value type }`
|
|
127
|
+
: 'column_values { id text value type }';
|
|
128
|
+
const subitemsSelection = fetchSubitems ? `subitems { id name ${columnsSelection} }` : '';
|
|
129
|
+
const itemFragment = `id name ${columnsSelection} ${subitemsSelection}`.trim();
|
|
130
|
+
const query = isSubitem
|
|
131
|
+
? `query { item (id: ${itemId}) { ${itemFragment} } }`
|
|
132
|
+
: `query { item (id: ${itemId}) { ${itemFragment} } }`;
|
|
133
|
+
let fetchedItem = undefined;
|
|
134
|
+
try {
|
|
135
|
+
const credentials = await this.getCredentials('WorktablesApi');
|
|
136
|
+
const apiKey = credentials === null || credentials === void 0 ? void 0 : credentials.apiKey;
|
|
137
|
+
const response = await this.helpers.httpRequest({
|
|
138
|
+
method: 'POST',
|
|
139
|
+
url: 'https://api.monday.com/v2',
|
|
140
|
+
headers: {
|
|
141
|
+
'Content-Type': 'application/json',
|
|
142
|
+
...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),
|
|
143
|
+
},
|
|
144
|
+
body: { query },
|
|
145
|
+
json: true,
|
|
146
|
+
});
|
|
147
|
+
fetchedItem = (_j = (_h = response === null || response === void 0 ? void 0 : response.data) === null || _h === void 0 ? void 0 : _h.item) !== null && _j !== void 0 ? _j : null;
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
fetchedItem = null;
|
|
151
|
+
}
|
|
39
152
|
return {
|
|
40
|
-
workflowData: [
|
|
153
|
+
workflowData: [
|
|
154
|
+
this.helpers.returnJsonArray([
|
|
155
|
+
{
|
|
156
|
+
...body,
|
|
157
|
+
fetchedItem,
|
|
158
|
+
},
|
|
159
|
+
]),
|
|
160
|
+
],
|
|
41
161
|
};
|
|
42
162
|
}
|
|
43
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MondayWebhook.node.js","sourceRoot":"","sources":["../../../nodes/Worktables/MondayWebhook.node.ts"],"names":[],"mappings":";;;AAWA,MAAa,aAAa;IAA1B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,oBAAoB;YACjC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE;gBACT,IAAI,EAAE,gBAAgB;aACtB;YACD,MAAM,EAAE,QAAyB;YACjC,OAAO,EAAE,QAAyB;YAClC,WAAW,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"MondayWebhook.node.js","sourceRoot":"","sources":["../../../nodes/Worktables/MondayWebhook.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,8 +64,8 @@ class Worktables {
|
|
|
64
64
|
type: 'options',
|
|
65
65
|
noDataExpression: true,
|
|
66
66
|
options: [
|
|
67
|
-
{ name: 'Board', value: 'board', description: 'Operations related to boards' },
|
|
68
67
|
{ name: 'Item', value: 'item', description: 'Operations related to items' },
|
|
68
|
+
{ name: 'Board', value: 'board', description: 'Operations related to boards' },
|
|
69
69
|
{ name: 'Subitem', value: 'subitem', description: 'Operations related to subitems' },
|
|
70
70
|
{ name: 'Update', value: 'update', description: 'Operations related to updates' },
|
|
71
71
|
{ name: 'Team', value: 'team', description: 'Operations related to teams' },
|
|
@@ -176,7 +176,7 @@ class Worktables {
|
|
|
176
176
|
name: 'Run API',
|
|
177
177
|
value: 'query',
|
|
178
178
|
description: 'Run a custom query',
|
|
179
|
-
action: 'Run
|
|
179
|
+
action: 'Run API query',
|
|
180
180
|
},
|
|
181
181
|
],
|
|
182
182
|
default: 'query',
|
|
@@ -244,12 +244,6 @@ class Worktables {
|
|
|
244
244
|
description: 'Search items in a board using a filter',
|
|
245
245
|
action: 'Search items by filter',
|
|
246
246
|
},
|
|
247
|
-
{
|
|
248
|
-
name: 'Advanced Search Items',
|
|
249
|
-
value: 'searchItemsAdvanced',
|
|
250
|
-
description: 'Advanced search with date ranges, numeric comparisons, and complex filters',
|
|
251
|
-
action: 'Advanced search items',
|
|
252
|
-
},
|
|
253
247
|
{
|
|
254
248
|
name: 'List Item Subscribers',
|
|
255
249
|
value: 'listItemSubscribers',
|
|
@@ -1087,6 +1081,32 @@ class Worktables {
|
|
|
1087
1081
|
},
|
|
1088
1082
|
},
|
|
1089
1083
|
},
|
|
1084
|
+
{
|
|
1085
|
+
displayName: 'Fetch All Columns',
|
|
1086
|
+
name: 'fetchAllColumns',
|
|
1087
|
+
type: 'boolean',
|
|
1088
|
+
default: true,
|
|
1089
|
+
description: 'Whether to fetch all columns or only specific ones',
|
|
1090
|
+
displayOptions: {
|
|
1091
|
+
show: {
|
|
1092
|
+
operation: ['getItem'],
|
|
1093
|
+
},
|
|
1094
|
+
},
|
|
1095
|
+
},
|
|
1096
|
+
{
|
|
1097
|
+
displayName: 'Column IDs',
|
|
1098
|
+
name: 'columnIds',
|
|
1099
|
+
type: 'string',
|
|
1100
|
+
default: '',
|
|
1101
|
+
required: false,
|
|
1102
|
+
description: 'Comma-separated list of column IDs to fetch (e.g., text, number, date). Only used when "Fetch All Columns" is disabled.',
|
|
1103
|
+
displayOptions: {
|
|
1104
|
+
show: {
|
|
1105
|
+
operation: ['getItem'],
|
|
1106
|
+
fetchAllColumns: [false],
|
|
1107
|
+
},
|
|
1108
|
+
},
|
|
1109
|
+
},
|
|
1090
1110
|
{
|
|
1091
1111
|
displayName: 'Item ID',
|
|
1092
1112
|
name: 'itemId',
|
|
@@ -3346,26 +3366,55 @@ class Worktables {
|
|
|
3346
3366
|
case 'getItem': {
|
|
3347
3367
|
const itemId = this.getNodeParameter('itemId', 0);
|
|
3348
3368
|
const isSubitem = this.getNodeParameter('isSubitem', 0);
|
|
3369
|
+
const fetchAllColumns = this.getNodeParameter('fetchAllColumns', 0);
|
|
3370
|
+
const columnIds = this.getNodeParameter('columnIds', 0);
|
|
3349
3371
|
const fetchSubitems = !isSubitem && this.getNodeParameter('fetchSubitems', 0);
|
|
3350
3372
|
const fetchParentItem = isSubitem && this.getNodeParameter('fetchParentItems', 0);
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3373
|
+
let queryColumnValues = '';
|
|
3374
|
+
if (fetchAllColumns) {
|
|
3375
|
+
queryColumnValues = `
|
|
3376
|
+
column_values {
|
|
3377
|
+
id
|
|
3378
|
+
text
|
|
3379
|
+
value
|
|
3380
|
+
type
|
|
3381
|
+
... on BoardRelationValue {
|
|
3382
|
+
display_value
|
|
3383
|
+
linked_item_ids
|
|
3384
|
+
}
|
|
3385
|
+
... on MirrorValue {
|
|
3386
|
+
display_value
|
|
3387
|
+
mirrored_items {
|
|
3388
|
+
linked_board_id
|
|
3389
|
+
}
|
|
3365
3390
|
}
|
|
3366
3391
|
}
|
|
3367
|
-
|
|
3368
|
-
|
|
3392
|
+
`;
|
|
3393
|
+
}
|
|
3394
|
+
else if (columnIds && columnIds.trim()) {
|
|
3395
|
+
const specificColumnIds = columnIds.split(',').map(id => id.trim()).filter(id => id);
|
|
3396
|
+
if (specificColumnIds.length > 0) {
|
|
3397
|
+
const columnIdsString = specificColumnIds.map(id => `"${id}"`).join(', ');
|
|
3398
|
+
queryColumnValues = `
|
|
3399
|
+
column_values(ids: [${columnIdsString}]) {
|
|
3400
|
+
id
|
|
3401
|
+
text
|
|
3402
|
+
value
|
|
3403
|
+
type
|
|
3404
|
+
... on BoardRelationValue {
|
|
3405
|
+
display_value
|
|
3406
|
+
linked_item_ids
|
|
3407
|
+
}
|
|
3408
|
+
... on MirrorValue {
|
|
3409
|
+
display_value
|
|
3410
|
+
mirrored_items {
|
|
3411
|
+
linked_board_id
|
|
3412
|
+
}
|
|
3413
|
+
}
|
|
3414
|
+
}
|
|
3415
|
+
`;
|
|
3416
|
+
}
|
|
3417
|
+
}
|
|
3369
3418
|
const querySubitems = `
|
|
3370
3419
|
subitems {
|
|
3371
3420
|
id
|
|
@@ -3461,6 +3510,7 @@ class Worktables {
|
|
|
3461
3510
|
formatted.subitems = await Promise.all(item.subitems.map(async (subitem) => {
|
|
3462
3511
|
const subFormatted = {
|
|
3463
3512
|
id: subitem.id,
|
|
3513
|
+
name: subitem.name,
|
|
3464
3514
|
column_values: {},
|
|
3465
3515
|
};
|
|
3466
3516
|
for (const col of subitem.column_values || []) {
|
|
@@ -4647,10 +4697,10 @@ class Worktables {
|
|
|
4647
4697
|
else {
|
|
4648
4698
|
formattedDate = rule.compareValue;
|
|
4649
4699
|
}
|
|
4650
|
-
formattedValue =
|
|
4700
|
+
formattedValue = formattedDate;
|
|
4651
4701
|
}
|
|
4652
4702
|
else {
|
|
4653
|
-
formattedValue =
|
|
4703
|
+
formattedValue = rule.compareValue;
|
|
4654
4704
|
}
|
|
4655
4705
|
}
|
|
4656
4706
|
else if (rule.operator === 'equals') {
|
|
@@ -4687,6 +4737,9 @@ class Worktables {
|
|
|
4687
4737
|
const formattedEndDate = `${endYear}-${endMonth.padStart(2, '0')}-${endDay.padStart(2, '0')}`;
|
|
4688
4738
|
formattedValue = JSON.stringify(["EXACT", formattedStartDate, "EXACT", formattedEndDate]);
|
|
4689
4739
|
}
|
|
4740
|
+
else if (values.length === 2 && isoDateRegex.test(values[0]) && isoDateRegex.test(values[1])) {
|
|
4741
|
+
formattedValue = JSON.stringify(["EXACT", values[0], "EXACT", values[1]]);
|
|
4742
|
+
}
|
|
4690
4743
|
else {
|
|
4691
4744
|
formattedValue = JSON.stringify(values);
|
|
4692
4745
|
}
|
|
@@ -4701,7 +4754,7 @@ class Worktables {
|
|
|
4701
4754
|
formattedValue = JSON.stringify(["EXACT", rule.compareValue]);
|
|
4702
4755
|
}
|
|
4703
4756
|
else {
|
|
4704
|
-
formattedValue =
|
|
4757
|
+
formattedValue = rule.compareValue;
|
|
4705
4758
|
}
|
|
4706
4759
|
}
|
|
4707
4760
|
else if (rule.operator === 'any_of' || rule.operator === 'not_any_of') {
|
|
@@ -4756,7 +4809,7 @@ class Worktables {
|
|
|
4756
4809
|
formattedValue = JSON.stringify(["EXACT", rule.compareValue]);
|
|
4757
4810
|
}
|
|
4758
4811
|
else {
|
|
4759
|
-
formattedValue =
|
|
4812
|
+
formattedValue = rule.compareValue;
|
|
4760
4813
|
}
|
|
4761
4814
|
}
|
|
4762
4815
|
let actualOperator = rule.operator;
|