@tiledesk/tiledesk-server 2.2.13 → 2.2.17
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|