@tiledesk/tiledesk-server 2.10.50 → 2.10.52

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@
5
5
  🚀 IN PRODUCTION 🚀
6
6
  (https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
7
7
 
8
+ # 2.10.52
9
+ - updated tybot-connector to 0.2.148
10
+ - updated faqRoute /get endpoint with restricted mode
11
+
12
+ # 2.10.51
13
+ - updated /replace endpoint adding trashed: false inside query
14
+
8
15
  # 2.10.50
9
16
  - updated tybot-connector to 0.2.147
10
17
  - removed logs
package/app.js CHANGED
@@ -557,8 +557,8 @@ app.use('/:projectid/tags', [passport.authenticate(['basic', 'jwt'], { session:
557
557
  app.use('/:projectid/subscriptions', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('admin')], resthook);
558
558
 
559
559
  //deprecated
560
- app.use('/:projectid/faq', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], faq);
561
- app.use('/:projectid/intents', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRoleOrTypes('agent', ['bot','subscription'])], faq);
560
+ app.use('/:projectid/faq', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken], faq);
561
+ app.use('/:projectid/intents', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken], faq);
562
562
 
563
563
  //Deprecated??
564
564
  app.use('/:projectid/faqpub', faqpub);
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.10.50",
4
+ "version": "2.10.52",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -48,7 +48,7 @@
48
48
  "@tiledesk/tiledesk-rasa-connector": "^1.0.10",
49
49
  "@tiledesk/tiledesk-telegram-connector": "^0.1.14",
50
50
  "@tiledesk/tiledesk-train-jobworker": "^0.0.11",
51
- "@tiledesk/tiledesk-tybot-connector": "^0.2.147",
51
+ "@tiledesk/tiledesk-tybot-connector": "^0.2.148",
52
52
  "@tiledesk/tiledesk-whatsapp-connector": "^0.1.76",
53
53
  "@tiledesk/tiledesk-whatsapp-jobworker": "^0.0.11",
54
54
  "@tiledesk/tiledesk-sms-connector": "^0.1.11",
package/routes/faq.js CHANGED
@@ -16,11 +16,12 @@ csv.separator = ';';
16
16
  const axios = require("axios").default;
17
17
  var configGlobal = require('../config/global');
18
18
  const roleConstants = require('../models/roleConstants');
19
+ const roleChecker = require('../middleware/has-role');
19
20
 
20
21
  const apiUrl = process.env.API_URL || configGlobal.apiUrl;
21
22
 
22
23
  // POST CSV FILE UPLOAD FROM CLIENT
23
- router.post('/uploadcsv', upload.single('uploadFile'), function (req, res, next) {
24
+ router.post('/uploadcsv', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), upload.single('uploadFile'), function (req, res, next) {
24
25
  winston.debug(' -> -> REQ BODY ', req.body);
25
26
  winston.debug(' -> ID FAQ-KB ', req.body.id_faq_kb);
26
27
  winston.debug(' -> DELIMITER ', req.body.delimiter);
@@ -138,7 +139,7 @@ router.post('/uploadcsv', upload.single('uploadFile'), function (req, res, next)
138
139
  });
139
140
 
140
141
 
141
- router.post('/', function (req, res) {
142
+ router.post('/', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), function (req, res) {
142
143
 
143
144
  winston.debug(req.body);
144
145
 
@@ -205,7 +206,7 @@ router.post('/', function (req, res) {
205
206
  });
206
207
  });
207
208
 
208
- router.post('/ops_update', async (req, res) => {
209
+ router.post('/ops_update', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), async (req, res) => {
209
210
 
210
211
  let id_faq_kb = req.body.id_faq_kb;
211
212
  let operations = req.body.operations;
@@ -321,7 +322,7 @@ router.post('/ops_update', async (req, res) => {
321
322
 
322
323
  })
323
324
 
324
- router.patch('/:faqid/attributes', function (req, res) {
325
+ router.patch('/:faqid/attributes', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), function (req, res) {
325
326
  let data = req.body;
326
327
  winston.debug("data: ", data);
327
328
 
@@ -374,7 +375,7 @@ router.patch('/:faqid/attributes', function (req, res) {
374
375
  })
375
376
  })
376
377
 
377
- router.put('/:faqid', function (req, res) {
378
+ router.put('/:faqid', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), function (req, res) {
378
379
 
379
380
  winston.debug('UPDATE FAQ ', req.body);
380
381
  let faqid = req.params.faqid;
@@ -470,7 +471,7 @@ router.put('/:faqid', function (req, res) {
470
471
 
471
472
 
472
473
  // DELETE REMOTE AND LOCAL FAQ
473
- router.delete('/:faqid', function (req, res) {
474
+ router.delete('/:faqid', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), function (req, res) {
474
475
 
475
476
  winston.debug('DELETE FAQ - FAQ ID ', req.params.faqid);
476
477
 
@@ -521,7 +522,7 @@ router.delete('/:faqid', function (req, res) {
521
522
  });
522
523
 
523
524
  // EXPORT FAQ TO CSV
524
- router.get('/csv', function (req, res) {
525
+ router.get('/csv', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), function (req, res) {
525
526
  var query = {};
526
527
 
527
528
  winston.debug('req.query', req.query);
@@ -554,7 +555,7 @@ router.get('/csv', function (req, res) {
554
555
  });
555
556
 
556
557
 
557
- router.get('/:faqid', function (req, res) {
558
+ router.get('/:faqid', roleChecker.hasRoleOrTypes('admin', ['bot', 'subscription']), function (req, res) {
558
559
 
559
560
  winston.debug(req.body);
560
561
 
@@ -570,12 +571,18 @@ router.get('/:faqid', function (req, res) {
570
571
  });
571
572
 
572
573
 
573
-
574
- router.get('/', function (req, res, next) {
574
+ router.get('/', roleChecker.hasRoleOrTypes('agent', ['bot', 'subscription']), function (req, res, next) {
575
575
  var query = {};
576
576
 
577
577
  winston.debug("GET ALL FAQ OF THE BOT ID (req.query): ", req.query);
578
578
 
579
+ let restricted_mode;
580
+
581
+ let project_user = req.projectuser;
582
+ if (project_user && project_user.role === roleConstants.AGENT) {
583
+ restricted_mode = true;
584
+ }
585
+
579
586
  if (req.query.id_faq_kb) {
580
587
  query.id_faq_kb = req.query.id_faq_kb;
581
588
  }
@@ -610,8 +617,7 @@ router.get('/', function (req, res, next) {
610
617
  query.intent_display_name = req.query.intent_display_name
611
618
  }
612
619
 
613
- let project_user = req.projectuser;
614
- if (project_user && project_user.role === roleConstants.AGENT) {
620
+ if (restricted_mode) {
615
621
  query.agents_available = {
616
622
  $in: [ null, true ]
617
623
  }
@@ -631,21 +637,26 @@ router.get('/', function (req, res, next) {
631
637
  // console.log("result: ", result);
632
638
  // })
633
639
 
634
- return Faq.find(query).
635
- skip(skip).limit(limit).
636
- populate({ path: 'faq_kb' })//, match: { trashed: { $in: [null, false] } }}).
637
- .exec(function (err, faq) {
638
- winston.debug("GET FAQ ", faq);
640
+ return Faq.find(query)
641
+ .skip(skip).limit(limit)
642
+ .populate({ path: 'faq_kb' })
643
+ .lean()
644
+ .exec(function (err, faqs) {
645
+
646
+ winston.debug("GET FAQ ", faqs);
639
647
 
640
648
  if (err) {
641
649
  winston.debug('GET FAQ err ', err)
642
650
  return next(err)
643
651
  };
644
- winston.debug('GET FAQ ', faq)
645
- res.json(faq);
646
652
 
647
- });
653
+ if (restricted_mode === true) {
654
+ faqs = faqs.map(({ webhook_enabled, faq_kb, actions, attributes, createdBy, createdAt, updatedAt, __v, ...keepAttrs }) => keepAttrs)
655
+ faqs = faqs.filter(f => (f.intent_display_name !== "start" && f.intent_display_name !== 'defaultFallback'));
656
+ }
648
657
 
658
+ res.status(200).send(faqs);
659
+ });
649
660
 
650
661
  });
651
662
 
package/routes/request.js CHANGED
@@ -454,7 +454,7 @@ router.put('/:requestid/replace', async (req, res) => {
454
454
  }
455
455
 
456
456
  if (name) {
457
- let chatbot = await faq_kb.findOne({ id_project: req.projectid, name: name }).catch((err) => {
457
+ let chatbot = await faq_kb.findOne({ id_project: req.projectid, name: name, trashed: false }).catch((err) => {
458
458
  winston.error("Error finding bot ", err);
459
459
  return res.status(500).send({ success: false, error: "An error occurred getting chatbot with name " + name })
460
460
  })
@@ -464,7 +464,7 @@ router.put('/:requestid/replace', async (req, res) => {
464
464
  }
465
465
 
466
466
  id = "bot_" + chatbot._id;
467
- winston.info("Chatbot found: ", id);
467
+ winston.verbose("Chatbot found: ", id);
468
468
  }
469
469
 
470
470
  if (slug) {