@tiledesk/tiledesk-whatsapp-connector 0.1.70 → 0.1.72
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
|
@@ -583,7 +583,7 @@ router.post("/tiledesk/broadcast", async (req, res) => {
|
|
|
583
583
|
tiledeskChannelMessage,
|
|
584
584
|
whatsapp_receiver
|
|
585
585
|
);
|
|
586
|
-
winston.
|
|
586
|
+
winston.verbose("customTiledeskJsonMessage: ", customTiledeskJsonMessage);
|
|
587
587
|
|
|
588
588
|
let whatsappJsonMessage = await tlr.toWhatsapp(
|
|
589
589
|
customTiledeskJsonMessage,
|
|
@@ -724,7 +724,7 @@ router.post("/tiledesk", async (req, res) => {
|
|
|
724
724
|
var tiledeskChannelMessage = req.body.payload;
|
|
725
725
|
winston.debug("(wab) tiledeskChannelMessage: ", tiledeskChannelMessage);
|
|
726
726
|
var project_id = req.body.payload.id_project;
|
|
727
|
-
|
|
727
|
+
|
|
728
728
|
// get settings from mongo
|
|
729
729
|
let CONTENT_KEY = "whatsapp-" + project_id;
|
|
730
730
|
let settings = await db.get(CONTENT_KEY);
|
|
@@ -935,15 +935,15 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
935
935
|
// Parse the request body from the POST
|
|
936
936
|
let project_id = req.params.project_id;
|
|
937
937
|
winston.verbose("(wab) Message received from WhatsApp");
|
|
938
|
-
|
|
938
|
+
|
|
939
939
|
// Check the Incoming webhook message
|
|
940
940
|
// info on WhatsApp text message payload: https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/payload-examples#text-messages
|
|
941
941
|
if (req.body.object) {
|
|
942
|
-
|
|
942
|
+
|
|
943
943
|
let CONTENT_KEY = "whatsapp-" + project_id;
|
|
944
944
|
let settings = await db.get(CONTENT_KEY);
|
|
945
945
|
winston.debug("(wab) settings: ", settings);
|
|
946
|
-
|
|
946
|
+
|
|
947
947
|
const tdClient = new TiledeskClient({
|
|
948
948
|
projectId: project_id,
|
|
949
949
|
token: settings.token,
|
|
@@ -966,6 +966,11 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
966
966
|
winston.verbose("(wab) Skip system message");
|
|
967
967
|
return res.sendStatus(200);
|
|
968
968
|
}
|
|
969
|
+
|
|
970
|
+
if (req.body.entry[0].id !== settings.business_account_id) {
|
|
971
|
+
winston.verbose("(wab) Skip message with waba that not belong to Tiledesk project id");
|
|
972
|
+
return res.sendStatus(200);
|
|
973
|
+
}
|
|
969
974
|
|
|
970
975
|
let whatsappChannelMessage =
|
|
971
976
|
req.body.entry[0].changes[0].value.messages[0];
|
|
@@ -1027,7 +1032,7 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1027
1032
|
lastname: " ",
|
|
1028
1033
|
},
|
|
1029
1034
|
};
|
|
1030
|
-
|
|
1035
|
+
|
|
1031
1036
|
let tiledeskJsonMessage;
|
|
1032
1037
|
|
|
1033
1038
|
/*
|
package/package.json
CHANGED
|
@@ -96,10 +96,11 @@ describe('Test Translator\n', function() {
|
|
|
96
96
|
it("Translates a message containing a DOCUMENT from Tiledesk to Whatsapp", function() {
|
|
97
97
|
|
|
98
98
|
let tiledeskChannelMessage = {
|
|
99
|
-
text: 'Document Caption', // can be empty --> ""
|
|
99
|
+
text: '[fakedocument.pdf](https://fakedocumenturl.com/)\n' + 'Document Caption', // can be empty --> ""
|
|
100
100
|
type: 'application',
|
|
101
101
|
recipient: 'support-group-62c3f10152dc7400352bab0d-86a2293e-wab-104777398965560-393484506627',
|
|
102
102
|
metadata: {
|
|
103
|
+
downloadURL: 'https://fakedocumenturl.com/',
|
|
103
104
|
src: 'https://fakedocumenturl.com/',
|
|
104
105
|
name: "fakedocument.pdf",
|
|
105
106
|
type: 'application/pdf'
|
|
@@ -119,7 +120,12 @@ describe('Test Translator\n', function() {
|
|
|
119
120
|
assert(!whatsappJsonMessage.text);
|
|
120
121
|
assert(whatsappJsonMessage.document);
|
|
121
122
|
assert(whatsappJsonMessage.document.link === tiledeskChannelMessage.metadata.src);
|
|
122
|
-
assert(whatsappJsonMessage.document.
|
|
123
|
+
assert(whatsappJsonMessage.document.filename === tiledeskChannelMessage.metadata.name);
|
|
124
|
+
let index = tiledeskChannelMessage.text.indexOf(tiledeskChannelMessage.metadata.src);
|
|
125
|
+
if (index != -1) {
|
|
126
|
+
let length = tiledeskChannelMessage.metadata.src.length;
|
|
127
|
+
assert(whatsappJsonMessage.document.caption === tiledeskChannelMessage.text.substring(index + length + 2));
|
|
128
|
+
}
|
|
123
129
|
if (log) {
|
|
124
130
|
console.log("(test) whatsappJsonMessage: ", whatsappJsonMessage);
|
|
125
131
|
}
|
|
@@ -319,6 +325,7 @@ describe('Test Translator\n', function() {
|
|
|
319
325
|
assert(tlr != null);
|
|
320
326
|
const tiledeskJsonMessage = await tlr.toTiledesk(whatsappChannelMessage, fullname, null)
|
|
321
327
|
assert(tiledeskJsonMessage != null);
|
|
328
|
+
console.log("(test) tiledeskJsonMessage: ", tiledeskJsonMessage);
|
|
322
329
|
assert(tiledeskJsonMessage.channel.name === TiledeskWhatsappTranslator.CHANNEL_NAME);
|
|
323
330
|
assert(tiledeskJsonMessage.text === ' ');
|
|
324
331
|
assert(tiledeskJsonMessage.type === 'text');
|
|
@@ -89,12 +89,21 @@ const path = require('path');
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
else if (tiledeskChannelMessage.metadata.type.startsWith('application')) {
|
|
92
|
-
var doc = tiledeskChannelMessage.metadata.src;
|
|
92
|
+
//var doc = tiledeskChannelMessage.metadata.src;
|
|
93
|
+
var doc = tiledeskChannelMessage.metadata.downloadURL;
|
|
93
94
|
whatsapp_message.type = 'document'
|
|
94
95
|
whatsapp_message.document = {
|
|
95
96
|
link: doc,
|
|
96
|
-
|
|
97
|
+
filename: tiledeskChannelMessage.metadata.name,
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
let index = tiledeskChannelMessage.text.indexOf(tiledeskChannelMessage.metadata.src);
|
|
101
|
+
if (index != -1) {
|
|
102
|
+
let length = tiledeskChannelMessage.metadata.src.length;
|
|
103
|
+
let caption = tiledeskChannelMessage.text.substring(index + length + 2);
|
|
104
|
+
whatsapp_message.document.caption = caption;
|
|
97
105
|
}
|
|
106
|
+
|
|
98
107
|
}
|
|
99
108
|
|
|
100
109
|
else {
|