@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.
@@ -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: [this.helpers.returnJsonArray([body])],
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;YACf,QAAQ,EAAE;gBACT;oBACC,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,UAAU;iBAChB;aACD;YACD,UAAU,EAAE,EAAE;SACd,CAAC;IAqBH,CAAC;IAnBA,KAAK,CAAC,OAAO;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAGtC,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,CAAC;SACV;QAGD,OAAO;YACN,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACpD,CAAC;IACH,CAAC;CACD;AA5CD,sCA4CC"}
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 api a query',
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
- const queryColumnValues = `
3352
- column_values {
3353
- id
3354
- text
3355
- value
3356
- type
3357
- ... on BoardRelationValue {
3358
- display_value
3359
- linked_item_ids
3360
- }
3361
- ... on MirrorValue {
3362
- display_value
3363
- mirrored_items {
3364
- linked_board_id
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 = JSON.stringify(formattedDate);
4700
+ formattedValue = formattedDate;
4651
4701
  }
4652
4702
  else {
4653
- formattedValue = JSON.stringify(rule.compareValue);
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 = JSON.stringify(rule.compareValue);
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 = JSON.stringify(rule.compareValue);
4812
+ formattedValue = rule.compareValue;
4760
4813
  }
4761
4814
  }
4762
4815
  let actualOperator = rule.operator;