@tiledesk/tiledesk-server 2.3.73 → 2.3.74

Sign up to get free protection for your applications and to get access to all the features.
package/event/botEvent.js CHANGED
@@ -4,6 +4,8 @@ const Faq_kb = require('../models/faq_kb');
4
4
  var winston = require('../config/winston');
5
5
 
6
6
  class BotEvent extends EventEmitter {}
7
+ const cacheUtil = require("../utils/cacheUtil");
8
+ const cacheEnabler = require("../services/cacheEnabler");
7
9
 
8
10
  const botEvent = new BotEvent();
9
11
 
@@ -108,7 +110,17 @@ messageEvent.on('message.create', function(message) {
108
110
  }
109
111
 
110
112
 
111
- Faq_kb.findById(botId).exec(function(err, bot) {
113
+ let qbot = Faq_kb.findById(botId); //TODO add cache_bot_here
114
+
115
+ if (cacheEnabler.faq_kb) {
116
+ qbot.cache(cacheUtil.defaultTTL, message.id_project+":faq_kbs:id:"+botId)
117
+ winston.debug('faq_kb cache enabled');
118
+ }
119
+
120
+ qbot.exec(function(err, bot) {
121
+
122
+
123
+
112
124
  if (err) {
113
125
  winston.error('Error getting object.', err);
114
126
  return 0;
@@ -18,7 +18,7 @@ var UserUtil = require('../utils/userUtil');
18
18
  var jwt = require('jsonwebtoken');
19
19
  const url = require('url');
20
20
  var cacheUtil = require('../utils/cacheUtil');
21
-
21
+ var cacheEnabler = require("../services/cacheEnabler");
22
22
 
23
23
  const MaskData = require("maskdata");
24
24
 
@@ -114,8 +114,18 @@ module.exports = function(passport) {
114
114
  return done(null, null);
115
115
  }
116
116
 
117
- winston.debug("bot id: "+ AudienceId );
118
- Faq_kb.findById(AudienceId).select('+secret').exec(function (err, faq_kb){
117
+ winston.debug("bot id AudienceId: "+ AudienceId );
118
+ let qbot = Faq_kb.findById(AudienceId).select('+secret');
119
+
120
+ if (cacheEnabler.faq_kb) {
121
+ let id_project = decoded.id_project;
122
+ winston.debug("decoded.id_project:"+decoded.id_project);
123
+ qbot.cache(cacheUtil.defaultTTL, id_project+":faq_kbs:id:"+AudienceId+":secret")
124
+ winston.debug('faq_kb AudienceId cache enabled');
125
+ }
126
+
127
+
128
+ qbot.exec(function (err, faq_kb){ //TODO add cache_bot_here
119
129
  if (err) {
120
130
  winston.error("auth Faq_kb err: ", {error: err, decoded:decoded} );
121
131
  return done(null, null);
@@ -247,7 +257,18 @@ module.exports = function(passport) {
247
257
 
248
258
  if (subject == "bot") {
249
259
  winston.debug("Passport JWT bot");
250
- Faq_kb.findOne({_id: identifier}, function(err, faq_kb) {
260
+
261
+ let qbot = Faq_kb.findOne({_id: identifier}); //TODO add cache_bot_here
262
+
263
+ if (cacheEnabler.faq_kb) {
264
+ let id_project = jwt_payload.id_project;
265
+ winston.debug("jwt_payload.id_project:"+jwt_payload.id_project);
266
+ qbot.cache(cacheUtil.defaultTTL, id_project+":faq_kbs:id:"+identifier)
267
+ winston.debug('faq_kb cache enabled');
268
+ }
269
+
270
+ qbot.exec(function(err, faq_kb) {
271
+
251
272
  if (err) {
252
273
  winston.error("Passport JWT bot err", err);
253
274
  return done(err, false);
@@ -326,9 +347,15 @@ module.exports = function(passport) {
326
347
 
327
348
  } else {
328
349
  winston.debug("Passport JWT generic user");
329
- User.findOne({_id: identifier, status: 100})
350
+ let quser = User.findOne({_id: identifier, status: 100}) //TODO user_cache_here
330
351
  //@DISABLED_CACHE .cache(cacheUtil.defaultTTL, "users:id:"+identifier)
331
- .exec(function(err, user) {
352
+
353
+ if (cacheEnabler.user) {
354
+ quser.cache(cacheUtil.defaultTTL, "users:id:"+identifier)
355
+ winston.debug('user cache enabled');
356
+ }
357
+
358
+ quser.exec(function(err, user) {
332
359
  if (err) {
333
360
  winston.error("Passport JWT generic err ", err);
334
361
  return done(err, false);
@@ -358,7 +385,7 @@ module.exports = function(passport) {
358
385
  var email = userid.toLowerCase();
359
386
  winston.debug("email lowercase: " + email);
360
387
 
361
- User.findOne({ email: email, status: 100}, 'email firstname lastname password emailverified id')
388
+ User.findOne({ email: email, status: 100}, 'email firstname lastname password emailverified id') //TODO user_cache_here. NOT used frequently. ma attento select. ATTENTO QUI NN USEREI LA SELECT altrimenti con JWT ho tuttto USER mentre con basich auth solo aluni campi
362
389
  //@DISABLED_CACHE .cache(cacheUtil.defaultTTL, "users:email:"+email)
363
390
  .exec(function (err, user) {
364
391
 
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.3.73",
4
+ "version": "2.3.74",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -43,7 +43,7 @@
43
43
  "@tiledesk/tiledesk-chatbot-util": "^0.8.33",
44
44
  "@tiledesk/tiledesk-json-rules-engine": "^4.0.3",
45
45
  "@tiledesk/tiledesk-rasa-connector": "^1.0.10",
46
- "@tiledesk/tiledesk-tybot-connector": "^0.1.49",
46
+ "@tiledesk/tiledesk-tybot-connector": "^0.1.50",
47
47
  "@tiledesk/tiledesk-dialogflow-connector": "^1.8.3",
48
48
  "app-root-path": "^3.0.0",
49
49
  "bcrypt-nodejs": "0.0.3",
@@ -201,12 +201,13 @@
201
201
  winston.verbose("Created cache for user.signup",{err:err});
202
202
  });
203
203
 
204
- var key = "users:email:"+user.email;
205
- winston.verbose("Creating cache for user.signup with key: " + key);
206
- client.set(key, user, cacheUtil.defaultTTL, (err, reply) => {
207
- winston.debug("Created cache for user.signup",reply);
208
- winston.verbose("Created cache for user.signup",{err:err});
209
- });
204
+ // NOT IN USE (TESTED)
205
+ // var key = "users:email:"+user.email;
206
+ // winston.verbose("Creating cache for user.signup with key: " + key);
207
+ // client.set(key, user, cacheUtil.defaultTTL, (err, reply) => {
208
+ // winston.debug("Created cache for user.signup",reply);
209
+ // winston.verbose("Created cache for user.signup",{err:err});
210
+ // });
210
211
  });
211
212
  });
212
213
 
@@ -222,12 +223,13 @@
222
223
  winston.verbose("Updated cache for user.update",{err:err});
223
224
  });
224
225
 
225
- var key = "users:email:"+user.email;
226
- winston.verbose("Updating cache for user.update with key: " + key);
227
- client.set(key, user, cacheUtil.defaultTTL, (err, reply) => {
228
- winston.debug("Updated cache for user.update",reply);
229
- winston.verbose("Updated cache for user.update",{err:err});
230
- });
226
+ // NOT IN USE (TESTED)
227
+ // var key = "users:email:"+user.email;
228
+ // winston.verbose("Updating cache for user.update with key: " + key);
229
+ // client.set(key, user, cacheUtil.defaultTTL, (err, reply) => {
230
+ // winston.debug("Updated cache for user.update",reply);
231
+ // winston.verbose("Updated cache for user.update",{err:err});
232
+ // });
231
233
  });
232
234
  });
233
235
 
@@ -242,12 +244,13 @@
242
244
  winston.verbose("Deleted cache for user.delete",{err:err});
243
245
  });
244
246
 
245
- var key = "users:email:"+user.email;
246
- winston.verbose("Deleting cache for user.delete with key: " + key);
247
- client.del(key, (err, reply) => {
248
- winston.debug("Deleted cache for user.delete",reply);
249
- winston.verbose("Deleted cache for user.delete",{err:err});
250
- });
247
+ // NOT IN USE (TESTED)
248
+ // var key = "users:email:"+user.email;
249
+ // winston.verbose("Deleting cache for user.delete with key: " + key);
250
+ // client.del(key, (err, reply) => {
251
+ // winston.debug("Deleted cache for user.delete",reply);
252
+ // winston.verbose("Deleted cache for user.delete",{err:err});
253
+ // });
251
254
  });
252
255
  });
253
256
 
@@ -413,6 +416,14 @@
413
416
  winston.verbose("Created cache for faq_kb.update",{err:err});
414
417
  });
415
418
 
419
+
420
+ key = faq_kb.id_project+":faq_kbs:id:"+faq_kb._id+":secret";
421
+ winston.verbose("Deleting cache for faq_kb.update secret with key: " + key);
422
+ client.del(key, function (err, reply) { //tested
423
+ winston.debug("Deleted cache for faq_kb.update secret",reply);
424
+ winston.verbose("Deleted cache for faq_kb.update secret",{err:err});
425
+ });
426
+
416
427
  // TODO invalidate widgets here
417
428
  winston.verbose("Deleting widgets cache for faqbot.update");
418
429
  invalidateWidgets(client, faq_kb.id_project); //TESTED
@@ -420,7 +431,7 @@
420
431
  });
421
432
 
422
433
 
423
- botEvent.on("faqbot.delete", function(faq_kb) {
434
+ botEvent.on("faqbot.delete", function(faq_kb) { //LOGIC deletion for chatbot is used
424
435
  setImmediate(() => {
425
436
  var key = faq_kb.id_project+":faq_kbs:id:"+faq_kb._id;
426
437
  winston.verbose("Deleting cache for faqbot.delete with key: " + key);
@@ -429,6 +440,14 @@
429
440
  winston.verbose("Deleted cache for faqbot.delete",{err:err});
430
441
  });
431
442
 
443
+
444
+ key = faq_kb.id_project+":faq_kbs:id:"+faq_kb._id+":secret";
445
+ winston.verbose("Deleting cache for faq_kb.delete secret with key: " + key);
446
+ client.del(key, function (err, reply) {
447
+ winston.debug("Deleted cache for faq_kb.delete secret",reply);
448
+ winston.verbose("Deleted cache for faq_kb.delete secret",{err:err});
449
+ });
450
+
432
451
  // TODO invalidate widgets here
433
452
  winston.verbose("Deleting widgets cache for faqbot.delete");
434
453
  invalidateWidgets(client, faq_kb.id_project); //tested
@@ -11,6 +11,9 @@ var request = require('retry-request', {
11
11
  var webhook_origin = process.env.WEBHOOK_ORIGIN || "http://localhost:3000";
12
12
  winston.debug("webhook_origin: "+webhook_origin);
13
13
 
14
+ var cacheUtil = require('../utils/cacheUtil');
15
+ var cacheEnabler = require("../services/cacheEnabler");
16
+
14
17
  class BotSubscriptionNotifier {
15
18
 
16
19
 
@@ -76,7 +79,17 @@ class BotSubscriptionNotifier {
76
79
  //modify to async
77
80
  botEvent.on('bot.message.received.notify.external', function(botNotification) {
78
81
  var bot = botNotification.bot;
79
- Faq_kb.findById(bot._id).select('+secret').exec(function (err, botWithSecret){
82
+ winston.debug('getting botWithSecret');
83
+ let qbot = Faq_kb.findById(bot._id).select('+secret')
84
+
85
+ if (cacheEnabler.faq_kb) {
86
+ let id_project = bot.id_project;
87
+ winston.debug("id_project.id_project:"+id_project);
88
+ qbot.cache(cacheUtil.defaultTTL, id_project+":faq_kbs:id:"+bot._id+":secret")
89
+ winston.debug('faq_kb BotSubscriptionNotifier cache enabled');
90
+ }
91
+
92
+ qbot.exec(function (err, botWithSecret){ //TODO add cache_bot_here????
80
93
  if (err) {
81
94
  winston.debug('Error getting botWithSecret', err);
82
95
  }
@@ -86,7 +86,7 @@ class FaqBotHandler {
86
86
  winston.debug("message.text "+ message.text);
87
87
 
88
88
 
89
- Faq_kb.findById(botId)
89
+ Faq_kb.findById(botId) //TODO add cache_bot_NOT_here it's internal bot that is deprecated-> skip caching
90
90
  //@DISABLED_CACHE .cache(cacheUtil.defaultTTL, message.id_project+":faq_kbs:id:"+botId)
91
91
  .exec(function(err, faq_kb) {
92
92
  if (err) {
@@ -126,7 +126,7 @@ class FaqBotSupport {
126
126
  return resolve(messageReply);
127
127
  }
128
128
 
129
- var botWithSecret = await Faq_kb.findById(bot._id).select('+secret').exec();
129
+ var botWithSecret = await Faq_kb.findById(bot._id).select('+secret').exec(); //TODO add cache_bot_nOT_here?? it's internal bot that is deprecated-> skip caching
130
130
 
131
131
  var signOptions = {
132
132
  issuer: 'https://tiledesk.com',
@@ -22,14 +22,14 @@ async send(sender, senderFullname, recipient, text, id_project, createdBy, attri
22
22
  var id = sender.replace("bot_",""); // botprefix
23
23
  winston.debug("bot id: "+id);
24
24
  sender = id; //change sender removing bot_
25
- var bot = await Faq_kb.findById(id)
25
+ var bot = await Faq_kb.findById(id) //TODO add cache_bot_here non sembra scattare.. dove viene usato?
26
26
  //@DISABLED_CACHE .cache(cacheUtil.defaultTTL, id_project+":faq_kbs:id:"+id)
27
27
  .exec();
28
28
  winston.debug("bot",bot);
29
29
  senderFullname = bot.name;
30
30
  } else {
31
31
  winston.debug("user id: "+sender);
32
- var user = await User.findById(sender)
32
+ var user = await User.findById(sender) //TODO user_cache_here
33
33
  //@DISABLED_CACHE .cache(cacheUtil.defaultTTL, "users:id:"+sender) //user_cache
34
34
  .exec()
35
35
  winston.debug("user", user);