@tiledesk/tiledesk-whatsapp-connector 1.0.18 → 1.0.20
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/.env +2 -0
- package/index.js +13 -32
- package/package.json +1 -1
- package/routes/api.js +5 -9
- package/tiledesk/TiledeskWhatsapp.js +7 -17
package/.env
CHANGED
package/index.js
CHANGED
|
@@ -57,7 +57,6 @@ let APPS_API_URL = null;
|
|
|
57
57
|
let REDIS_HOST = null;
|
|
58
58
|
let REDIS_PORT = null;
|
|
59
59
|
let REDIS_PASSWORD = null;
|
|
60
|
-
let BASE_FILE_URL = null;
|
|
61
60
|
let AMQP_MANAGER_URL = null;
|
|
62
61
|
let JOB_TOPIC_EXCHANGE = null;
|
|
63
62
|
let BRAND_NAME = null;
|
|
@@ -348,8 +347,7 @@ router.post("/update", async (req, res) => {
|
|
|
348
347
|
const twClient = new TiledeskWhatsapp({
|
|
349
348
|
token: settings.wab_token,
|
|
350
349
|
GRAPH_URL: GRAPH_URL,
|
|
351
|
-
API_URL: API_URL
|
|
352
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
350
|
+
API_URL: API_URL
|
|
353
351
|
});
|
|
354
352
|
|
|
355
353
|
await twClient.getBusinessAccountInfo(business_account_id).then((info) => {
|
|
@@ -477,8 +475,7 @@ router.post("/getinfo", async (req, res) => {
|
|
|
477
475
|
const twClient = new TiledeskWhatsapp({
|
|
478
476
|
token: settings.wab_token,
|
|
479
477
|
GRAPH_URL: GRAPH_URL,
|
|
480
|
-
API_URL: API_URL
|
|
481
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
478
|
+
API_URL: API_URL
|
|
482
479
|
});
|
|
483
480
|
|
|
484
481
|
await twClient.getBusinessAccountInfo(settings.business_account_id).then((info) => {
|
|
@@ -687,8 +684,7 @@ router.post("/tiledesk", async (req, res) => {
|
|
|
687
684
|
const twClient = new TiledeskWhatsapp({
|
|
688
685
|
token: settings.wab_token,
|
|
689
686
|
GRAPH_URL: GRAPH_URL,
|
|
690
|
-
API_URL: API_URL
|
|
691
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
687
|
+
API_URL: API_URL
|
|
692
688
|
});
|
|
693
689
|
twClient.sendMessage(phone_number_id, whatsappJsonMessage).then((response) => {
|
|
694
690
|
winston.verbose(
|
|
@@ -739,8 +735,7 @@ router.post("/tiledesk", async (req, res) => {
|
|
|
739
735
|
const twClient = new TiledeskWhatsapp({
|
|
740
736
|
token: wab_token,
|
|
741
737
|
GRAPH_URL: GRAPH_URL,
|
|
742
|
-
API_URL: API_URL
|
|
743
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
738
|
+
API_URL: API_URL
|
|
744
739
|
});
|
|
745
740
|
|
|
746
741
|
twClient.sendMessage(phone_number_id, whatsappJsonMessage).then((response) => {
|
|
@@ -851,8 +846,7 @@ router.post('/webhook', async (req, res) => {
|
|
|
851
846
|
const util = new TiledeskWhatsapp({
|
|
852
847
|
token: settings.wab_token,
|
|
853
848
|
GRAPH_URL: GRAPH_URL,
|
|
854
|
-
API_URL: API_URL
|
|
855
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
849
|
+
API_URL: API_URL
|
|
856
850
|
});
|
|
857
851
|
|
|
858
852
|
const media = whatsappChannelMessage[whatsappChannelMessage.type];
|
|
@@ -864,8 +858,7 @@ router.post('/webhook', async (req, res) => {
|
|
|
864
858
|
}
|
|
865
859
|
|
|
866
860
|
const file_path = path.join(__dirname, "tmp", filename);
|
|
867
|
-
const
|
|
868
|
-
const media_url = await util.uploadMedia(file_path, uploadFolder);
|
|
861
|
+
const media_url = await util.uploadMedia(file_path, settings.project_id, settings.token);
|
|
869
862
|
winston.debug(`(wab) media_url: ${media_url}`);
|
|
870
863
|
|
|
871
864
|
tiledeskJsonMessage = await tlr.toTiledesk(whatsappChannelMessage, firstname, media_url);
|
|
@@ -1027,8 +1020,7 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1027
1020
|
const util = new TiledeskWhatsapp({
|
|
1028
1021
|
token: settings.wab_token,
|
|
1029
1022
|
GRAPH_URL: GRAPH_URL,
|
|
1030
|
-
API_URL: API_URL
|
|
1031
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
1023
|
+
API_URL: API_URL
|
|
1032
1024
|
});
|
|
1033
1025
|
|
|
1034
1026
|
if (whatsappChannelMessage.type == "image") {
|
|
@@ -1040,7 +1032,7 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1040
1032
|
}
|
|
1041
1033
|
|
|
1042
1034
|
let file_path = path.join(__dirname, "tmp", filename);
|
|
1043
|
-
const image_url = await util.uploadMedia(file_path,
|
|
1035
|
+
const image_url = await util.uploadMedia(file_path, settings.project_id, settings.token);
|
|
1044
1036
|
winston.debug("(wab) image_url: " + image_url);
|
|
1045
1037
|
|
|
1046
1038
|
tiledeskJsonMessage = await tlr.toTiledesk(whatsappChannelMessage, firstname, image_url);
|
|
@@ -1056,7 +1048,7 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1056
1048
|
}
|
|
1057
1049
|
let file_path = path.join(__dirname, "tmp", filename);
|
|
1058
1050
|
|
|
1059
|
-
const media_url = await util.uploadMedia(file_path,
|
|
1051
|
+
const media_url = await util.uploadMedia(file_path, settings.project_id, settings.token);
|
|
1060
1052
|
winston.debug("(wab) media_url: " + media_url);
|
|
1061
1053
|
|
|
1062
1054
|
tiledeskJsonMessage = await tlr.toTiledesk(whatsappChannelMessage, firstname, media_url);
|
|
@@ -1072,7 +1064,7 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1072
1064
|
}
|
|
1073
1065
|
let file_path = path.join(__dirname, "tmp", filename);
|
|
1074
1066
|
|
|
1075
|
-
const media_url = await util.uploadMedia(file_path,
|
|
1067
|
+
const media_url = await util.uploadMedia(file_path, settings.project_id, settings.token);
|
|
1076
1068
|
winston.debug("(wab) media_url: " + media_url);
|
|
1077
1069
|
|
|
1078
1070
|
tiledeskJsonMessage = await tlr.toTiledesk(whatsappChannelMessage, firstname, media_url);
|
|
@@ -1088,7 +1080,7 @@ router.post("/webhook/:project_id", async (req, res) => {
|
|
|
1088
1080
|
}
|
|
1089
1081
|
let file_path = path.join(__dirname, "tmp", filename);
|
|
1090
1082
|
|
|
1091
|
-
const media_url = await util.uploadMedia(file_path,
|
|
1083
|
+
const media_url = await util.uploadMedia(file_path, settings.project_id, settings.token);
|
|
1092
1084
|
winston.debug("(wab) media_url: " + media_url);
|
|
1093
1085
|
|
|
1094
1086
|
tiledeskJsonMessage = await tlr.toTiledesk(whatsappChannelMessage, firstname, media_url);
|
|
@@ -1482,8 +1474,7 @@ router.get("/direct/tiledesk", async (req, res) => {
|
|
|
1482
1474
|
const twClient = new TiledeskWhatsapp({
|
|
1483
1475
|
token: settings.wab_token,
|
|
1484
1476
|
GRAPH_URL: GRAPH_URL,
|
|
1485
|
-
API_URL: API_URL
|
|
1486
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
1477
|
+
API_URL: API_URL
|
|
1487
1478
|
});
|
|
1488
1479
|
|
|
1489
1480
|
let whatsappJsonMessage = await tlr.toWhatsapp(
|
|
@@ -1538,8 +1529,7 @@ router.post("/tiledesk/broadcast", async (req, res) => {
|
|
|
1538
1529
|
const twClient = new TiledeskWhatsapp({
|
|
1539
1530
|
token: settings.wab_token,
|
|
1540
1531
|
GRAPH_URL: GRAPH_URL,
|
|
1541
|
-
API_URL: API_URL
|
|
1542
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
1532
|
+
API_URL: API_URL
|
|
1543
1533
|
});
|
|
1544
1534
|
|
|
1545
1535
|
let response = await tm.getTemplates();
|
|
@@ -1619,14 +1609,6 @@ async function startApp(settings, callback) {
|
|
|
1619
1609
|
winston.info("(wab) API_URL: " + API_URL);
|
|
1620
1610
|
}
|
|
1621
1611
|
|
|
1622
|
-
if (!settings.BASE_FILE_URL) {
|
|
1623
|
-
winston.error("(wab) BASE_FILE_URL is mandatory. Exit...");
|
|
1624
|
-
return callback("Missing parameter: BASE_FILE_URL");
|
|
1625
|
-
} else {
|
|
1626
|
-
BASE_FILE_URL = settings.BASE_FILE_URL;
|
|
1627
|
-
winston.info("(wab) BASE_FILE_URL: " + BASE_FILE_URL);
|
|
1628
|
-
}
|
|
1629
|
-
|
|
1630
1612
|
if (!settings.BASE_URL) {
|
|
1631
1613
|
winston.error("(wab) BASE_URL is mandatory. Exit...");
|
|
1632
1614
|
return callback("Missing parameter: BASE_URL");
|
|
@@ -1743,7 +1725,6 @@ async function startApp(settings, callback) {
|
|
|
1743
1725
|
DB: db,
|
|
1744
1726
|
API_URL: API_URL,
|
|
1745
1727
|
GRAPH_URL: GRAPH_URL,
|
|
1746
|
-
BASE_FILE_URL: BASE_FILE_URL,
|
|
1747
1728
|
AMQP_MANAGER_URL: AMQP_MANAGER_URL,
|
|
1748
1729
|
JOB_TOPIC_EXCHANGE: JOB_TOPIC_EXCHANGE,
|
|
1749
1730
|
},
|
package/package.json
CHANGED
package/routes/api.js
CHANGED
|
@@ -15,7 +15,6 @@ const Utils = require('../tiledesk/Utils');
|
|
|
15
15
|
let db = null;
|
|
16
16
|
let API_URL = null;
|
|
17
17
|
let GRAPH_URL = null;
|
|
18
|
-
let BASE_FILE_URL = null;
|
|
19
18
|
let AMQP_MANAGER_URL = null;
|
|
20
19
|
let JOB_TOPIC_EXCHANGE = null;
|
|
21
20
|
let utils = null;
|
|
@@ -77,7 +76,11 @@ router.post('/customer/io', async (req, res) => {
|
|
|
77
76
|
winston.debug("[ CUSTOMER.IO ] whatsappJsonMessage: ", JSON.stringify(whatsappJsonMessage, null, 2));
|
|
78
77
|
|
|
79
78
|
if (whatsappJsonMessage) {
|
|
80
|
-
const twClient = new TiledeskWhatsapp({
|
|
79
|
+
const twClient = new TiledeskWhatsapp({
|
|
80
|
+
token: settings.wab_token,
|
|
81
|
+
GRAPH_URL: GRAPH_URL,
|
|
82
|
+
API_URL: API_URL
|
|
83
|
+
});
|
|
81
84
|
|
|
82
85
|
twClient.sendMessage(phone_number_id, whatsappJsonMessage).then((response) => {
|
|
83
86
|
winston.verbose("(wab) Message sent to WhatsApp! " + response.status + " " + response.statusText);
|
|
@@ -294,13 +297,6 @@ async function startRoute(settings, callback) {
|
|
|
294
297
|
winston.info("(wab api) API_URL: " + API_URL);
|
|
295
298
|
}
|
|
296
299
|
|
|
297
|
-
if (!settings.BASE_FILE_URL) {
|
|
298
|
-
winston.error("(wab api) BASE_FILE_URL is mandatory. Exit...");
|
|
299
|
-
return callback('Missing parameter: BASE_FILE_URL');
|
|
300
|
-
} else {
|
|
301
|
-
BASE_FILE_URL = settings.BASE_FILE_URL;
|
|
302
|
-
winston.info("(wab api) BASE_FILE_URL: " + BASE_FILE_URL);
|
|
303
|
-
}
|
|
304
300
|
|
|
305
301
|
if (!settings.AMQP_MANAGER_URL) {
|
|
306
302
|
winston.error("(wab api) AMQP_MANAGER_URL is mandatory (?). Exit...");
|
|
@@ -36,15 +36,11 @@ class TiledeskWhatsapp {
|
|
|
36
36
|
throw new Error('config.API_URL is mandatory');
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
if (!config.BASE_FILE_URL) {
|
|
40
|
-
throw new Error('config.BASE_FILE_URL is mandatory')
|
|
41
|
-
}
|
|
42
|
-
|
|
43
39
|
// this.media = config.channelMedia;
|
|
44
40
|
this.token = config.token;
|
|
45
41
|
this.GRAPH_URL = config.GRAPH_URL
|
|
46
42
|
this.api_url = config.API_URL;
|
|
47
|
-
|
|
43
|
+
|
|
48
44
|
|
|
49
45
|
this.log = false;
|
|
50
46
|
if (config.log) {
|
|
@@ -147,8 +143,8 @@ class TiledeskWhatsapp {
|
|
|
147
143
|
})
|
|
148
144
|
}
|
|
149
145
|
|
|
150
|
-
async uploadMedia(path,
|
|
151
|
-
let url = this.
|
|
146
|
+
async uploadMedia(path, id_project, token) {
|
|
147
|
+
let url = `${this.api_url}/${id_project}/files/chat`;
|
|
152
148
|
winston.debug("(wab) [TiledeskWhatsapp] Uploading file...");
|
|
153
149
|
|
|
154
150
|
const form = new FormData();
|
|
@@ -157,22 +153,16 @@ class TiledeskWhatsapp {
|
|
|
157
153
|
maxContentLength: Infinity,
|
|
158
154
|
maxBodyLength: Infinity,
|
|
159
155
|
header: {
|
|
160
|
-
...form.getHeaders()
|
|
156
|
+
...form.getHeaders(),
|
|
157
|
+
'Authorization': token
|
|
161
158
|
}
|
|
162
159
|
}
|
|
163
160
|
|
|
164
161
|
return await axios.post(url, form, request_config).then((response) => {
|
|
165
162
|
|
|
166
163
|
winston.debug("(wab) [TiledeskWhatsapp] upload response: ", response.data);
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
let image_url = this.base_file_url + "/images/?path=" + response.data.filename;
|
|
170
|
-
return image_url;
|
|
171
|
-
} else {
|
|
172
|
-
//let file_url = "https://tiledesk-server-pre.herokuapp.com/files/download?path=" + response.data.filename;
|
|
173
|
-
let file_url = this.base_file_url + "/files/download?path=" + response.data.filename;
|
|
174
|
-
return file_url;
|
|
175
|
-
}
|
|
164
|
+
let file_url = this.api_url + "/files/download?path=" + response.data.filename;
|
|
165
|
+
return file_url;
|
|
176
166
|
|
|
177
167
|
}).catch((err) => {
|
|
178
168
|
if (err.response?.status === 413) {
|