n8n-nodes-novinmarketing 0.2.0 → 0.2.2

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.
Files changed (38) hide show
  1. package/dist/nodes/Events/Events.node.d.ts +2 -1
  2. package/dist/nodes/Events/Events.node.js +82 -13
  3. package/dist/nodes/Events/Events.node.js.map +1 -1
  4. package/dist/nodes/Events/Events.node.json +2 -2
  5. package/dist/nodes/GetSegmentUsers/GetSegmentUsers.node.js +6 -26
  6. package/dist/nodes/GetSegmentUsers/GetSegmentUsers.node.js.map +1 -1
  7. package/dist/nodes/GetSegmentUsers/GetSegmentUsers.node.json +2 -2
  8. package/dist/nodes/HasConditions/HasConditions.node.d.ts +2 -1
  9. package/dist/nodes/HasConditions/HasConditions.node.js +61 -8
  10. package/dist/nodes/HasConditions/HasConditions.node.js.map +1 -1
  11. package/dist/nodes/HasConditions/HasConditions.node.json +2 -2
  12. package/dist/nodes/Items/Items.node.d.ts +2 -1
  13. package/dist/nodes/Items/Items.node.js +73 -47
  14. package/dist/nodes/Items/Items.node.js.map +1 -1
  15. package/dist/nodes/Items/Items.node.json +2 -2
  16. package/dist/nodes/LinkClickCheck/LinkClickCheck.node.d.ts +2 -1
  17. package/dist/nodes/LinkClickCheck/LinkClickCheck.node.js +59 -5
  18. package/dist/nodes/LinkClickCheck/LinkClickCheck.node.js.map +1 -1
  19. package/dist/nodes/LinkClickCheck/LinkClickCheck.node.json +2 -2
  20. package/dist/nodes/SendEmailBatch/SendEmailBatch.node.js +13 -7
  21. package/dist/nodes/SendEmailBatch/SendEmailBatch.node.js.map +1 -1
  22. package/dist/nodes/SendSmsBatch/SendSmsBatch.node.js +11 -5
  23. package/dist/nodes/SendSmsBatch/SendSmsBatch.node.js.map +1 -1
  24. package/dist/nodes/SendWebPush/SendWebPush.node.d.ts +2 -1
  25. package/dist/nodes/SendWebPush/SendWebPush.node.js +144 -48
  26. package/dist/nodes/SendWebPush/SendWebPush.node.js.map +1 -1
  27. package/dist/nodes/SendWebPush/SendWebPush.node.json +2 -2
  28. package/dist/nodes/TagOperations/TagOperations.node.d.ts +2 -1
  29. package/dist/nodes/TagOperations/TagOperations.node.js +63 -6
  30. package/dist/nodes/TagOperations/TagOperations.node.js.map +1 -1
  31. package/dist/nodes/TagOperations/TagOperations.node.json +2 -2
  32. package/dist/nodes/Voucher/Voucher.node.d.ts +2 -1
  33. package/dist/nodes/Voucher/Voucher.node.js +67 -27
  34. package/dist/nodes/Voucher/Voucher.node.js.map +1 -1
  35. package/dist/nodes/Voucher/Voucher.node.json +2 -2
  36. package/dist/package.json +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- import { INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import { INodeType, INodeTypeDescription, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
2
  export declare class Events implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
4
5
  }
@@ -8,7 +8,7 @@ class Events {
8
8
  name: 'events',
9
9
  icon: 'file:Events.svg',
10
10
  group: ['transform'],
11
- version: 4,
11
+ version: [4, 5],
12
12
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
13
  description: 'Node for Events',
14
14
  defaults: {
@@ -22,13 +22,6 @@ class Events {
22
22
  required: true,
23
23
  },
24
24
  ],
25
- requestDefaults: {
26
- baseURL: 'https://cdp.novin.marketing/api',
27
- headers: {
28
- Accept: 'application/json',
29
- 'Content-Type': 'application/json',
30
- },
31
- },
32
25
  properties: [
33
26
  {
34
27
  displayName: 'Resource',
@@ -133,14 +126,14 @@ class Events {
133
126
  default: 'post',
134
127
  },
135
128
  {
136
- displayName: 'User ID',
137
- name: 'user_id',
129
+ displayName: 'Users',
130
+ name: 'users',
138
131
  type: 'string',
139
- default: '',
140
- placeholder: '_id of the user',
132
+ default: '{{ $(previousNodename).all() }}',
133
+ placeholder: 'users _id',
141
134
  routing: {
142
135
  send: {
143
- property: 'userId',
136
+ property: 'users',
144
137
  type: 'body',
145
138
  },
146
139
  },
@@ -185,9 +178,85 @@ class Events {
185
178
  },
186
179
  },
187
180
  },
181
+ {
182
+ displayName: 'Batch Size',
183
+ name: 'batchSize',
184
+ type: 'number',
185
+ default: 20,
186
+ description: 'Number of messages to accumulate before sending a batch',
187
+ },
188
188
  ],
189
189
  };
190
190
  }
191
+ async execute() {
192
+ const users = this.getNodeParameter('users', 0);
193
+ const batchSize = this.getNodeParameter('batchSize', 0);
194
+ const resource = this.getNodeParameter('resource', 0);
195
+ const operation = this.getNodeParameter('operation', 0);
196
+ const responseData = [];
197
+ for (let i = 0; i < users.length; i += batchSize) {
198
+ const batchUsers = users.slice(i, i + batchSize);
199
+ let usersId = [];
200
+ for (const user of batchUsers) {
201
+ if ('_id' in user.json) {
202
+ usersId.push({ userId: user.json._id });
203
+ }
204
+ else if ('body' in user.json && '_id' in user.json.body) {
205
+ usersId.push({ userId: user.json.body._id });
206
+ }
207
+ else {
208
+ console.log('Invalid user format');
209
+ }
210
+ }
211
+ let body = {
212
+ usersId,
213
+ };
214
+ let url = '';
215
+ if (resource === 'NovinGetLastEvent') {
216
+ if (operation === 'post') {
217
+ url = 'http://cdp.novin.marketing/api/events/lastEventBatch';
218
+ const parameters = this.getNode().parameters;
219
+ let eventName = parameters.eventName;
220
+ let eventTime = parameters.eventTime;
221
+ body = {
222
+ ...body,
223
+ eventName
224
+ };
225
+ if (eventTime && eventTime != '') {
226
+ body.time = eventTime;
227
+ }
228
+ }
229
+ }
230
+ else if (resource === 'NovinGetLastCart') {
231
+ if (operation === 'post') {
232
+ url = 'http://cdp.novin.marketing/api/events/getCartHTMLBatch';
233
+ }
234
+ }
235
+ else if (resource === 'NovinGetRecPurchased') {
236
+ if (operation === 'post') {
237
+ url = 'http://cdp.novin.marketing/api/events/getRecHTMLBatch';
238
+ }
239
+ }
240
+ const options = {
241
+ method: 'POST',
242
+ url: url,
243
+ body: body,
244
+ headers: {
245
+ 'Accept': 'application/json',
246
+ 'Content-Type': 'application/json',
247
+ },
248
+ json: true,
249
+ };
250
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
251
+ if (Array.isArray(response)) {
252
+ responseData.push(...response);
253
+ }
254
+ else {
255
+ responseData.push(response);
256
+ }
257
+ }
258
+ return [this.helpers.returnJsonArray(responseData)];
259
+ }
191
260
  }
192
261
  exports.Events = Events;
193
262
  //# sourceMappingURL=Events.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Events.node.js","sourceRoot":"","sources":["../../../nodes/Events/Events.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Events.node.js","sourceRoot":"","sources":["../../../nodes/Events/Events.node.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "node": "n8n-nodes-base.Events",
3
- "nodeVersion": "4",
4
- "codexVersion": "4",
3
+ "nodeVersion": "5",
4
+ "codexVersion": "5",
5
5
  "categories": [
6
6
  "Miscellaneous"
7
7
  ],
@@ -8,7 +8,7 @@ class GetSegmentUsers {
8
8
  name: 'getSegmentUsers',
9
9
  icon: 'file:getSegmentUsers.svg',
10
10
  group: ['transform'],
11
- version: 1.2,
11
+ version: [2, 3],
12
12
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
13
  description: 'Node to get users based on some conditions',
14
14
  defaults: {
@@ -31,30 +31,17 @@ class GetSegmentUsers {
31
31
  },
32
32
  properties: [
33
33
  {
34
- displayName: 'Resource',
35
- name: 'resource',
36
- type: 'options',
37
- noDataExpression: true,
38
- options: [
39
- {
40
- name: 'Get Users of a Segment',
41
- value: 'segmentUsers',
42
- },
43
- ],
44
- default: 'segmentUsers',
34
+ displayName: 'Conditions',
35
+ name: 'conditions',
36
+ type: 'json',
37
+ default: '{}',
38
+ description: 'Conditions as JSON',
45
39
  },
46
40
  {
47
41
  displayName: 'Operation',
48
42
  name: 'operation',
49
43
  type: 'options',
50
44
  noDataExpression: true,
51
- displayOptions: {
52
- show: {
53
- resource: [
54
- 'segmentUsers',
55
- ],
56
- },
57
- },
58
45
  options: [
59
46
  {
60
47
  name: 'Post',
@@ -72,13 +59,6 @@ class GetSegmentUsers {
72
59
  ],
73
60
  default: 'post',
74
61
  },
75
- {
76
- displayName: 'Conditions',
77
- name: 'conditions',
78
- type: 'json',
79
- default: '{}',
80
- description: 'Conditions as JSON',
81
- },
82
62
  ]
83
63
  };
84
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GetSegmentUsers.node.js","sourceRoot":"","sources":["../../../nodes/GetSegmentUsers/GetSegmentUsers.node.ts"],"names":[],"mappings":";;;AACA,MAAa,eAAe;IAA5B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,8BAA8B;YAC3C,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE;gBACT,IAAI,EAAE,+BAA+B;aACrC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,wBAAwB;4BAC9B,KAAK,EAAE,cAAc;yBACrB;qBACD;oBACD,OAAO,EAAE,cAAc;iBACvB;gBAED;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE;gCACT,cAAc;6BACd;yBACD;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,MAAM;4BACb,MAAM,EAAE,wBAAwB;4BAChC,WAAW,EAAE,iDAAiD;4BAC9D,OAAO,EAAE;gCACR,OAAO,EAAE;oCACR,MAAM,EAAE,MAAM;oCACd,GAAG,EAAE,wBAAwB;oCAC7B,IAAI,EAAE,2CAA2C;iCACjD;6BACD;yBACD;qBACD;oBACD,OAAO,EAAE,MAAM;iBACf;gBACD;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,oBAAoB;iBACjC;aAED;SACD,CAAC;IACH,CAAC;CAAA;AAjFD,0CAiFC"}
1
+ {"version":3,"file":"GetSegmentUsers.node.js","sourceRoot":"","sources":["../../../nodes/GetSegmentUsers/GetSegmentUsers.node.ts"],"names":[],"mappings":";;;AACA,MAAa,eAAe;IAA5B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,8BAA8B;YAC3C,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE;gBACT,IAAI,EAAE,+BAA+B;aACrC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBAEX;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,oBAAoB;iBACjC;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,MAAM;4BACb,MAAM,EAAE,wBAAwB;4BAChC,WAAW,EAAE,iDAAiD;4BAC9D,OAAO,EAAE;gCACR,OAAO,EAAE;oCACR,MAAM,EAAE,MAAM;oCACd,GAAG,EAAE,wBAAwB;oCAC7B,IAAI,EAAE,2CAA2C;iCACjD;6BACD;yBACD;qBACD;oBACD,OAAO,EAAE,MAAM;iBACf;aACD;SACD,CAAC;IACH,CAAC;CAAA;AA5DD,0CA4DC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "node": "n8n-nodes-base.GetSegmentUsers",
3
- "nodeVersion": "1.2",
4
- "codexVersion": "1.2",
3
+ "nodeVersion": "3",
4
+ "codexVersion": "3",
5
5
  "categories": [
6
6
  "Miscellaneous"
7
7
  ],
@@ -1,4 +1,5 @@
1
- import { INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import { INodeType, INodeTypeDescription, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
2
  export declare class HasConditions implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
4
5
  }
@@ -8,7 +8,7 @@ class HasConditions {
8
8
  name: 'hasConditions',
9
9
  icon: 'file:HasConditions.svg',
10
10
  group: ['transform'],
11
- version: 1.1,
11
+ version: 2,
12
12
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
13
  description: 'Node to check user conditions',
14
14
  defaults: {
@@ -30,6 +30,26 @@ class HasConditions {
30
30
  },
31
31
  },
32
32
  properties: [
33
+ {
34
+ displayName: 'Users',
35
+ name: 'users',
36
+ type: 'string',
37
+ default: '{{ $(previousNodename).all() }}',
38
+ placeholder: 'users List',
39
+ routing: {
40
+ send: {
41
+ property: 'users',
42
+ type: 'body',
43
+ },
44
+ },
45
+ },
46
+ {
47
+ displayName: 'Conditions',
48
+ name: 'conditions',
49
+ type: 'json',
50
+ default: '{}',
51
+ description: 'Conditions as JSON',
52
+ },
33
53
  {
34
54
  displayName: 'Resource',
35
55
  name: 'resource',
@@ -71,16 +91,49 @@ class HasConditions {
71
91
  ],
72
92
  default: 'post',
73
93
  },
74
- {
75
- displayName: 'Conditions',
76
- name: 'conditions',
77
- type: 'json',
78
- default: '{}',
79
- description: 'Conditions as JSON',
80
- },
81
94
  ]
82
95
  };
83
96
  }
97
+ async execute() {
98
+ const users = this.getNodeParameter('users', 0);
99
+ const conditions = this.getNodeParameter('conditions', 0);
100
+ let usersId = [];
101
+ const apiUrl = 'https://cdp.novin.marketing/api/users/matchUsersBatch';
102
+ const responseData = [];
103
+ for (const user of users) {
104
+ if ('_id' in user.json) {
105
+ usersId.push({ "userId": user.json._id });
106
+ }
107
+ else if ('body' in user.json && '_id' in user.json.body) {
108
+ usersId.push({ "userId": user.json.body._id });
109
+ }
110
+ else {
111
+ console.log('Invalid user format');
112
+ }
113
+ }
114
+ const requestBody = {
115
+ usersId: usersId,
116
+ conditions: conditions
117
+ };
118
+ const options = {
119
+ method: 'POST',
120
+ url: apiUrl,
121
+ body: requestBody,
122
+ headers: {
123
+ 'Accept': 'application/json',
124
+ 'Content-Type': 'application/json',
125
+ },
126
+ json: true,
127
+ };
128
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
129
+ if (Array.isArray(response)) {
130
+ responseData.push(...response);
131
+ }
132
+ else {
133
+ responseData.push(response);
134
+ }
135
+ return [this.helpers.returnJsonArray(responseData)];
136
+ }
84
137
  }
85
138
  exports.HasConditions = HasConditions;
86
139
  //# sourceMappingURL=HasConditions.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HasConditions.node.js","sourceRoot":"","sources":["../../../nodes/HasConditions/HasConditions.node.ts"],"names":[],"mappings":";;;AACA,MAAa,aAAa;IAA1B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,6BAA6B;YAC1C,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE;gBACT,IAAI,EAAE,uBAAuB;aAC7B;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,sBAAsB;4BAC5B,KAAK,EAAE,eAAe;yBACtB;qBACD;oBACD,OAAO,EAAE,eAAe;iBACxB;gBAED;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE;gCACT,eAAe;6BACf;yBACD;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,MAAM;4BACb,MAAM,EAAE,uBAAuB;4BAC/B,OAAO,EAAE;gCACR,OAAO,EAAE;oCACR,MAAM,EAAE,MAAM;oCACd,GAAG,EAAE,kBAAkB;oCACvB,IAAI,EAAE,2CAA2C;iCACjD;6BACD;yBACD;qBACD;oBACD,OAAO,EAAE,MAAM;iBACf;gBACD;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,oBAAoB;iBACjC;aAED;SACD,CAAC;IACH,CAAC;CAAA;AAhFD,sCAgFC"}
1
+ {"version":3,"file":"HasConditions.node.js","sourceRoot":"","sources":["../../../nodes/HasConditions/HasConditions.node.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "node": "n8n-nodes-base.HasConditions",
3
- "nodeVersion": "1.2",
4
- "codexVersion": "1.2",
3
+ "nodeVersion": "2",
4
+ "codexVersion": "2",
5
5
  "categories": [
6
6
  "Miscellaneous"
7
7
  ],
@@ -1,4 +1,5 @@
1
- import { INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import { INodeType, INodeTypeDescription, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
2
  export declare class Items implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
4
5
  }
@@ -8,7 +8,7 @@ class Items {
8
8
  name: 'items',
9
9
  icon: 'file:Items.svg',
10
10
  group: ['transform'],
11
- version: 1,
11
+ version: [1, 2],
12
12
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
13
  description: 'Node for Items',
14
14
  defaults: {
@@ -22,65 +22,91 @@ class Items {
22
22
  required: true,
23
23
  },
24
24
  ],
25
- requestDefaults: {
26
- baseURL: 'https://cdp.novin.marketing/api',
27
- headers: {
28
- Accept: 'application/json',
29
- 'Content-Type': 'application/json',
30
- },
31
- },
32
25
  properties: [
33
26
  {
34
- displayName: 'Resource',
35
- name: 'resource',
36
- type: 'options',
37
- noDataExpression: true,
38
- options: [
39
- {
40
- name: 'Get An Item',
41
- value: 'NovinGetAnItem',
27
+ displayName: 'Users',
28
+ name: 'users',
29
+ type: 'string',
30
+ default: '{{ $(previousNodename).all() }}',
31
+ placeholder: 'users _id',
32
+ routing: {
33
+ send: {
34
+ property: 'users',
35
+ type: 'body',
42
36
  },
43
- ],
44
- default: 'NovinGetAnItem',
37
+ },
45
38
  },
46
39
  {
47
- displayName: 'Operation',
48
- name: 'operation',
49
- type: 'options',
50
- noDataExpression: true,
51
- displayOptions: {
52
- show: {
53
- resource: [
54
- 'NovinGetAnItem',
55
- ],
40
+ displayName: 'Items ID',
41
+ name: 'items',
42
+ type: 'string',
43
+ default: '{{ $(previousNodename).item.json.firstName.value }}',
44
+ placeholder: 'items List',
45
+ routing: {
46
+ send: {
47
+ property: 'itemsId',
48
+ type: 'body',
56
49
  },
57
50
  },
58
- options: [
59
- {
60
- name: 'Get',
61
- value: 'get',
62
- action: 'Get an item',
63
- routing: {
64
- request: {
65
- method: 'GET',
66
- url: '=/items/byId/{{$parameter["Item_id"]}}',
67
- },
68
- },
69
- },
70
- ],
71
- default: 'get',
72
51
  },
73
52
  {
74
- displayName: 'Item ID',
75
- name: 'Item_id',
76
- type: 'string',
77
- default: '',
78
- placeholder: 'ID of the item',
79
- required: true,
53
+ displayName: 'Batch Size',
54
+ name: 'batchSize',
55
+ type: 'number',
56
+ default: 100,
57
+ description: 'Number of messages to accumulate before sending a batch',
80
58
  },
81
59
  ],
82
60
  };
83
61
  }
62
+ async execute() {
63
+ const users = this.getNodeParameter('users', 0);
64
+ const batchSize = this.getNodeParameter('batchSize', 0);
65
+ const parameters = this.getNode().parameters;
66
+ let itemexpression = parameters.items;
67
+ if (itemexpression.startsWith('=')) {
68
+ itemexpression = itemexpression.substring(1);
69
+ }
70
+ const responseData = [];
71
+ const regex = /{{\s*\$\(.*?\)\.item\.json\.(.*?)\s*}}/g;
72
+ if (regex.exec(itemexpression) !== null)
73
+ itemexpression = itemexpression.trim();
74
+ const apiUrl = 'https://cdp.novin.marketing/api/items/getItemsById';
75
+ let j = 0;
76
+ let itemsId = [];
77
+ for (let i = 0; i < users.length; i += batchSize) {
78
+ const batchUsers = users.slice(i, i + batchSize);
79
+ for (let k = 0; k < batchUsers.length; k++) {
80
+ let itemId;
81
+ let expressionValue = this.evaluateExpression(itemexpression, j);
82
+ itemId = expressionValue;
83
+ j++;
84
+ itemsId.push(itemId);
85
+ }
86
+ const requestBody = {
87
+ itemsId: itemsId,
88
+ };
89
+ const options = {
90
+ method: 'POST',
91
+ url: apiUrl,
92
+ body: requestBody,
93
+ headers: {
94
+ 'Accept': 'application/json',
95
+ 'Content-Type': 'application/json',
96
+ },
97
+ json: true,
98
+ };
99
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
100
+ if (Array.isArray(response)) {
101
+ responseData.push(...response);
102
+ }
103
+ else {
104
+ responseData.push(response);
105
+ }
106
+ }
107
+ const wrappedResponseData = responseData.map(item => ({ json: { response: item } }));
108
+ return [wrappedResponseData];
109
+ }
84
110
  }
85
111
  exports.Items = Items;
86
112
  //# sourceMappingURL=Items.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Items.node.js","sourceRoot":"","sources":["../../../nodes/Items/Items.node.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAAlB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE;gBACT,IAAI,EAAE,aAAa;aACnB;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,aAAa;4BACnB,KAAK,EAAE,gBAAgB;yBACvB;qBACD;oBACD,OAAO,EAAE,gBAAgB;iBACzB;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE;gCACT,gBAAgB;6BAChB;yBACD;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,KAAK;4BACZ,MAAM,EAAE,aAAa;4BACrB,OAAO,EAAE;gCACR,OAAO,EAAE;oCACR,MAAM,EAAE,KAAK;oCACb,GAAG,EAAE,wCAAwC;iCAC7C;6BACD;yBACD;qBACD;oBACD,OAAO,EAAE,KAAK;iBACd;gBACD;oBACC,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,gBAAgB;oBAC7B,QAAQ,EAAE,IAAI;iBACd;aACD;SACD,CAAC;IACH,CAAC;CAAA;AA9ED,sBA8EC"}
1
+ {"version":3,"file":"Items.node.js","sourceRoot":"","sources":["../../../nodes/Items/Items.node.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "node": "n8n-nodes-base.Items",
3
- "nodeVersion": "1.0",
4
- "codexVersion": "1.0",
3
+ "nodeVersion": "2",
4
+ "codexVersion": "2",
5
5
  "categories": [
6
6
  "Miscellaneous"
7
7
  ],
@@ -1,4 +1,5 @@
1
- import { INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import { INodeType, INodeTypeDescription, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
2
  export declare class LinkClickCheck implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
4
5
  }
@@ -133,21 +133,75 @@ class LinkClickCheck {
133
133
  default: 'post',
134
134
  },
135
135
  {
136
- displayName: 'Content ID',
137
- name: 'contentId',
136
+ displayName: 'Content _Id',
137
+ name: 'contentsId',
138
138
  type: 'string',
139
- default: '',
140
- placeholder: 'Enter Content _id',
139
+ default: '{{ $(previousSendNodeName).all() }}',
140
+ placeholder: 'contents List',
141
141
  routing: {
142
142
  send: {
143
- property: 'contentId',
143
+ property: 'contentsId',
144
144
  type: 'body',
145
145
  },
146
146
  },
147
147
  },
148
+ {
149
+ displayName: 'Batch Size',
150
+ name: 'batchSize',
151
+ type: 'number',
152
+ default: 100,
153
+ description: 'Number of messages to accumulate before sending a batch',
154
+ },
148
155
  ],
149
156
  };
150
157
  }
158
+ async execute() {
159
+ const contentsId = this.getNodeParameter('contentsId', 0);
160
+ const batchSize = this.getNodeParameter('batchSize', 0);
161
+ const resource = this.getNodeParameter('resource', 0);
162
+ const responseData = [];
163
+ for (let i = 0; i < contentsId.length; i += batchSize) {
164
+ const batchContents = contentsId.slice(i, i + batchSize);
165
+ let contents = [];
166
+ for (const content of batchContents) {
167
+ if (!content || !content.json.response)
168
+ contents.push('');
169
+ else
170
+ contents.push(content.json.response);
171
+ }
172
+ let body = {
173
+ contents,
174
+ };
175
+ let url = 'https://cdp.novin.marketing/api/users/clickCountBatch';
176
+ if (resource === 'SMSLinkClickCheck') {
177
+ body.contentType = 'sms';
178
+ }
179
+ else if (resource === 'EmailLinkClickCheck') {
180
+ body.contentType = 'email';
181
+ }
182
+ else if (resource === 'WebPushLinkClickCheck') {
183
+ body.contentType = 'webPush';
184
+ }
185
+ const options = {
186
+ method: 'POST',
187
+ url: url,
188
+ body: body,
189
+ headers: {
190
+ 'Accept': 'application/json',
191
+ 'Content-Type': 'application/json',
192
+ },
193
+ json: true,
194
+ };
195
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
196
+ if (Array.isArray(response)) {
197
+ responseData.push(...response);
198
+ }
199
+ else {
200
+ responseData.push(response);
201
+ }
202
+ }
203
+ return [this.helpers.returnJsonArray(responseData)];
204
+ }
151
205
  }
152
206
  exports.LinkClickCheck = LinkClickCheck;
153
207
  //# sourceMappingURL=LinkClickCheck.node.js.map