n8n-nodes-novinmarketing 0.3.1 → 0.3.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.
@@ -1,221 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SendSmsBatch = void 0;
4
- class SendSmsBatch {
5
- constructor() {
6
- this.description = {
7
- displayName: 'Novin Send Sms Batch',
8
- name: 'sendSmsBatch',
9
- icon: 'file:SendSms.svg',
10
- group: ['transform'],
11
- version: [1],
12
- subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
- description: 'Node to Send Sms In batch',
14
- defaults: {
15
- name: 'Novin Send Sms Batch',
16
- },
17
- inputs: ['main'],
18
- outputs: ['main'],
19
- credentials: [
20
- {
21
- name: 'novinMarketingApi',
22
- required: true,
23
- },
24
- ],
25
- requestDefaults: {
26
- baseURL: 'https://cdp.novin.marketing/api',
27
- headers: {
28
- Accept: 'application/json',
29
- 'Content-Type': 'application/json',
30
- },
31
- },
32
- properties: [
33
- {
34
- displayName: 'Users',
35
- name: 'users',
36
- type: 'string',
37
- default: '{{ $(previousNodename).all() }}',
38
- placeholder: 'users _id',
39
- routing: {
40
- send: {
41
- property: 'users',
42
- type: 'body',
43
- },
44
- },
45
- },
46
- {
47
- displayName: 'Sms Name',
48
- name: 'smsName',
49
- type: 'string',
50
- default: '',
51
- placeholder: 'Name of the SMS Campaign',
52
- routing: {
53
- send: {
54
- property: 'smsName',
55
- type: 'body',
56
- },
57
- },
58
- },
59
- {
60
- displayName: 'Sms Message',
61
- name: 'text',
62
- type: 'string',
63
- default: '{{ $(previousNodename).item.json.firstName.value }}',
64
- placeholder: 'Enter Sms text',
65
- routing: {
66
- send: {
67
- property: 'text',
68
- type: 'body',
69
- },
70
- },
71
- },
72
- {
73
- displayName: 'Once Per Mobile Number',
74
- name: 'oncePerMobileNumber',
75
- type: 'boolean',
76
- default: false,
77
- routing: {
78
- send: {
79
- property: 'once',
80
- type: 'body',
81
- value: '={{$value}}',
82
- },
83
- },
84
- },
85
- {
86
- displayName: 'Dont Disturb',
87
- name: 'dontDisturb',
88
- type: 'boolean',
89
- default: true,
90
- },
91
- {
92
- displayName: 'Batch Size',
93
- name: 'batchSize',
94
- type: 'number',
95
- default: 100,
96
- description: 'Number of messages to accumulate before sending a batch',
97
- },
98
- ],
99
- };
100
- }
101
- async execute() {
102
- const users = this.getNodeParameter('users', 0);
103
- const dontDisturb = this.getNodeParameter('dontDisturb', 0);
104
- const oncePerMobileNumber = this.getNodeParameter('oncePerMobileNumber', 0);
105
- const parameters = this.getNode().parameters;
106
- let textTemplate = parameters.text;
107
- if (textTemplate.startsWith('=')) {
108
- textTemplate = textTemplate.substring(1);
109
- }
110
- const smsName = this.getNodeParameter('smsName', 0);
111
- const batchSize = this.getNodeParameter('batchSize', 0);
112
- if (dontDisturb) {
113
- const currentTime = new Date();
114
- const currentHour = currentTime.getHours();
115
- if (currentHour >= 22 || currentHour < 9) {
116
- let waitTime = 0;
117
- if (currentHour >= 22) {
118
- waitTime = (24 - currentHour + 9) * 60 * 60 * 1000 - currentTime.getMinutes() * 60 * 1000 - currentTime.getSeconds() * 1000 - currentTime.getMilliseconds();
119
- }
120
- else {
121
- waitTime = (9 - currentHour) * 60 * 60 * 1000 - currentTime.getMinutes() * 60 * 1000 - currentTime.getSeconds() * 1000 - currentTime.getMilliseconds();
122
- }
123
- await new Promise(resolve => setTimeout(resolve, waitTime));
124
- }
125
- }
126
- const apiUrl = 'https://cdp.novin.marketing/api/users/sendSMSBatch';
127
- const responseData = [];
128
- const regex = /{{\s*\$\(.*?\)\.item\.json\.(.*?)\s*}}/g;
129
- const expressions = [];
130
- let match;
131
- while ((match = regex.exec(textTemplate)) !== null) {
132
- expressions.push(match[0].trim());
133
- }
134
- let usersAndText = [];
135
- let requestBody;
136
- if (typeof users == 'string') {
137
- let pText = textTemplate;
138
- expressions.forEach(expression => {
139
- let expressionValue = this.evaluateExpression(expression, 0);
140
- if (!expressionValue)
141
- expressionValue = "";
142
- pText = pText.replace(expression, expressionValue);
143
- });
144
- requestBody = {
145
- usersAndText: users,
146
- text: pText,
147
- smsName: smsName,
148
- once: oncePerMobileNumber
149
- };
150
- const options = {
151
- method: 'POST',
152
- url: apiUrl,
153
- body: requestBody,
154
- headers: {
155
- 'Accept': 'application/json',
156
- 'Content-Type': 'application/json',
157
- },
158
- json: true,
159
- };
160
- const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
161
- if (Array.isArray(response)) {
162
- responseData.push(...response);
163
- }
164
- else {
165
- responseData.push(response);
166
- }
167
- return [this.helpers.returnJsonArray(responseData)];
168
- }
169
- else {
170
- let j = 0;
171
- for (let i = 0; i < users.length; i += batchSize) {
172
- const batchUsers = users.slice(i, i + batchSize);
173
- usersAndText = [];
174
- for (const user of batchUsers) {
175
- let personalizedText = textTemplate;
176
- expressions.forEach(expression => {
177
- let expressionValue = this.evaluateExpression(expression, j);
178
- if (!expressionValue)
179
- expressionValue = "";
180
- personalizedText = personalizedText.replace(expression, expressionValue);
181
- });
182
- j++;
183
- if ('_id' in user.json) {
184
- usersAndText.push({ "userId": user.json._id, "text": personalizedText });
185
- }
186
- else if ('body' in user.json && '_id' in user.json.body) {
187
- usersAndText.push({ "userId": user.json.body._id, "text": personalizedText });
188
- }
189
- else {
190
- console.log('Invalid user format');
191
- }
192
- }
193
- requestBody = {
194
- usersAndText: usersAndText,
195
- smsName: smsName,
196
- once: oncePerMobileNumber
197
- };
198
- const options = {
199
- method: 'POST',
200
- url: apiUrl,
201
- body: requestBody,
202
- headers: {
203
- 'Accept': 'application/json',
204
- 'Content-Type': 'application/json',
205
- },
206
- json: true,
207
- };
208
- const response = await this.helpers.httpRequestWithAuthentication.call(this, 'novinMarketingApi', options);
209
- if (Array.isArray(response)) {
210
- responseData.push(...response);
211
- }
212
- else {
213
- responseData.push(response);
214
- }
215
- }
216
- return [this.helpers.returnJsonArray(responseData)];
217
- }
218
- }
219
- }
220
- exports.SendSmsBatch = SendSmsBatch;
221
- //# sourceMappingURL=SendSmsBatch.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SendSmsBatch.node.js","sourceRoot":"","sources":["../../../nodes/SendSmsBatch/SendSmsBatch.node.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- {
2
- "node": "n8n-nodes-base.SendSmsBatch",
3
- "nodeVersion": "1",
4
- "codexVersion": "1",
5
- "categories": [
6
- "Miscellaneous"
7
- ],
8
- "resources": {
9
- "credentialDocumentation": [
10
- {
11
- "url": ""
12
- }
13
- ],
14
- "primaryDocumentation": [
15
- {
16
- "url": ""
17
- }
18
- ]
19
- }
20
- }