@tiledesk/tiledesk-server 2.2.15 → 2.2.16

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,22 @@
1
- # 2.2.15
2
1
 
2
+
3
+
4
+
5
+ # 2.2.16
6
+ - Email templates endpoint
7
+ - Created request.updated event for request event and deprecated request.update.comment
8
+ - Added Handlebars template processor for the message transformer module only if message.attributes.templateProcessor=true
9
+ - Email test send endpoint
10
+ - Bugfix widget label
11
+ - Added /intents alias for /faq endpoint
12
+ - The request_id field of the request model has now a unique index
13
+
14
+ # 2.2.15 -> PROD
3
15
  - Added catch messageService.send for bot
4
16
  - Added external searcher for bot( ex. Rasa proxy)
5
17
  - Faq language fix taken from bot language for create single and import from csv
6
18
  - Lower case reset password fix
7
- - Added alias /bots for /faq_kb AGGIORNA DOC
19
+ - Added alias /bots for /faq_kb
8
20
 
9
21
  # 2.2.14
10
22
  - Fix Tiledesk Queue 1.1.11 with authEvent.queueEnabled = true
package/README.md CHANGED
@@ -15,7 +15,7 @@ You can find more info here: https://developer.tiledesk.com
15
15
 
16
16
  # Prerequisites
17
17
 
18
- * [Nodejs](https://www.npmjs.com/) and npm installed
18
+ * [Nodejs](https://www.npmjs.com/) and npm installed. Suggested versions are NodeJS 12.20.2 and NPM 6.14.11
19
19
  * [MongoDb](https://www.mongodb.com) installed
20
20
 
21
21
  # Running Tiledesk Server
package/app.js CHANGED
@@ -102,6 +102,7 @@ var campaigns = require('./routes/campaigns');
102
102
  var logs = require('./routes/logs');
103
103
  var requestUtilRoot = require('./routes/requestUtilRoot');
104
104
  var urls = require('./routes/urls');
105
+ var email = require('./routes/email');
105
106
 
106
107
  var bootDataLoader = require('./services/bootDataLoader');
107
108
  var settingDataLoader = require('./services/settingDataLoader');
@@ -294,7 +295,6 @@ app.use('/users', [passport.authenticate(['basic', 'jwt'], { session: false }),
294
295
  app.use('/logs', logs);
295
296
  app.use('/requests_util', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken], requestUtilRoot);
296
297
 
297
-
298
298
  // TODO security issues
299
299
  if (process.env.DISABLE_TRANSCRIPT_VIEW_PAGE ) {
300
300
  winston.info(" Transcript view page is disabled");
@@ -333,15 +333,15 @@ app.use('/:projectid/departments', department);
333
333
 
334
334
  channelManager.useUnderProjects(app);
335
335
 
336
-
336
+ //deprecated
337
337
  app.use('/:projectid/faq', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('agent')], faq);
338
+ app.use('/:projectid/intents', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('agent')], faq);
338
339
 
339
340
  //Deprecated??
340
341
  app.use('/:projectid/faqpub', faqpub);
341
342
 
342
343
  //deprecated
343
344
  app.use('/:projectid/faq_kb', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], faq_kb);
344
- // aggiorna doc
345
345
  app.use('/:projectid/bots', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], faq_kb);
346
346
 
347
347
 
@@ -375,6 +375,8 @@ app.use('/:projectid/labels', [fetchLabels],labels);
375
375
 
376
376
  app.use('/:projectid/campaigns',[passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('agent')], campaigns);
377
377
 
378
+ app.use('/:projectid/emails',[passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('owner')], email);
379
+
378
380
 
379
381
 
380
382
  if (pubModulesManager) {
@@ -5,8 +5,8 @@
5
5
  "LABEL_PLACEHOLDER": "type your message..",
6
6
  "LABEL_START_NW_CONV": "New conversation",
7
7
  "LABEL_FIRST_MSG": "Describe shortly your problem, you will be contacted by an agent.",
8
- "LABEL_FIRST_MSG_NO_AGENTS": "🤔 All operators are offline at the moment. You can anyway describe your problem. It will be assigned to the support team who will answer you as soon as possible.",
9
- "LABEL_FIRST_MSG_OPERATING_HOURS_CLOSED": "🤔 Our offices are closed. You can anyway describe your problem. It will be assigned to the support team who will answer you as soon as possible.",
8
+ "LABEL_FIRST_MSG_NO_AGENTS": "🤔 All operators are offline at the moment. You can anyway describe your problem. It will be assigned to the support team who will get back to you as soon as possible.",
9
+ "LABEL_FIRST_MSG_OPERATING_HOURS_CLOSED": "🤔 Our offices are closed. You can anyway describe your problem. It will be assigned to the support team who will get back to you as soon as possible.",
10
10
  "LABEL_SELECT_TOPIC": "Select a topic",
11
11
  "LABEL_COMPLETE_FORM": "Complete the form to start a conversation with the next available agent.",
12
12
  "LABEL_FIELD_NAME": "Name",
package/models/request.js CHANGED
@@ -43,7 +43,7 @@ var RequestSchema = new Schema({
43
43
  type: String,
44
44
  required: true,
45
45
  index: true,
46
- // unique: true
46
+ unique: true
47
47
 
48
48
  },
49
49
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-server",
3
3
  "description": "The Tiledesk server module",
4
- "version": "2.2.15",
4
+ "version": "2.2.16",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -41,10 +41,10 @@
41
41
  "@tiledesk-ent/tiledesk-server-payments": "^1.1.5",
42
42
  "@tiledesk-ent/tiledesk-server-queue": "^1.1.11",
43
43
  "@tiledesk-ent/tiledesk-server-request-history": "^1.1.5",
44
- "@tiledesk-ent/tiledesk-server-resthook": "^1.1.51",
44
+ "@tiledesk-ent/tiledesk-server-resthook": "^1.1.53",
45
45
  "@tiledesk-ent/tiledesk-server-routing-queue": "^1.1.11",
46
46
  "@tiledesk-ent/tiledesk-server-tags": "^1.1.1",
47
- "@tiledesk-ent/tiledesk-server-triggers": "^1.1.79",
47
+ "@tiledesk-ent/tiledesk-server-triggers": "^1.1.82",
48
48
  "@tiledesk-ent/tiledesk-server-visitorcounter": "^1.1.1"
49
49
  },
50
50
  "dependencies": {
@@ -1,6 +1,9 @@
1
1
  const messageTransformerInterceptor = require("./messageTransformerInterceptor");
2
2
  const microLanguageTransformerInterceptor = require("./microLanguageAttributesTransformerInterceptor");
3
+ const messageHandlebarsTransformerInterceptor = require("./messageHandlebarsTransformerInterceptor");
3
4
 
4
5
 
5
6
 
6
- module.exports = {messageTransformerInterceptor:messageTransformerInterceptor, microLanguageTransformerInterceptor:microLanguageTransformerInterceptor};
7
+ module.exports = {messageTransformerInterceptor:messageTransformerInterceptor,
8
+ microLanguageTransformerInterceptor:microLanguageTransformerInterceptor,
9
+ messageHandlebarsTransformerInterceptor: messageHandlebarsTransformerInterceptor};
@@ -0,0 +1,83 @@
1
+
2
+ const messagePromiseEvent = require('../../event/messagePromiseEvent');
3
+ const Request = require('../../models/request');
4
+ var winston = require('../../config/winston');
5
+ var cacheUtil = require('../../utils/cacheUtil');
6
+ var handlebars = require('handlebars');
7
+
8
+ class MessageHandlebarsTransformerInterceptor {
9
+
10
+
11
+
12
+
13
+ listen() {
14
+
15
+ var that = this;
16
+ winston.info("MessageHandlebarsTransformerInterceptor listener start ");
17
+
18
+
19
+ messagePromiseEvent.on('message.create.simple.before', async (data) => {
20
+ winston.debug('MessageHandlebarsTransformerInterceptor message.create.simple.before', data);
21
+
22
+ var message = data.beforeMessage;
23
+
24
+ if (!message.text) { //for image i think
25
+ return data;
26
+ }
27
+ if (message.attributes && message.attributes.templateProcessor == true) {
28
+
29
+ // TODO if variables are presents
30
+
31
+ var q1 = Request.findOne({request_id: message.recipient, id_project: message.id_project});
32
+
33
+ // if (message.attributes && message.attributes.populateTemplate == true) {
34
+ q1.populate('lead').
35
+ populate('department').
36
+ populate('participatingBots').
37
+ populate('participatingAgents').
38
+ populate({path:'requester',populate:{path:'id_user'}});
39
+ // }
40
+
41
+ var request = await q1.
42
+ cache(cacheUtil.defaultTTL, message.id_project+":requests:request_id:"+message.recipient).
43
+ exec();
44
+
45
+
46
+
47
+ var requestJSON = request.toJSON();
48
+
49
+ winston.debug('request mti: ', requestJSON);
50
+
51
+
52
+ var template = handlebars.compile(message.text);
53
+ winston.debug('template: '+ template);
54
+
55
+ // var templateSpec = handlebars.precompile(message.text);
56
+ // winston.info('templateSpec: ', templateSpec);
57
+
58
+
59
+ var replacements = {
60
+ request: requestJSON,
61
+ };
62
+
63
+ // {{request.first_text}}
64
+ // {{request.participatingAgents.0.firstname}}
65
+
66
+
67
+
68
+
69
+ var text = template(replacements);
70
+ winston.debug('text: '+ text);
71
+ message.text=text;
72
+
73
+ }
74
+ winston.debug('data: ' + JSON.stringify(data) );
75
+ return data;
76
+ });
77
+
78
+ }
79
+
80
+ }
81
+
82
+ var messageHandlebarsTransformerInterceptor = new MessageHandlebarsTransformerInterceptor();
83
+ module.exports = messageHandlebarsTransformerInterceptor;
@@ -168,6 +168,7 @@ class PubModulesManager {
168
168
  try {
169
169
  this.messageTransformer.messageTransformerInterceptor.listen();
170
170
  this.messageTransformer.microLanguageTransformerInterceptor.listen();
171
+ this.messageTransformer.messageHandlebarsTransformerInterceptor.listen();
171
172
  winston.info("PubModulesManager messageTransformer started.");
172
173
  } catch(err) {
173
174
  winston.info("PubModulesManager error starting messageTransformer module", err);
@@ -0,0 +1,32 @@
1
+ var express = require('express');
2
+
3
+ var router = express.Router();
4
+
5
+ var emailService = require("../services/emailService");
6
+ var winston = require('../config/winston');
7
+
8
+ router.get('/templates/:templateid',
9
+ async (req, res) => {
10
+ let templateid = req.params.templateid+".html";
11
+ winston.debug("templateid",templateid);
12
+
13
+ var html = await emailService.readTemplateFile(templateid);
14
+ res.json({template:html});
15
+ });
16
+
17
+ router.post('/test/send',
18
+ async (req, res) => {
19
+ let to = req.body.to;
20
+ winston.info("to",to);
21
+
22
+ let configEmail = req.body.config;
23
+ winston.info("configEmail", configEmail);
24
+
25
+ emailService.sendTest(to, configEmail, function(err,obj) {
26
+ // winston.info("sendTest rest", err, obj);
27
+ res.json({error: err, response:obj});
28
+ });
29
+
30
+ });
31
+
32
+ module.exports = router;
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
 
@@ -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
 
@@ -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
 
@@ -264,10 +264,10 @@ class FaqBotHandler {
264
264
 
265
265
 
266
266
  var url = faq_kb.url+"/parse";
267
- winston.verbose("fulltext search external url " + url);
267
+ winston.debug("fulltext search external url " + url);
268
268
 
269
269
  var json = {text: message.text, language: faq_kb.language, id_project: message.id_project, id_faq_kb: faq_kb._id};
270
- winston.verbose("fulltext search external json", json);
270
+ winston.debug("fulltext search external json", json);
271
271
 
272
272
  var headers = {
273
273
  'Content-Type' : 'application/json',
@@ -276,14 +276,14 @@ class FaqBotHandler {
276
276
  };
277
277
 
278
278
  var res = await httpUtil.call(url, headers, json, "POST")
279
- winston.verbose("res", res);
279
+ winston.debug("res", res);
280
280
 
281
281
  if (res && res.intent && res.intent.name) {
282
282
  var intent_name = res.intent.name;
283
- winston.verbose("intent_name", intent_name);
283
+ winston.debug("intent_name", intent_name);
284
284
  //filtra su intent name
285
285
  query.intent_display_name = intent_name;
286
- winston.info("query",query);
286
+ winston.debug("query",query);
287
287
 
288
288
  }
289
289
  } else {
@@ -294,7 +294,7 @@ class FaqBotHandler {
294
294
  search_obj["$language"] = faq_kb.language;
295
295
  }
296
296
  query.$text = search_obj;
297
- winston.info("fulltext search query", query);
297
+ winston.debug("fulltext search query", query);
298
298
 
299
299
  mongoproject = {score: { $meta: "textScore" } };
300
300
  sort = { score: { $meta: "textScore" } } //https://docs.mongodb.com/manual/reference/operator/query/text/#sort-by-text-search-score