@tiledesk/tiledesk-whatsapp-connector 0.1.8 → 0.1.10

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/index.js CHANGED
@@ -12,7 +12,7 @@ const bodyParser = require("body-parser");
12
12
  const appRoot = require('app-root-path');
13
13
  const handlebars = require('handlebars');
14
14
  const fs = require('fs');
15
- //const Path = require('path');
15
+ const path = require('path');
16
16
  //const FormData = require('form-data');
17
17
 
18
18
  // tiledesk clients
@@ -28,6 +28,7 @@ const kvbase_collection = 'kvstore';
28
28
 
29
29
  router.use(bodyParser.json());
30
30
  router.use(bodyParser.urlencoded({ extended: true }));
31
+ router.use(express.static(path.join(__dirname, 'template')));
31
32
 
32
33
  //const TOKEN = process.env.WHATSAPP_TOKEN; // From FB DevX getting started page
33
34
  //const VERIFY_TOKEN = process.env.VERIFY_TOKEN; // Arbitrary, used with webhook configuration in FB DevX
@@ -340,9 +341,9 @@ router.post('/tiledesk', async (req, res) => {
340
341
  let phone_number_id = recipient_id.substring(recipient_id.lastIndexOf("wab-") + 4, recipient_id.lastIndexOf("-"));
341
342
  console.log("(Tiledesk) phone_number_id: ", phone_number_id)
342
343
 
343
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: tiledeskChannelMessage });
344
+ const tlr = new TiledeskWhatsappTranslator();
344
345
 
345
- const whatsappJsonMessage = tlr.toWhatsapp(whatsapp_receiver);
346
+ const whatsappJsonMessage = tlr.toWhatsapp(tiledeskChannelMessage, whatsapp_receiver);
346
347
  console.log("whatsappJsonMessage: ", whatsappJsonMessage);
347
348
 
348
349
  if (whatsappJsonMessage) {
@@ -362,7 +363,7 @@ router.post('/tiledesk', async (req, res) => {
362
363
  })
363
364
  */
364
365
  } else {
365
- console.error("Whatsapp Json Message is mandatory!")
366
+ console.error("Whatsapp Json Message is undefined!")
366
367
  }
367
368
  // richiamo toWhatsapp;
368
369
  // sendMessage
@@ -392,9 +393,15 @@ router.post("/webhook/:project_id", async (req, res) => {
392
393
 
393
394
  console.log("\n***Body: ", JSON.stringify(req.body, null, 2));
394
395
 
396
+ if (req.body.entry[0].changes[0].value.messages[0].type == "system") {
397
+ console.log("Skip system message")
398
+ res.sendStatus(200);
399
+ }
400
+
395
401
  //let originalWhatsappMessage = req.body;
396
402
  let whatsappChannelMessage = req.body.entry[0].changes[0].value.messages[0];
397
403
 
404
+
398
405
  let firstname = req.body.entry[0].changes[0].value.contacts[0].profile.name;
399
406
  console.log("(WAB) firstname: ", firstname)
400
407
 
@@ -423,16 +430,16 @@ router.post("/webhook/:project_id", async (req, res) => {
423
430
 
424
431
  let tiledeskJsonMessage;
425
432
 
426
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
433
+ const tlr = new TiledeskWhatsappTranslator();
427
434
 
428
435
  if ((whatsappChannelMessage.type == 'text')) {
429
436
  console.log("message type text")
430
- tiledeskJsonMessage = tlr.toTiledesk(firstname);
437
+ tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, firstname);
431
438
 
432
439
  }
433
440
  else if (whatsappChannelMessage.type == 'interactive') {
434
441
  console.log("message type interactive")
435
- tiledeskJsonMessage = tlr.toTiledesk(firstname);
442
+ tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, firstname);
436
443
 
437
444
  }
438
445
  else if ((whatsappChannelMessage.type == 'image') || (whatsappChannelMessage.type == 'video') || (whatsappChannelMessage.type == 'document')) {
@@ -449,7 +456,7 @@ router.post("/webhook/:project_id", async (req, res) => {
449
456
  const image_url = await util.uploadMedia(filename, "images");
450
457
  console.log("image_url: ", image_url)
451
458
 
452
- tiledeskJsonMessage = tlr.toTiledesk(firstname, image_url);
459
+ tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, firstname, image_url);
453
460
 
454
461
  }
455
462
 
@@ -462,7 +469,7 @@ router.post("/webhook/:project_id", async (req, res) => {
462
469
  const media_url = await util.uploadMedia(filename, "files");
463
470
  console.log("image_url: ", media_url)
464
471
 
465
- tiledeskJsonMessage = tlr.toTiledesk(firstname, media_url);
472
+ tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, firstname, media_url);
466
473
  }
467
474
 
468
475
  if (whatsappChannelMessage.type == 'document') {
@@ -474,7 +481,7 @@ router.post("/webhook/:project_id", async (req, res) => {
474
481
  const media_url = await util.uploadMedia(filename, "files");
475
482
  console.log("image_url: ", media_url)
476
483
 
477
- tiledeskJsonMessage = tlr.toTiledesk(firstname, media_url);
484
+ tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, firstname, media_url);
478
485
  }
479
486
 
480
487
  } else {
@@ -492,7 +499,7 @@ router.post("/webhook/:project_id", async (req, res) => {
492
499
  }
493
500
 
494
501
  }
495
- res.sendStatus(200);
502
+ res.sendStatus(200);
496
503
  } else {
497
504
  // Return a '404 Not Found' if event is not from a WhatsApp API
498
505
  res.sendStatus(404);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-whatsapp-connector",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Tiledesk Whatsapp connector",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -23,6 +23,8 @@
23
23
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"
24
24
  integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous">
25
25
  </script>
26
+
27
+ <link rel="stylesheet" href="./css/style.css">
26
28
 
27
29
  </head>
28
30
 
@@ -43,7 +45,7 @@
43
45
  <div>
44
46
 
45
47
  <h1 style="margin-top: 0px; margin-bottom: 2px; min-width: 500px;">WhatsApp Business</h1>
46
- <h7 style="color: rgb(140, 140, 140);">by Tiledesk (v. 0.1.8)</h7>
48
+ <h7 style="color: rgb(140, 140, 140);">by Tiledesk (v. 0.1.9)</h7>
47
49
 
48
50
  {{#if wab_token}}
49
51
  <div style="margin-top: 20px;">
@@ -94,9 +96,14 @@
94
96
  <form action="./update" method="post">
95
97
 
96
98
  <div class="form-group" style="width: 490px;">
97
- <label style="margin-bottom: 0px;" for="proxy_url">Webhook Endpoint
98
- <a href="https://gethelp.tiledesk.com/" target="_blank"><span style="margin-left: 10px;"><i class="fa fa-question-circle" style="color: #337ab7;"></i></span></a></label>
99
- <p style="margin-bottom: 5px; font-size: 12px; color: #a7a7a7;">Copy this URL in the Facebook Developer Dashboad. See documentation for more info.</p>
99
+ <label for="proxy_url">Webhook Endpoint
100
+ <span style="margin-left: 10px;">
101
+ <i class="fa fa-question-circle custom-tooltip" style="color: #337ab7;">
102
+ <span class="custom-tooltiptext">This is the endpoint to be reached by WhatsApp. Copy it to the Facebook Developer console in "Callback URL" in Whatsapp Configuration. See documention for more info.</span>
103
+ </i>
104
+ </span>
105
+ </label>
106
+ <!--<p style="margin-bottom: 5px; font-size: 12px; color: #a7a7a7;">Copy this URL in the Facebook Developer Dashboad. See documentation for more info.</p> -->
100
107
  <div style="display: flex; flex-direction: row; justify-content: space-between">
101
108
  <div style="width: 400px;">
102
109
  <input type="text" readonly class="form-control" name="proxy_url" id="proxy_url"
@@ -117,13 +124,26 @@
117
124
  </div>
118
125
 
119
126
  <div class="form-group" style="width: 400px;">
120
- <label for="wab_token">Whatsapp Token</label>
127
+ <label for="wab_token">Whatsapp Token
128
+ <span style="margin-left: 10px;">
129
+ <i class="fa fa-question-circle custom-tooltip" style="color: #337ab7;">
130
+ <span class="custom-tooltiptext">Paste it the permanent WhatsApp Business token. See documention for more info.</span>
131
+ </i>
132
+ </span>
133
+ </label>
121
134
  <input type="text" class="form-control" name="wab_token" value="{{ wab_token }}"
122
135
  placeholder="Enter the Whatsapp Token">
123
136
  </div>
124
137
 
125
138
  <div class="form-group" style="width: 400px;">
126
- <label for="verify_token">Verify Token</label>
139
+ <label for="verify_token">Verify Token
140
+ <span style="margin-left: 10px;">
141
+ <i class="fa fa-question-circle custom-tooltip" style="color: #337ab7;">
142
+ <span class="custom-tooltiptext">This is a verification token of your choice. Copy it to the Facebook Developer console in "Verify Token" in Whatsapp Configuration.
143
+ See documention for more info.</span>
144
+ </i>
145
+ </span>
146
+ </label>
127
147
  <input type="password" class="form-control" name="verify_token" value="{{ verify_token }}"
128
148
  placeholder="Enter your Verify Token">
129
149
  </div>
@@ -0,0 +1,46 @@
1
+ /* Tooltip container */
2
+ .custom-tooltip {
3
+ position: relative;
4
+ display: inline-block;
5
+ }
6
+
7
+ /* Tooltip text */
8
+ .custom-tooltip .custom-tooltiptext {
9
+ visibility: hidden;
10
+ width: 260px;
11
+ background-color: #6e6f70;
12
+ font-size: 13px;
13
+ color: #fff;
14
+ text-align: center;
15
+ padding: 8px 8px;
16
+ border-radius: 6px;
17
+
18
+ /* Position the tooltip text */
19
+ position: absolute;
20
+ z-index: 1;
21
+ bottom: 125%;
22
+ left: 50%;
23
+ margin-left: -130px;
24
+
25
+ /* Fade in tooltip */
26
+ opacity: 0;
27
+ transition: opacity 0.3s;
28
+ }
29
+
30
+ /* Tooltip arrow */
31
+ .custom-tooltip .custom-tooltiptext::after {
32
+ content: "";
33
+ position: absolute;
34
+ top: 100%;
35
+ left: 50%;
36
+ margin-left: -5px;
37
+ border-width: 5px;
38
+ border-style: solid;
39
+ border-color: #555 transparent transparent transparent;
40
+ }
41
+
42
+ /* Show the tooltip text when you mouse over the tooltip container */
43
+ .custom-tooltip:hover .custom-tooltiptext {
44
+ visibility: visible;
45
+ opacity: 1;
46
+ }
@@ -10,16 +10,16 @@ describe('Test Translator\n', function() {
10
10
  it("Translates a TEXT message from Tiledesk to Whatsapp", function() {
11
11
  let tiledeskChannelMessage = {
12
12
  text: 'Test Message',
13
- recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-c7dc-4e62-89b1-ffe9bba7fd59-wab-104777398965560-tel393484506627',
13
+ recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-wab-104777398965560-393484506627',
14
14
  attributes: {
15
15
  userFullname: 'John Doe'
16
16
  }
17
17
  }
18
18
  let whatsapp_receiver = tiledeskChannelMessage.recipient.substring(tiledeskChannelMessage.recipient.lastIndexOf("tel") + 1)
19
19
 
20
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: tiledeskChannelMessage });
20
+ const tlr = new TiledeskWhatsappTranslator();
21
21
  assert(tlr != null);
22
- const whatsappJsonMessage = tlr.toWhatsapp(whatsapp_receiver);
22
+ const whatsappJsonMessage = tlr.toWhatsapp(tiledeskChannelMessage, whatsapp_receiver);
23
23
  assert(whatsappJsonMessage != null);
24
24
  assert(whatsappJsonMessage.messaging_product === TiledeskWhatsappTranslator.WHATSAPP_MESSAGING_PRODUCT);
25
25
  assert(whatsappJsonMessage.to === whatsapp_receiver);
@@ -36,7 +36,7 @@ describe('Test Translator\n', function() {
36
36
  let tiledeskChannelMessage = {
37
37
  text: 'Image Caption', // can be empty --> ""
38
38
  type: 'image',
39
- recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-c7dc-4e62-89b1-ffe9bba7fd59-wab-104777398965560-tel393484506627',
39
+ recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-wab-104777398965560-393484506627',
40
40
  metadata: {
41
41
  src: 'https://fakeimageurl.com/',
42
42
  },
@@ -46,9 +46,9 @@ describe('Test Translator\n', function() {
46
46
  }
47
47
  let whatsapp_receiver = tiledeskChannelMessage.recipient.substring(tiledeskChannelMessage.recipient.lastIndexOf("tel") + 3)
48
48
 
49
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: tiledeskChannelMessage });
49
+ const tlr = new TiledeskWhatsappTranslator();
50
50
  assert(tlr != null);
51
- const whatsappJsonMessage = tlr.toWhatsapp(whatsapp_receiver);
51
+ const whatsappJsonMessage = tlr.toWhatsapp(tiledeskChannelMessage, whatsapp_receiver);
52
52
  assert(whatsappJsonMessage != null);
53
53
  assert(whatsappJsonMessage.messaging_product === TiledeskWhatsappTranslator.WHATSAPP_MESSAGING_PRODUCT);
54
54
  assert(whatsappJsonMessage.to === whatsapp_receiver);
@@ -67,7 +67,7 @@ describe('Test Translator\n', function() {
67
67
  let tiledeskChannelMessage = {
68
68
  text: 'Video Caption', // can be empty --> ""
69
69
  type: 'video',
70
- recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-c7dc-4e62-89b1-ffe9bba7fd59-wab-104777398965560-393484506627',
70
+ recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-wab-104777398965560-393484506627',
71
71
  metadata: {
72
72
  src: 'https://fakevideourl.com/'
73
73
  },
@@ -77,9 +77,9 @@ describe('Test Translator\n', function() {
77
77
  }
78
78
  let whatsapp_receiver = tiledeskChannelMessage.recipient.substring(tiledeskChannelMessage.recipient.lastIndexOf("tel") + 3)
79
79
 
80
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: tiledeskChannelMessage });
80
+ const tlr = new TiledeskWhatsappTranslator();
81
81
  assert(tlr != null);
82
- const whatsappJsonMessage = tlr.toWhatsapp(whatsapp_receiver);
82
+ const whatsappJsonMessage = tlr.toWhatsapp(tiledeskChannelMessage, whatsapp_receiver);
83
83
  assert(whatsappJsonMessage != null);
84
84
  assert(whatsappJsonMessage.messaging_product === TiledeskWhatsappTranslator.WHATSAPP_MESSAGING_PRODUCT);
85
85
  assert(whatsappJsonMessage.to === whatsapp_receiver);
@@ -98,7 +98,7 @@ describe('Test Translator\n', function() {
98
98
  let tiledeskChannelMessage = {
99
99
  text: 'Document Caption', // can be empty --> ""
100
100
  type: 'application',
101
- recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-c7dc-4e62-89b1-ffe9bba7fd59-wab-104777398965560-tel393484506627',
101
+ recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-wab-104777398965560-393484506627',
102
102
  metadata: {
103
103
  src: 'https://fakedocumenturl.com/'
104
104
  },
@@ -108,9 +108,9 @@ describe('Test Translator\n', function() {
108
108
  }
109
109
  let whatsapp_receiver = tiledeskChannelMessage.recipient.substring(tiledeskChannelMessage.recipient.lastIndexOf("tel") + 3)
110
110
 
111
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: tiledeskChannelMessage });
111
+ const tlr = new TiledeskWhatsappTranslator();
112
112
  assert(tlr != null);
113
- const whatsappJsonMessage = tlr.toWhatsapp(whatsapp_receiver);
113
+ const whatsappJsonMessage = tlr.toWhatsapp(tiledeskChannelMessage, whatsapp_receiver);
114
114
  assert(whatsappJsonMessage != null);
115
115
  assert(whatsappJsonMessage.messaging_product === TiledeskWhatsappTranslator.WHATSAPP_MESSAGING_PRODUCT);
116
116
  assert(whatsappJsonMessage.to === whatsapp_receiver);
@@ -128,7 +128,7 @@ describe('Test Translator\n', function() {
128
128
 
129
129
  let tiledeskChannelMessage = {
130
130
  text: 'Test Message',
131
- recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-c7dc-4e62-89b1-ffe9bba7fd59-wab-104777398965560-tel393484506627',
131
+ recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-wab-104777398965560-393484506627',
132
132
  attributes: {
133
133
  attachment: {
134
134
  buttons: [
@@ -141,9 +141,9 @@ describe('Test Translator\n', function() {
141
141
  }
142
142
  let whatsapp_receiver = tiledeskChannelMessage.recipient.substring(tiledeskChannelMessage.recipient.lastIndexOf("tel") + 3)
143
143
 
144
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: tiledeskChannelMessage });
144
+ const tlr = new TiledeskWhatsappTranslator();
145
145
  assert(tlr != null);
146
- const whatsappJsonMessage = tlr.toWhatsapp(whatsapp_receiver);
146
+ const whatsappJsonMessage = tlr.toWhatsapp(tiledeskChannelMessage, whatsapp_receiver);
147
147
  assert(whatsappJsonMessage != null);
148
148
  assert(whatsappJsonMessage.messaging_product === TiledeskWhatsappTranslator.WHATSAPP_MESSAGING_PRODUCT);
149
149
  assert(!whatsappJsonMessage.text);
@@ -166,7 +166,7 @@ describe('Test Translator\n', function() {
166
166
 
167
167
  let tiledeskChannelMessage = {
168
168
  text: 'Test Message',
169
- recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-c7dc-4e62-89b1-ffe9bba7fd59-wab-104777398965560-tel393484506627',
169
+ recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-wab-104777398965560-393484506627',
170
170
  attributes: {
171
171
  attachment: {
172
172
  buttons: [
@@ -179,11 +179,11 @@ describe('Test Translator\n', function() {
179
179
  }
180
180
  }
181
181
  }
182
- let whatsapp_receiver = tiledeskChannelMessage.recipient.substring(tiledeskChannelMessage.recipient.lastIndexOf("tel") + 3)
182
+ let whatsapp_receiver = tiledeskChannelMessage.recipient.substring(tiledeskChannelMessage.recipient.lastIndexOf("-") + 1)
183
183
 
184
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: tiledeskChannelMessage });
184
+ const tlr = new TiledeskWhatsappTranslator();
185
185
  assert(tlr != null);
186
- const whatsappJsonMessage = tlr.toWhatsapp(whatsapp_receiver);
186
+ const whatsappJsonMessage = tlr.toWhatsapp(tiledeskChannelMessage, whatsapp_receiver);
187
187
  assert(whatsappJsonMessage != null);
188
188
  assert(whatsappJsonMessage.messaging_product === TiledeskWhatsappTranslator.WHATSAPP_MESSAGING_PRODUCT);
189
189
  assert(!whatsappJsonMessage.text);
@@ -214,9 +214,9 @@ describe('Test Translator\n', function() {
214
214
  }
215
215
  let fullname = "John Doe"; // from whatsapp contacts
216
216
 
217
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
217
+ const tlr = new TiledeskWhatsappTranslator();
218
218
  assert(tlr != null);
219
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, null)
219
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, null)
220
220
  assert(tiledeskJsonMessage != null);
221
221
  assert(tiledeskJsonMessage.channel.name === TiledeskWhatsappTranslator.CHANNEL_NAME);
222
222
  assert(tiledeskJsonMessage.text === whatsappChannelMessage.text.body);
@@ -241,9 +241,9 @@ describe('Test Translator\n', function() {
241
241
  }
242
242
  let fullname = "John Doe"; // from whatsapp contacts
243
243
 
244
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
244
+ const tlr = new TiledeskWhatsappTranslator();
245
245
  assert(tlr != null);
246
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, null)
246
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, null)
247
247
  assert(tiledeskJsonMessage != null);
248
248
  assert(tiledeskJsonMessage.channel.name === TiledeskWhatsappTranslator.CHANNEL_NAME);
249
249
  assert(tiledeskJsonMessage.text === whatsappChannelMessage.interactive.list_reply.title);
@@ -268,9 +268,9 @@ describe('Test Translator\n', function() {
268
268
  }
269
269
  let fullname = "John Doe"; // from whatsapp contacts
270
270
 
271
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
271
+ const tlr = new TiledeskWhatsappTranslator();
272
272
  assert(tlr != null);
273
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, null)
273
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, null)
274
274
  assert(tiledeskJsonMessage != null);
275
275
  assert(tiledeskJsonMessage.channel.name === TiledeskWhatsappTranslator.CHANNEL_NAME);
276
276
  assert(tiledeskJsonMessage.text === ' ');
@@ -303,9 +303,9 @@ describe('Test Translator\n', function() {
303
303
  }
304
304
  let fullname = "John Doe"; // from whatsapp contacts
305
305
 
306
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
306
+ const tlr = new TiledeskWhatsappTranslator();
307
307
  assert(tlr != null);
308
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, null)
308
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, null)
309
309
  assert(tiledeskJsonMessage != null);
310
310
  assert(tiledeskJsonMessage.channel.name === TiledeskWhatsappTranslator.CHANNEL_NAME);
311
311
  assert(tiledeskJsonMessage.text === whatsappChannelMessage.interactive.button_reply.title);
@@ -330,9 +330,9 @@ describe('Test Translator\n', function() {
330
330
  }
331
331
  let fullname = "John Doe"; // from whatsapp contacts
332
332
 
333
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
333
+ const tlr = new TiledeskWhatsappTranslator();
334
334
  assert(tlr != null);
335
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, null)
335
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, null)
336
336
  assert(tiledeskJsonMessage != null);
337
337
  assert(tiledeskJsonMessage.channel.name === TiledeskWhatsappTranslator.CHANNEL_NAME);
338
338
  assert(tiledeskJsonMessage.text === ' ');
@@ -359,9 +359,9 @@ describe('Test Translator\n', function() {
359
359
  let fullname = "John Doe";
360
360
  let media_url = "https://fakeimageurl.com/"
361
361
 
362
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
362
+ const tlr = new TiledeskWhatsappTranslator();
363
363
  assert(tlr != null);
364
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, media_url);
364
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, media_url);
365
365
  assert(tiledeskJsonMessage != null);
366
366
  if (log) {
367
367
  console.log("(test) tiledeskJsonMessage: ", tiledeskJsonMessage);
@@ -379,9 +379,9 @@ describe('Test Translator\n', function() {
379
379
  let fullname = "John Doe";
380
380
  let media_url = "https://fakeimageurl.com/"
381
381
 
382
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
382
+ const tlr = new TiledeskWhatsappTranslator();
383
383
  assert(tlr != null);
384
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, media_url);
384
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, media_url);
385
385
  assert(tiledeskJsonMessage != null);
386
386
  if (log) {
387
387
  console.log("(test) tiledeskJsonMessage: ", tiledeskJsonMessage);
@@ -399,9 +399,9 @@ describe('Test Translator\n', function() {
399
399
  let fullname = "John Doe";
400
400
  let media_url = "https://fakedocumenturl.com/"
401
401
 
402
- const tlr = new TiledeskWhatsappTranslator({ channelMessage: whatsappChannelMessage });
402
+ const tlr = new TiledeskWhatsappTranslator();
403
403
  assert(tlr != null);
404
- const tiledeskJsonMessage = tlr.toTiledesk(fullname, media_url);
404
+ const tiledeskJsonMessage = tlr.toTiledesk(whatsappChannelMessage, fullname, media_url);
405
405
  assert(tiledeskJsonMessage != null);
406
406
  if (log) {
407
407
  console.log("(test) tiledeskJsonMessage: ", tiledeskJsonMessage);
@@ -1,4 +1,3 @@
1
-
2
1
  class TiledeskWhatsappTranslator {
3
2
 
4
3
  /**
@@ -6,20 +5,16 @@ class TiledeskWhatsappTranslator {
6
5
  *
7
6
  * @example
8
7
  * const { TiledeskWhatsappTranslator } = require('tiledesk-whatsapp-translator');
9
- * const tlr = new TiledeskWhatsappTranslator({channelMessage: replyFromChatbot});
8
+ * const tlr = new TiledeskWhatsappTranslator();
10
9
  *
11
10
  * @param {Object} config JSON configuration.
12
- * @param {string} config.channelMessage Mandatory. Tiledesk channel native message
13
- * @param {boolean} options.log Optional. If true HTTP requests are logged.
14
11
  */
15
12
 
16
13
  static WHATSAPP_MESSAGING_PRODUCT = "whatsapp";
17
- static CHANNEL_NAME = "whatsapp"
14
+ static CHANNEL_NAME = "whatsapp";
18
15
 
19
- constructor(config) {
20
- if (!config) {
21
- throw new Error('config is mandatory');
22
- }
16
+ constructor() {
17
+
23
18
 
24
19
  /*
25
20
  if (!config.tiledeskChannelMessage) {
@@ -28,15 +23,9 @@ class TiledeskWhatsappTranslator {
28
23
  this.tiledeskChannelMessage = config.tiledeskChannelMessage;
29
24
  console.log("this.tiledeskChannelMessage: ", this.tiledeskChannelMessage);
30
25
  */
31
-
32
- if (!config.channelMessage) {
33
- throw new Error('config.channelMessage is mandatory');
34
- }
35
- this.channelMessage = config.channelMessage;
26
+
36
27
  this.log = true;
37
- if (config.log) {
38
- this.log = true;
39
- }
28
+
40
29
 
41
30
  }
42
31
 
@@ -46,11 +35,21 @@ class TiledeskWhatsappTranslator {
46
35
  ********* WHATSAPP BUSINESS *********
47
36
  *************************************
48
37
  */
49
- toWhatsapp(whatsapp_receiver) {
38
+
39
+ /** Returns a Whatsapp messagem new request ID for the specified Project.<br>
40
+ * A request's ID has the format:<br>
41
+ * <br>
42
+ * <i>support-group-PROJECT_ID-UNIQUE_ID</i><br>
43
+ * <br>
44
+ * <i>UNIQUE_ID</i> MUST be unique in your Project. <b>This method always returns an <i>UUID</i> for the <i>UNIQUE_ID</i> component</b>.
45
+ *
46
+ * @param {Object} tiledeskChannelMessage - The message in Tiledesk format.
47
+ * @param {string} whatsapp_receiver - The Whatsapp recipient fo the message.
48
+ */
49
+ toWhatsapp(tiledeskChannelMessage, whatsapp_receiver) {
50
50
 
51
51
 
52
52
  // to --> recipient
53
- let tiledeskChannelMessage = this.channelMessage;
54
53
  if (this.log) {
55
54
  console.log("[Translator] tiledesk message: ", tiledeskChannelMessage)
56
55
  }
@@ -287,9 +286,8 @@ class TiledeskWhatsappTranslator {
287
286
  }
288
287
  }
289
288
 
290
- toTiledesk(from, media_url) {
289
+ toTiledesk(whatsappChannelMessage, from, media_url) {
291
290
 
292
- let whatsappChannelMessage = this.channelMessage;
293
291
  if (this.log) {
294
292
  console.log("[Translator] whatsapp message: ", whatsappChannelMessage)
295
293
  }