@tiledesk/tiledesk-server 2.2.13 → 2.2.17
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/CHANGELOG.md +47 -0
- package/README.md +1 -1
- package/app.js +6 -3
- package/config/labels/widget.json +2 -2
- package/models/request.js +1 -1
- package/package.json +4 -4
- package/public/samples/bot/external/searcher/parse +10 -0
- package/pubmodules/messageTransformer/index.js +4 -1
- package/pubmodules/messageTransformer/messageHandlebarsTransformerInterceptor.js +83 -0
- package/pubmodules/pubModulesManager.js +1 -0
- package/routes/auth.js +5 -1
- package/routes/email.js +32 -0
- package/routes/faq.js +49 -26
- package/routes/faq_kb.js +102 -0
- package/routes/project.js +108 -1
- package/routes/request.js +10 -4
- package/routes/user-request.js +3 -1
- package/services/emailService.js +14 -12
- package/services/faqBotHandler.js +142 -16
- package/services/faqBotSupport copy.js_consplit +453 -0
- package/services/faqBotSupport.js +5 -5
- package/services/faqService.js +1 -0
- package/services/messageService.js +1 -1
- package/services/requestService.js +36 -19
- package/test/departmentService.js +10 -9
- package/test/faqRoute.js +112 -4
- package/test/faqkbRoute.js +57 -1
- package/test/messageRoute.js +4 -4
- package/test/requestRoute.js +26 -16
- package/test/requestService.js +90 -74
- package/test-int/bot.js +95 -1
- package/utils/httpUtil.js +42 -0
package/routes/project.js
CHANGED
@@ -50,6 +50,69 @@ router.put('/:projectid', [passport.authenticate(['basic', 'jwt'], { session: fa
|
|
50
50
|
update["settings.email.notification.conversation.pooled"] = req.body["settings.email.notification.conversation.pooled"];
|
51
51
|
}
|
52
52
|
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
if (req.body["settings.email.templates.assignedRequest"]!=undefined) {
|
57
|
+
update["settings.email.templates.assignedRequest"] = req.body["settings.email.templates.assignedRequest"];
|
58
|
+
}
|
59
|
+
if (req.body["settings.email.templates.assignedEmailMessage"]!=undefined) {
|
60
|
+
update["settings.email.templates.assignedEmailMessage"] = req.body["settings.email.templates.assignedEmailMessage"];
|
61
|
+
}
|
62
|
+
if (req.body["settings.email.templates.pooledRequest"]!=undefined) {
|
63
|
+
update["settings.email.templates.pooledRequest"] = req.body["settings.email.templates.pooledRequest"];
|
64
|
+
}
|
65
|
+
if (req.body["settings.email.templates.pooledEmailMessage"]!=undefined) {
|
66
|
+
update["settings.email.templates.pooledEmailMessage"] = req.body["settings.email.templates.pooledEmailMessage"];
|
67
|
+
}
|
68
|
+
if (req.body["settings.email.templates.newMessage"]!=undefined) {
|
69
|
+
update["settings.email.templates.newMessage"] = req.body["settings.email.templates.newMessage"];
|
70
|
+
}
|
71
|
+
if (req.body["settings.email.templates.ticket"]!=undefined) {
|
72
|
+
update["settings.email.templates.ticket"] = req.body["settings.email.templates.ticket"];
|
73
|
+
}
|
74
|
+
if (req.body["settings.email.templates.sendTranscript"]!=undefined) {
|
75
|
+
update["settings.email.templates.sendTranscript"] = req.body["settings.email.templates.sendTranscript"];
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
if (req.body["settings.email.from"]!=undefined) {
|
80
|
+
update["settings.email.from"] = req.body["settings.email.from"];
|
81
|
+
}
|
82
|
+
if (req.body["settings.email.config.host"]!=undefined) {
|
83
|
+
update["settings.email.config.host"] = req.body["settings.email.config.host"];
|
84
|
+
}
|
85
|
+
if (req.body["settings.email.config.port"]!=undefined) {
|
86
|
+
update["settings.email.config.port"] = req.body["settings.email.config.port"];
|
87
|
+
}
|
88
|
+
if (req.body["settings.email.config.secure"]!=undefined) {
|
89
|
+
update["settings.email.config.secure"] = req.body["settings.email.config.secure"];
|
90
|
+
}
|
91
|
+
if (req.body["settings.email.config.user"]!=undefined) {
|
92
|
+
update["settings.email.config.user"] = req.body["settings.email.config.user"];
|
93
|
+
}
|
94
|
+
if (req.body["settings.email.config.pass"]!=undefined) {
|
95
|
+
update["settings.email.config.pass"] = req.body["settings.email.config.pass"];
|
96
|
+
}
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
/*
|
101
|
+
|
102
|
+
if (req.body.settings.email.templates.assignedRequest!=undefined) {
|
103
|
+
// if (req.body["settings.email.templates.assignedRequest.html"]!=undefined) {
|
104
|
+
console.log("assignedRequest");
|
105
|
+
update["settings.email.templates.assignedRequest"] = req.body.settings.email.templates.assignedRequest;
|
106
|
+
}
|
107
|
+
if (req.body["settings.email.templates.assignedEmailMessage.html"]!=undefined) {
|
108
|
+
update["settings.email.templates.assignedEmailMessage.html"] = req.body["settings.email.templates.assignedEmailMessage.html"];
|
109
|
+
}
|
110
|
+
if (req.body.settings.email.templates.pooledRequest!=undefined) {
|
111
|
+
console.log("pooledRequest");
|
112
|
+
update["settings.email.templates.pooledRequest"] = req.body.settings.email.templates.pooledRequest;
|
113
|
+
}
|
114
|
+
*/
|
115
|
+
|
53
116
|
if (req.body["settings.chat_limit_on"]!=undefined) {
|
54
117
|
update["settings.chat_limit_on"] = req.body["settings.chat_limit_on"];
|
55
118
|
}
|
@@ -96,7 +159,7 @@ router.put('/:projectid', [passport.authenticate(['basic', 'jwt'], { session: fa
|
|
96
159
|
|
97
160
|
winston.debug('UPDATE PROJECT REQ BODY ', update);
|
98
161
|
|
99
|
-
|
162
|
+
// console.log("update",JSON.stringify(update));
|
100
163
|
|
101
164
|
Project.findByIdAndUpdate(req.params.projectid, update, { new: true, upsert: true }, function (err, updatedProject) {
|
102
165
|
if (err) {
|
@@ -143,6 +206,50 @@ router.patch('/:projectid', [passport.authenticate(['basic', 'jwt'], { session:
|
|
143
206
|
}
|
144
207
|
|
145
208
|
|
209
|
+
|
210
|
+
if (req.body["settings.email.templates.assignedRequest"]!=undefined) {
|
211
|
+
update["settings.email.templates.assignedRequest"] = req.body["settings.email.templates.assignedRequest"];
|
212
|
+
}
|
213
|
+
if (req.body["settings.email.templates.assignedEmailMessage"]!=undefined) {
|
214
|
+
update["settings.email.templates.assignedEmailMessage"] = req.body["settings.email.templates.assignedEmailMessage"];
|
215
|
+
}
|
216
|
+
if (req.body["settings.email.templates.pooledRequest"]!=undefined) {
|
217
|
+
update["settings.email.templates.pooledRequest"] = req.body["settings.email.templates.pooledRequest"];
|
218
|
+
}
|
219
|
+
if (req.body["settings.email.templates.pooledEmailMessage"]!=undefined) {
|
220
|
+
update["settings.email.templates.pooledEmailMessage"] = req.body["settings.email.templates.pooledEmailMessage"];
|
221
|
+
}
|
222
|
+
if (req.body["settings.email.templates.newMessage"]!=undefined) {
|
223
|
+
update["settings.email.templates.newMessage"] = req.body["settings.email.templates.newMessage"];
|
224
|
+
}
|
225
|
+
if (req.body["settings.email.templates.ticket"]!=undefined) {
|
226
|
+
update["settings.email.templates.ticket"] = req.body["settings.email.templates.ticket"];
|
227
|
+
}
|
228
|
+
if (req.body["settings.email.templates.sendTranscript"]!=undefined) {
|
229
|
+
update["settings.email.templates.sendTranscript"] = req.body["settings.email.templates.sendTranscript"];
|
230
|
+
}
|
231
|
+
|
232
|
+
|
233
|
+
if (req.body["settings.email.from"]!=undefined) {
|
234
|
+
update["settings.email.from"] = req.body["settings.email.from"];
|
235
|
+
}
|
236
|
+
if (req.body["settings.email.config.host"]!=undefined) {
|
237
|
+
update["settings.email.config.host"] = req.body["settings.email.config.host"];
|
238
|
+
}
|
239
|
+
if (req.body["settings.email.config.port"]!=undefined) {
|
240
|
+
update["settings.email.config.port"] = req.body["settings.email.config.port"];
|
241
|
+
}
|
242
|
+
if (req.body["settings.email.config.secure"]!=undefined) {
|
243
|
+
update["settings.email.config.secure"] = req.body["settings.email.config.secure"];
|
244
|
+
}
|
245
|
+
if (req.body["settings.email.config.user"]!=undefined) {
|
246
|
+
update["settings.email.config.user"] = req.body["settings.email.config.user"];
|
247
|
+
}
|
248
|
+
if (req.body["settings.email.config.pass"]!=undefined) {
|
249
|
+
update["settings.email.config.pass"] = req.body["settings.email.config.pass"];
|
250
|
+
}
|
251
|
+
|
252
|
+
|
146
253
|
if (req.body["settings.chat_limit_on"]!=undefined) {
|
147
254
|
update["settings.chat_limit_on"] = req.body["settings.chat_limit_on"];
|
148
255
|
}
|
package/routes/request.js
CHANGED
@@ -184,7 +184,8 @@ router.patch('/:requestid', function (req, res) {
|
|
184
184
|
}
|
185
185
|
|
186
186
|
requestEvent.emit("request.update", request);
|
187
|
-
requestEvent.emit("request.update.comment", {comment:"PATCH",request:request});
|
187
|
+
requestEvent.emit("request.update.comment", {comment:"PATCH",request:request}); //Deprecated
|
188
|
+
requestEvent.emit("request.updated", {comment:"PATCH",request:request, patch: update});
|
188
189
|
return res.json(request);
|
189
190
|
});
|
190
191
|
|
@@ -455,7 +456,8 @@ router.patch('/:requestid/attributes', function (req, res) {
|
|
455
456
|
}
|
456
457
|
winston.verbose(" saved request attributes",savedRequest.toObject())
|
457
458
|
requestEvent.emit("request.update", savedRequest);
|
458
|
-
requestEvent.emit("request.update.comment", {comment:"ATTRIBUTES_PATCH",request:savedRequest})
|
459
|
+
requestEvent.emit("request.update.comment", {comment:"ATTRIBUTES_PATCH",request:savedRequest});//Deprecated
|
460
|
+
requestEvent.emit("request.updated", {comment:"ATTRIBUTES_PATCH",request:savedRequest, patch: {attributes:data}});
|
459
461
|
requestEvent.emit("request.attributes.update", savedRequest);
|
460
462
|
res.json(savedRequest);
|
461
463
|
});
|
@@ -483,7 +485,9 @@ router.post('/:requestid/notes', function (req, res) {
|
|
483
485
|
return res.status(500).send({ success: false, msg: 'Error adding request object.' });
|
484
486
|
}
|
485
487
|
requestEvent.emit("request.update", updatedRequest);
|
486
|
-
requestEvent.emit("request.update.comment", {comment:"NOTE_ADD",request:updatedRequest})
|
488
|
+
requestEvent.emit("request.update.comment", {comment:"NOTE_ADD",request:updatedRequest});//Deprecated
|
489
|
+
requestEvent.emit("request.updated", {comment:"NOTE_ADD",request:updatedRequest, patch: {notes:note}});
|
490
|
+
|
487
491
|
return res.json(updatedRequest);
|
488
492
|
});
|
489
493
|
|
@@ -506,7 +510,9 @@ router.delete('/:requestid/notes/:noteid', function (req, res) {
|
|
506
510
|
return res.status(500).send({ success: false, msg: 'Error adding request object.' });
|
507
511
|
}
|
508
512
|
requestEvent.emit("request.update", updatedRequest);
|
509
|
-
requestEvent.emit("request.update.comment", {comment:"NOTE_DELETE",request:updatedRequest})
|
513
|
+
requestEvent.emit("request.update.comment", {comment:"NOTE_DELETE",request:updatedRequest});//Deprecated
|
514
|
+
// requestEvent.emit("request.updated", {comment:"NOTE_DELETE",request:updatedRequest, patch: {notes:req.params.noteid}});
|
515
|
+
|
510
516
|
return res.json(updatedRequest);
|
511
517
|
});
|
512
518
|
|
package/routes/user-request.js
CHANGED
@@ -45,7 +45,9 @@ router.patch('/:requestid/rating', function (req, res) {
|
|
45
45
|
}
|
46
46
|
|
47
47
|
requestEvent.emit("request.update", request);
|
48
|
-
requestEvent.emit("request.update.comment", {comment:"PATCH",request:request})
|
48
|
+
requestEvent.emit("request.update.comment", {comment:"PATCH",request:request});//Deprecated
|
49
|
+
requestEvent.emit("request.updated", {comment:"PATCH",request:request, patch: update});
|
50
|
+
|
49
51
|
return res.json(request);
|
50
52
|
});
|
51
53
|
|
package/services/emailService.js
CHANGED
@@ -119,6 +119,7 @@ class EmailService {
|
|
119
119
|
}
|
120
120
|
|
121
121
|
readTemplate(templateName, settings) {
|
122
|
+
// aggiunsta questo
|
122
123
|
var that = this;
|
123
124
|
winston.debug('EmailService readTemplate: '+ templateName + ' ' + JSON.stringify(settings));
|
124
125
|
|
@@ -246,11 +247,19 @@ class EmailService {
|
|
246
247
|
|
247
248
|
// send mail with defined transport object
|
248
249
|
this.getTransport(mail.config).sendMail(mailOptions, (error, info) => {
|
249
|
-
if (error) {
|
250
|
+
if (error) {
|
251
|
+
if (mail.callback){
|
252
|
+
mail.callback(error, {info:info});
|
253
|
+
}
|
250
254
|
return winston.error("Error sending email ", {error:error, mailOptions:mailOptions});
|
251
255
|
}
|
252
256
|
winston.verbose('Email sent:', {info: info});
|
253
257
|
winston.debug('Email sent:', {info: info, mailOptions: mailOptions});
|
258
|
+
|
259
|
+
if (mail.callback){
|
260
|
+
mail.callback(error, {info:info});
|
261
|
+
}
|
262
|
+
|
254
263
|
// Preview only available when sending through an Ethereal account
|
255
264
|
// winston.debug('Preview URL: %s', nodemailer.getTestMessageUrl(info));
|
256
265
|
|
@@ -260,7 +269,7 @@ class EmailService {
|
|
260
269
|
}
|
261
270
|
|
262
271
|
|
263
|
-
async sendTest(to) {
|
272
|
+
async sendTest(to, configEmail, callback) {
|
264
273
|
|
265
274
|
var that = this;
|
266
275
|
|
@@ -268,19 +277,12 @@ class EmailService {
|
|
268
277
|
|
269
278
|
var template = handlebars.compile(html);
|
270
279
|
|
271
|
-
var replacements = {
|
272
|
-
user: {name: "andrea"},
|
273
|
-
enabled: true
|
280
|
+
var replacements = {
|
274
281
|
};
|
275
282
|
|
276
283
|
var html = template(replacements);
|
277
|
-
|
278
|
-
that.send({to:to, subject:`TileDesk test email`,html: html});
|
279
|
-
|
280
|
-
//that.send(that.bcc, `TileDesk test email - notification`, html);
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
+
|
285
|
+
return that.send({to:to, subject:`TileDesk test email`, config: configEmail, html: html, callback: callback});
|
284
286
|
|
285
287
|
}
|
286
288
|
|
@@ -12,6 +12,10 @@ var eventService = require('../pubmodules/events/eventService');
|
|
12
12
|
var mongoose = require('mongoose');
|
13
13
|
const { TiledeskChatbotUtil } = require('@tiledesk/tiledesk-chatbot-util');
|
14
14
|
const ActionsConstants = require('../models/actionsConstants');
|
15
|
+
var httpUtil = require('../utils/httpUtil');
|
16
|
+
|
17
|
+
var webhook_origin = process.env.WEBHOOK_ORIGIN || "http://localhost:3000";
|
18
|
+
winston.debug("webhook_origin: "+webhook_origin);
|
15
19
|
|
16
20
|
class FaqBotHandler {
|
17
21
|
|
@@ -137,7 +141,7 @@ class FaqBotHandler {
|
|
137
141
|
|
138
142
|
Faq.find(query)
|
139
143
|
.lean().
|
140
|
-
exec(
|
144
|
+
exec(async (err, faqs) => {
|
141
145
|
if (err) {
|
142
146
|
return winston.error("Error getting faq object.",err);
|
143
147
|
}
|
@@ -209,7 +213,13 @@ class FaqBotHandler {
|
|
209
213
|
messageService.send(sender, botName, message.recipient, command_parsed.command,
|
210
214
|
message.id_project, sender, {subtype: "info"}, 'text', undefined).then(function(savedMessage){
|
211
215
|
winston.debug("agent_handoff faqs agent sent ", savedMessage.toObject());
|
212
|
-
})
|
216
|
+
}).catch(function(err){
|
217
|
+
winston.log({
|
218
|
+
level: 'error',
|
219
|
+
message: 'Error sending message bot: '+ JSON.stringify(err) ,
|
220
|
+
label: message.id_project
|
221
|
+
});
|
222
|
+
});
|
213
223
|
// PATCH: Chat clients (i.e. web widget) remove messages with text = null
|
214
224
|
// command_parsed.text contains the eventual text before the \agent command
|
215
225
|
// or 'all the message text' if \agent was not found
|
@@ -224,7 +234,13 @@ class FaqBotHandler {
|
|
224
234
|
messageService.send(sender, botName, message.recipient, bot_answer.text,
|
225
235
|
message.id_project, sender, attr, bot_answer.type, bot_answer.metadata, bot_answer.language).then(function(savedMessage){
|
226
236
|
winston.debug("faqbot message botAns ", savedMessage.toObject());
|
227
|
-
})
|
237
|
+
}).catch(function(err){
|
238
|
+
winston.log({
|
239
|
+
level: 'error',
|
240
|
+
message: 'Error sending message bot: '+ JSON.stringify(err) ,
|
241
|
+
label: message.id_project
|
242
|
+
});
|
243
|
+
});
|
228
244
|
// }
|
229
245
|
|
230
246
|
|
@@ -238,20 +254,57 @@ class FaqBotHandler {
|
|
238
254
|
|
239
255
|
} else {
|
240
256
|
|
257
|
+
|
241
258
|
query = { "id_project": message.id_project, "id_faq_kb": faq_kb._id};
|
242
|
-
|
243
|
-
var
|
259
|
+
var mongoproject = undefined;
|
260
|
+
var sort = undefined;
|
244
261
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
262
|
+
//make http request external
|
263
|
+
if (faq_kb.url) {
|
264
|
+
|
265
|
+
|
266
|
+
var url = faq_kb.url+"/parse";
|
267
|
+
winston.debug("fulltext search external url " + url);
|
250
268
|
|
251
|
-
|
252
|
-
|
269
|
+
var json = {text: message.text, language: faq_kb.language, id_project: message.id_project, id_faq_kb: faq_kb._id};
|
270
|
+
winston.debug("fulltext search external json", json);
|
271
|
+
|
272
|
+
var headers = {
|
273
|
+
'Content-Type' : 'application/json',
|
274
|
+
'User-Agent': 'tiledesk-bot',
|
275
|
+
'Origin': webhook_origin
|
276
|
+
};
|
277
|
+
|
278
|
+
var res = await httpUtil.call(url, headers, json, "POST")
|
279
|
+
winston.debug("res", res);
|
280
|
+
|
281
|
+
if (res && res.intent && res.intent.name) {
|
282
|
+
var intent_name = res.intent.name;
|
283
|
+
winston.debug("intent_name", intent_name);
|
284
|
+
//filtra su intent name
|
285
|
+
query.intent_display_name = intent_name;
|
286
|
+
winston.debug("query",query);
|
287
|
+
|
288
|
+
}
|
289
|
+
} else {
|
290
|
+
|
291
|
+
var search_obj = {"$search": message.text};
|
292
|
+
|
293
|
+
if (faq_kb.language) {
|
294
|
+
search_obj["$language"] = faq_kb.language;
|
295
|
+
}
|
296
|
+
query.$text = search_obj;
|
297
|
+
winston.debug("fulltext search query", query);
|
298
|
+
|
299
|
+
mongoproject = {score: { $meta: "textScore" } };
|
300
|
+
sort = { score: { $meta: "textScore" } } //https://docs.mongodb.com/manual/reference/operator/query/text/#sort-by-text-search-score
|
301
|
+
}
|
302
|
+
|
303
|
+
|
304
|
+
Faq.find(query, mongoproject)
|
305
|
+
.sort(sort)
|
253
306
|
.lean().
|
254
|
-
exec(
|
307
|
+
exec(async (err, faqs) => {
|
255
308
|
if (err) {
|
256
309
|
return winston.error('Error getting fulltext objects.', err);
|
257
310
|
}
|
@@ -266,6 +319,53 @@ class FaqBotHandler {
|
|
266
319
|
if (faqs && faqs.length>0 && faqs[0].answer) {
|
267
320
|
answerObj = faqs[0];
|
268
321
|
|
322
|
+
|
323
|
+
// non fare la ricerca fulltext
|
324
|
+
//make http request external
|
325
|
+
/*
|
326
|
+
if (faq_kb.url) {
|
327
|
+
|
328
|
+
|
329
|
+
var url = faq_kb.url+"/parse";
|
330
|
+
winston.verbose("fulltext search external url " + url);
|
331
|
+
|
332
|
+
var json = {text: message.text, language: faq_kb.language, id_project: message.id_project, id_faq_kb: faq_kb._id};
|
333
|
+
winston.verbose("fulltext search external json", json);
|
334
|
+
|
335
|
+
var headers = {
|
336
|
+
'Content-Type' : 'application/json',
|
337
|
+
'User-Agent': 'tiledesk-bot',
|
338
|
+
'Origin': webhook_origin
|
339
|
+
};
|
340
|
+
|
341
|
+
var res = await httpUtil.call(url, headers, json, "POST")
|
342
|
+
console.log("res", res);
|
343
|
+
|
344
|
+
if (res && res.intent && res.intent.name) {
|
345
|
+
var intent_name = res.intent.name;
|
346
|
+
console.log("intent_name", intent_name);
|
347
|
+
//filtra su intent name
|
348
|
+
var queryExternal = { id_project: message.id_project, id_faq_kb: faq_kb._id, intent_display_name: intent_name};
|
349
|
+
winston.verbose("queryExternal",queryExternal);
|
350
|
+
|
351
|
+
var faqExternal = await Faq.findOne(queryExternal)
|
352
|
+
.lean().
|
353
|
+
exec();
|
354
|
+
|
355
|
+
winston.verbose("faqExternal",faqExternal);
|
356
|
+
|
357
|
+
if (faqExternal) {
|
358
|
+
answerObj = faqExternal;
|
359
|
+
}
|
360
|
+
|
361
|
+
}
|
362
|
+
}
|
363
|
+
*/
|
364
|
+
|
365
|
+
|
366
|
+
|
367
|
+
|
368
|
+
|
269
369
|
// qui
|
270
370
|
faqBotSupport.getParsedMessage(answerObj.answer, message, faq_kb, answerObj).then(function(bot_answer) {
|
271
371
|
|
@@ -315,7 +415,14 @@ class FaqBotHandler {
|
|
315
415
|
messageService.send(sender, botName, message.recipient, command_parsed.command,
|
316
416
|
message.id_project, sender, {subtype: "info"}, 'text', undefined).then(function(savedMessage){
|
317
417
|
winston.debug("agent_handoff faqs agent sent ", savedMessage.toObject());
|
318
|
-
})
|
418
|
+
}).catch(function(err){
|
419
|
+
winston.log({
|
420
|
+
level: 'error',
|
421
|
+
message: 'Error sending message bot: '+ JSON.stringify(err) ,
|
422
|
+
label: message.id_project
|
423
|
+
});
|
424
|
+
});
|
425
|
+
|
319
426
|
// PATCH: Chat clients (i.e. web widget) remove messages with text = null
|
320
427
|
// command_parsed.text contains the eventual text before the \agent command
|
321
428
|
// or 'all the message text' if \agent was not found
|
@@ -330,7 +437,13 @@ class FaqBotHandler {
|
|
330
437
|
message.id_project, sender, attr, bot_answer.type, bot_answer.metadata, bot_answer.language).then(function(savedMessage){
|
331
438
|
|
332
439
|
winston.debug("faqbot message sending ", savedMessage.toObject());
|
333
|
-
})
|
440
|
+
}).catch(function(err){
|
441
|
+
winston.log({
|
442
|
+
level: 'error',
|
443
|
+
message: 'Error sending message bot: '+ JSON.stringify(err) ,
|
444
|
+
label: message.id_project
|
445
|
+
});
|
446
|
+
});
|
334
447
|
});
|
335
448
|
|
336
449
|
|
@@ -408,7 +521,13 @@ class FaqBotHandler {
|
|
408
521
|
messageService.send(sender, botName, message.recipient, command_parsed.command,
|
409
522
|
message.id_project, sender, {subtype: "info"}, 'text', undefined).then(function(savedMessage){
|
410
523
|
winston.debug("agent_handoff faqs agent sent ", savedMessage.toObject());
|
411
|
-
})
|
524
|
+
}).catch(function(err){
|
525
|
+
winston.log({
|
526
|
+
level: 'error',
|
527
|
+
message: 'Error sending message bot: '+ JSON.stringify(err) ,
|
528
|
+
label: message.id_project
|
529
|
+
});
|
530
|
+
});
|
412
531
|
// PATCH: Chat clients (i.e. web widget) remove messages with text = null
|
413
532
|
// command_parsed.text contains the eventual text before the \agent command
|
414
533
|
// or 'all the message text' if \agent was not found
|
@@ -423,6 +542,13 @@ class FaqBotHandler {
|
|
423
542
|
messageService.send(sender, botName, message.recipient, botAns.text,
|
424
543
|
message.id_project, sender, attr, botAns.type, botAns.metadata, botAns.language).then(function(savedMessage){
|
425
544
|
winston.debug("faqbot message botAns " ,savedMessage.toObject());
|
545
|
+
})
|
546
|
+
.catch(function(err){
|
547
|
+
winston.log({
|
548
|
+
level: 'error',
|
549
|
+
message: 'Error sending message bot: '+ JSON.stringify(err) + " " + JSON.stringify(botAns.text) ,
|
550
|
+
label: message.id_project
|
551
|
+
});
|
426
552
|
});
|
427
553
|
}
|
428
554
|
|