@tiledesk/tiledesk-whatsapp-connector 1.0.22 → 1.0.23

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 CHANGED
@@ -1,2 +1,2 @@
1
1
  # CUSTOM ENV
2
- NPM_PUBLISH_TOKEN=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
2
+ NPM_PUBLISH_TOKEN=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
package/index.js CHANGED
@@ -878,9 +878,14 @@ router.post('/webhook', async (req, res) => {
878
878
 
879
879
  if (tiledeskJsonMessage) {
880
880
  winston.verbose("(wab) tiledeskJsonMessage: ", tiledeskJsonMessage);
881
- const response = await tdChannel.send(tiledeskJsonMessage, message_info, settings.department_id);
882
- winston.verbose("(wab) Message sent to Tiledesk!");
883
- winston.debug("(wab) response: ", response);
881
+
882
+ try {
883
+ const response = await tdChannel.send(tiledeskJsonMessage, message_info, settings.department_id);
884
+ winston.verbose("(wab) Message sent to Tiledesk!");
885
+ winston.debug("(wab) response: ", response);
886
+ } catch (err) {
887
+ winston.error("(wab) send message error: ", err);
888
+ }
884
889
  } else {
885
890
  winston.verbose("(wab) tiledeskJsonMessage is undefined");
886
891
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-whatsapp-connector",
3
- "version": "1.0.22",
3
+ "version": "1.0.23",
4
4
  "description": "Tiledesk Whatsapp connector",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -53,6 +53,7 @@ class TiledeskChannel {
53
53
  async send(tiledeskMessage, messageInfo, department_id) {
54
54
 
55
55
  let channel;
56
+ let request_id;
56
57
  let new_request_id;
57
58
 
58
59
  if (department_id) {
@@ -85,7 +86,6 @@ class TiledeskChannel {
85
86
  const requestsResponse = await this.getRequests(messageInfo.channel, token);
86
87
  winston.debug("(wab) [TiledeskChannel] get request response: ", requestsResponse.data);
87
88
 
88
- let request_id;
89
89
  if (requestsResponse.data.requests[0]) {
90
90
  request_id = requestsResponse.data.requests[0].request_id;
91
91
  winston.debug("(wab) [TiledeskChannel] Old request_id: " + request_id);
@@ -94,20 +94,24 @@ class TiledeskChannel {
94
94
  winston.debug("(wab) [TiledeskChannel] New request_id: " + request_id);
95
95
  }
96
96
 
97
- winston.debug("(wab) [TiledeskChannel] tiledeskMessage:", tiledeskMessage);
98
-
99
- try {
100
- const sendResponse = await this.sendMessage(request_id, tiledeskMessage, token);
101
- winston.debug("(wab) [TiledeskChannel] send message response: ", sendResponse.data);
102
- return sendResponse.data;
103
- } catch (err) {
104
- winston.error("(wab) [TiledeskChannel] send message error: ", err);
105
- throw err;
106
- }
107
97
  } catch (err) {
108
- winston.error("(wab) [TiledeskChannel] get requests error: ", err);
109
- throw err;
98
+ const errorMessage = utils._extractErrorMessage(err);
99
+ winston.error("(wab) [TiledeskChannel] get requests error: " + errorMessage);
100
+ throw new Error(errorMessage);
101
+ }
102
+
103
+ winston.debug("(wab) [TiledeskChannel] tiledeskMessage:", tiledeskMessage);
104
+
105
+ try {
106
+ const sendResponse = await this.sendMessage(request_id, tiledeskMessage, token);
107
+ winston.debug("(wab) [TiledeskChannel] send message response: ", sendResponse.data);
108
+ return sendResponse.data;
109
+ } catch (err) {
110
+ const errorMessage = utils._extractErrorMessage(err);
111
+ winston.error("(wab) [TiledeskChannel] send message error: " + errorMessage);
112
+ throw new Error(errorMessage);
110
113
  }
114
+
111
115
  }
112
116
 
113
117
  /**
@@ -227,10 +231,12 @@ class TiledeskChannel {
227
231
  }).then((response) => {
228
232
  return response.data
229
233
  }).catch((err) => {
230
- winston.error("(wab) [TiledeskChannel] send message (open conversation) error: ", err);
234
+ const errorMessage = utils._extractErrorMessage(err);
235
+ winston.error("(wab) [TiledeskChannel] send message (open conversation) error: " + errorMessage);
231
236
  })
232
237
  }).catch((err) => {
233
- winston.error("(wab) [TiledeskChannel] sign in error: ", err);
238
+ const errorMessage = utils._extractErrorMessage(err);
239
+ winston.error("(wab) [TiledeskChannel] sign in error: " + errorMessage);
234
240
  })
235
241
  }
236
242
 
@@ -250,7 +256,8 @@ class TiledeskChannel {
250
256
  }).then((response) => {
251
257
  return this.checkPlan(response.data);
252
258
  }).catch((err) => {
253
- winston.error("(wab) [TiledeskChannel] get project detail error: ", err);
259
+ const errorMessage = utils._extractErrorMessage(err);
260
+ winston.error("(wab) [TiledeskChannel] get project detail error: " + errorMessage);
254
261
  return null;
255
262
  })
256
263
  }
package/utils/utils.js CHANGED
@@ -35,6 +35,50 @@ class Utils {
35
35
  }
36
36
  return phonePrefixes[matchedPrefix];
37
37
  }
38
+
39
+ /**
40
+ * Extract error message from axios error, converting it to a string
41
+ * @param {Error} err - The error object
42
+ * @returns {string} - A string representation of the error
43
+ */
44
+ _extractErrorMessage(err) {
45
+ if (!err) {
46
+ return 'Unknown error';
47
+ }
48
+
49
+ // If it's an axios error with a response
50
+ if (err.response) {
51
+ const status = err.response.status;
52
+ const statusText = err.response.statusText;
53
+ const data = err.response.data;
54
+
55
+ // Try to extract a meaningful message from response.data
56
+ let message = '';
57
+ if (typeof data === 'string') {
58
+ message = data;
59
+ } else if (data && typeof data === 'object') {
60
+ // Try common error message fields
61
+ message = data.message || data.error?.message || data.error || JSON.stringify(data);
62
+ }
63
+
64
+ return `HTTP ${status} ${statusText}${message ? ': ' + message : ''}`;
65
+ }
66
+
67
+ // If it's an axios error without response (network error, timeout, etc.)
68
+ if (err.request) {
69
+ const code = err.code || '';
70
+ const message = err.message || 'Network error';
71
+ return code ? `${message} (${code})` : message;
72
+ }
73
+
74
+ // For other errors, use the message or convert to string
75
+ if (err.message) {
76
+ return err.message;
77
+ }
78
+
79
+ // Last resort: convert to string
80
+ return String(err);
81
+ }
38
82
 
39
83
  }
40
84
 
@@ -46,6 +90,8 @@ function fixNumber(phone_number) {
46
90
  }
47
91
  }
48
92
 
93
+
94
+
49
95
  let utils = new Utils();
50
96
 
51
97
  module.exports = utils;