n8n-nodes-genisys-whatsapp 0.1.0 → 0.1.1

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.
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhatsAppSender = void 0;
4
+ class WhatsAppSender {
5
+ constructor() {
6
+ this.description = {
7
+ displayName: 'WhatsApp Sender',
8
+ name: 'whatsappSender',
9
+ icon: 'file:whatsapp.svg',
10
+ group: ['transform'],
11
+ version: 1,
12
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
+ description: 'Send messages via WhatsApp API',
14
+ defaults: {
15
+ name: 'WhatsApp Sender',
16
+ },
17
+ inputs: ['main'],
18
+ outputs: ['main'],
19
+ credentials: [
20
+ {
21
+ name: 'whatsappApiCredentials',
22
+ required: true,
23
+ },
24
+ ],
25
+ properties: [
26
+ {
27
+ displayName: 'Action',
28
+ name: 'action',
29
+ type: 'options',
30
+ options: [
31
+ {
32
+ name: 'Send Message',
33
+ value: 'sendMessage',
34
+ },
35
+ ],
36
+ default: 'sendMessage',
37
+ noDataExpression: true,
38
+ },
39
+ {
40
+ displayName: 'Session ID',
41
+ name: 'session',
42
+ type: 'string',
43
+ default: 'Genisys',
44
+ description: 'The session ID of the WhatsApp instance.',
45
+ required: true,
46
+ displayOptions: {
47
+ show: {
48
+ action: [
49
+ 'sendMessage',
50
+ ],
51
+ },
52
+ },
53
+ },
54
+ {
55
+ displayName: 'Phone Number',
56
+ name: 'phone',
57
+ type: 'string',
58
+ default: '',
59
+ placeholder: '5511999999999',
60
+ description: 'The destination phone number with DDI and DDD.',
61
+ required: true,
62
+ displayOptions: {
63
+ show: {
64
+ action: [
65
+ 'sendMessage',
66
+ ],
67
+ },
68
+ },
69
+ },
70
+ {
71
+ displayName: 'Message Type',
72
+ name: 'messageType',
73
+ type: 'options',
74
+ options: [
75
+ {
76
+ name: 'Text',
77
+ value: 'text',
78
+ },
79
+ {
80
+ name: 'Image',
81
+ value: 'image',
82
+ },
83
+ {
84
+ name: 'Video',
85
+ value: 'video',
86
+ },
87
+ {
88
+ name: 'Audio',
89
+ value: 'audio',
90
+ },
91
+ {
92
+ name: 'PTT (Voice Note)',
93
+ value: 'ptt',
94
+ },
95
+ {
96
+ name: 'Document',
97
+ value: 'document',
98
+ },
99
+ {
100
+ name: 'Location',
101
+ value: 'location',
102
+ },
103
+ ],
104
+ default: 'text',
105
+ description: 'The type of message to send.',
106
+ displayOptions: {
107
+ show: {
108
+ action: [
109
+ 'sendMessage',
110
+ ],
111
+ },
112
+ },
113
+ },
114
+ {
115
+ displayName: 'Message',
116
+ name: 'message',
117
+ type: 'string',
118
+ typeOptions: {
119
+ rows: 4,
120
+ },
121
+ default: '',
122
+ description: 'The text message to send.',
123
+ displayOptions: {
124
+ show: {
125
+ action: [
126
+ 'sendMessage',
127
+ ],
128
+ messageType: [
129
+ 'text',
130
+ ],
131
+ },
132
+ },
133
+ },
134
+ {
135
+ displayName: 'Media URL',
136
+ name: 'mediaUrl',
137
+ type: 'string',
138
+ default: '',
139
+ description: 'URL of the media file.',
140
+ displayOptions: {
141
+ show: {
142
+ action: [
143
+ 'sendMessage',
144
+ ],
145
+ messageType: [
146
+ 'image',
147
+ 'video',
148
+ 'audio',
149
+ 'ptt',
150
+ 'document',
151
+ ],
152
+ },
153
+ },
154
+ },
155
+ {
156
+ displayName: 'Caption',
157
+ name: 'caption',
158
+ type: 'string',
159
+ default: '',
160
+ description: 'Caption for the media.',
161
+ displayOptions: {
162
+ show: {
163
+ action: [
164
+ 'sendMessage',
165
+ ],
166
+ messageType: [
167
+ 'image',
168
+ 'video',
169
+ 'document',
170
+ ],
171
+ },
172
+ },
173
+ },
174
+ {
175
+ displayName: 'Latitude',
176
+ name: 'latitude',
177
+ type: 'string',
178
+ default: '',
179
+ displayOptions: {
180
+ show: {
181
+ action: [
182
+ 'sendMessage',
183
+ ],
184
+ messageType: [
185
+ 'location',
186
+ ],
187
+ },
188
+ },
189
+ },
190
+ {
191
+ displayName: 'Longitude',
192
+ name: 'longitude',
193
+ type: 'string',
194
+ default: '',
195
+ displayOptions: {
196
+ show: {
197
+ action: [
198
+ 'sendMessage',
199
+ ],
200
+ messageType: [
201
+ 'location',
202
+ ],
203
+ },
204
+ },
205
+ },
206
+ {
207
+ displayName: 'Title',
208
+ name: 'title',
209
+ type: 'string',
210
+ default: '',
211
+ displayOptions: {
212
+ show: {
213
+ action: [
214
+ 'sendMessage',
215
+ ],
216
+ messageType: [
217
+ 'location',
218
+ ],
219
+ },
220
+ },
221
+ },
222
+ {
223
+ displayName: 'Description',
224
+ name: 'description',
225
+ type: 'string',
226
+ default: '',
227
+ displayOptions: {
228
+ show: {
229
+ action: [
230
+ 'sendMessage',
231
+ ],
232
+ messageType: [
233
+ 'location',
234
+ ],
235
+ },
236
+ },
237
+ },
238
+ ],
239
+ };
240
+ }
241
+ async execute() {
242
+ const items = this.getInputData();
243
+ const returnData = [];
244
+ const length = items.length;
245
+ const qs = {};
246
+ let responseData;
247
+ const credentials = await this.getCredentials('whatsappApiCredentials');
248
+ const baseUrl = credentials.baseUrl.replace(/\/$/, '');
249
+ const apiToken = credentials.apiToken;
250
+ for (let i = 0; i < length; i++) {
251
+ try {
252
+ const action = this.getNodeParameter('action', i);
253
+ const session = this.getNodeParameter('session', i);
254
+ const phone = this.getNodeParameter('phone', i);
255
+ const messageType = this.getNodeParameter('messageType', i);
256
+ if (action === 'sendMessage') {
257
+ const body = {
258
+ number: phone,
259
+ };
260
+ if (messageType === 'text') {
261
+ body.text = this.getNodeParameter('message', i);
262
+ Object.assign(body, { body: this.getNodeParameter('message', i) });
263
+ }
264
+ else if (['image', 'video', 'document'].includes(messageType)) {
265
+ body.mediaUrl = this.getNodeParameter('mediaUrl', i);
266
+ body.caption = this.getNodeParameter('caption', i);
267
+ }
268
+ else if (messageType === 'audio') {
269
+ body.mediaUrl = this.getNodeParameter('mediaUrl', i);
270
+ }
271
+ else if (messageType === 'ptt') {
272
+ body.mediaUrl = this.getNodeParameter('mediaUrl', i);
273
+ body.ptt = true;
274
+ }
275
+ else if (messageType === 'location') {
276
+ body.latitude = this.getNodeParameter('latitude', i);
277
+ body.longitude = this.getNodeParameter('longitude', i);
278
+ body.title = this.getNodeParameter('title', i);
279
+ body.description = this.getNodeParameter('description', i);
280
+ }
281
+ const options = {
282
+ headers: {
283
+ 'Authorization': `Bearer ${apiToken}`,
284
+ 'Content-Type': 'application/json',
285
+ },
286
+ method: 'POST',
287
+ body: body,
288
+ uri: `${baseUrl}/api/send`,
289
+ json: true,
290
+ };
291
+ Object.assign(body, { session: session });
292
+ responseData = await this.helpers.request(options);
293
+ }
294
+ if (Array.isArray(responseData)) {
295
+ returnData.push.apply(returnData, responseData);
296
+ }
297
+ else if (responseData !== undefined) {
298
+ returnData.push({ json: responseData });
299
+ }
300
+ }
301
+ catch (error) {
302
+ if (this.continueOnFail()) {
303
+ returnData.push({ json: { error: error.message } });
304
+ continue;
305
+ }
306
+ throw error;
307
+ }
308
+ }
309
+ return [returnData];
310
+ }
311
+ }
312
+ exports.WhatsAppSender = WhatsAppSender;
313
+ //# sourceMappingURL=WhatsAppSender.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhatsAppSender.node.js","sourceRoot":"","sources":["../../../nodes/WhatsAppSender/WhatsAppSender.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32" fill="none">
2
+ <path fill="#25D366" d="M16 2.001c-7.732 0-14 6.268-14 14 0 2.483.649 4.814 1.782 6.862L2 29.999l7.352-1.928A13.914 13.914 0 0 0 16 30.001c7.732 0 14-6.268 14-14s-6.268-14-14-14zm0 25.564c-2.31 0-4.502-.693-6.353-1.884l-.454-.296-4.661 1.222 1.246-4.545-.286-.467A11.516 11.516 0 0 1 4.436 16.001c0-6.388 5.183-11.564 11.564-11.564 6.382 0 11.564 5.176 11.564 11.564 0 6.388-5.182 11.564-11.564 11.564z"/>
3
+ </svg>
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhatsAppTrigger = void 0;
4
+ class WhatsAppTrigger {
5
+ constructor() {
6
+ this.description = {
7
+ displayName: 'WhatsApp Trigger',
8
+ name: 'whatsappTrigger',
9
+ icon: 'file:whatsapp.svg',
10
+ group: ['trigger'],
11
+ version: 1,
12
+ description: 'Starts the workflow when a WhatsApp message is received',
13
+ defaults: {
14
+ name: 'WhatsApp Trigger',
15
+ },
16
+ inputs: [],
17
+ outputs: ['main'],
18
+ credentials: [],
19
+ webhooks: [
20
+ {
21
+ name: 'default',
22
+ httpMethod: 'POST',
23
+ responseMode: 'onReceived',
24
+ path: 'whatsapp-webhook',
25
+ },
26
+ ],
27
+ properties: [
28
+ {
29
+ displayName: 'Events',
30
+ name: 'events',
31
+ type: 'options',
32
+ options: [
33
+ {
34
+ name: 'On Message Received',
35
+ value: 'onMessageReceived',
36
+ },
37
+ ],
38
+ default: 'onMessageReceived',
39
+ description: 'The event to listen to.',
40
+ },
41
+ {
42
+ displayName: 'Filter by Type',
43
+ name: 'filterByType',
44
+ type: 'multiOptions',
45
+ options: [
46
+ {
47
+ name: 'Text',
48
+ value: 'text',
49
+ },
50
+ {
51
+ name: 'Audio',
52
+ value: 'audio',
53
+ },
54
+ {
55
+ name: 'Image',
56
+ value: 'image',
57
+ },
58
+ {
59
+ name: 'Video',
60
+ value: 'video',
61
+ },
62
+ {
63
+ name: 'Document',
64
+ value: 'document',
65
+ },
66
+ {
67
+ name: 'Location',
68
+ value: 'location',
69
+ },
70
+ {
71
+ name: 'Sticker',
72
+ value: 'sticker',
73
+ },
74
+ {
75
+ name: 'Call',
76
+ value: 'call',
77
+ },
78
+ ],
79
+ default: [],
80
+ description: 'Select the message types to trigger on. If empty, all types will trigger.',
81
+ },
82
+ {
83
+ displayName: 'Filter by Source',
84
+ name: 'filterBySource',
85
+ type: 'options',
86
+ options: [
87
+ {
88
+ name: 'All',
89
+ value: 'all',
90
+ },
91
+ {
92
+ name: 'Private Chats Only',
93
+ value: 'private',
94
+ },
95
+ {
96
+ name: 'Groups Only',
97
+ value: 'group',
98
+ },
99
+ ],
100
+ default: 'all',
101
+ description: 'Filter messages from private chats or groups.',
102
+ },
103
+ {
104
+ displayName: 'Ignore My Own Messages',
105
+ name: 'ignoreOwnMessages',
106
+ type: 'boolean',
107
+ default: true,
108
+ description: 'Whether to ignore messages sent by you.',
109
+ },
110
+ ],
111
+ };
112
+ }
113
+ async webhook() {
114
+ const bodyData = this.getBodyData();
115
+ const filterByType = this.getNodeParameter('filterByType');
116
+ const filterBySource = this.getNodeParameter('filterBySource');
117
+ const ignoreOwnMessages = this.getNodeParameter('ignoreOwnMessages');
118
+ const message = bodyData.message;
119
+ const chat = bodyData.chat;
120
+ if (!message) {
121
+ return {};
122
+ }
123
+ if (filterByType.length > 0) {
124
+ const type = message.type;
125
+ let checkType = type;
126
+ if (checkType === 'ptt')
127
+ checkType = 'audio';
128
+ if (!filterByType.includes(checkType) && !filterByType.includes(type)) {
129
+ return {};
130
+ }
131
+ }
132
+ const isGroup = chat && chat.isGroup === true;
133
+ if (filterBySource === 'private' && isGroup) {
134
+ return {};
135
+ }
136
+ if (filterBySource === 'group' && !isGroup) {
137
+ return {};
138
+ }
139
+ if (ignoreOwnMessages && message.fromMe === true) {
140
+ return {};
141
+ }
142
+ return {
143
+ workflowData: [
144
+ this.helpers.returnJsonArray(bodyData),
145
+ ],
146
+ };
147
+ }
148
+ }
149
+ exports.WhatsAppTrigger = WhatsAppTrigger;
150
+ //# sourceMappingURL=WhatsAppTrigger.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhatsAppTrigger.node.js","sourceRoot":"","sources":["../../../nodes/WhatsAppTrigger/WhatsAppTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32" fill="none">
2
+ <path fill="#25D366" d="M16 2.001c-7.732 0-14 6.268-14 14 0 2.483.649 4.814 1.782 6.862L2 29.999l7.352-1.928A13.914 13.914 0 0 0 16 30.001c7.732 0 14-6.268 14-14s-6.268-14-14-14zm0 25.564c-2.31 0-4.502-.693-6.353-1.884l-.454-.296-4.661 1.222 1.246-4.545-.286-.467A11.516 11.516 0 0 1 4.436 16.001c0-6.388 5.183-11.564 11.564-11.564 6.382 0 11.564 5.176 11.564 11.564 0 6.388-5.182 11.564-11.564 11.564z"/>
3
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-genisys-whatsapp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Custom n8n node for WhatsApp API",
5
5
  "keywords": [
6
6
  "n8n-community-node-package"
@@ -22,7 +22,8 @@
22
22
  ],
23
23
  "n8n": {
24
24
  "nodes": [
25
- "dist/nodes/WhatsAppApi/WhatsAppApi.node.js"
25
+ "dist/nodes/WhatsAppSender/WhatsAppSender.node.js",
26
+ "dist/nodes/WhatsAppTrigger/WhatsAppTrigger.node.js"
26
27
  ],
27
28
  "credentials": [
28
29
  "dist/credentials/WhatsAppApiCredentials.credentials.js"