@tiledesk/tiledesk-server 2.10.64 → 2.10.65

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 CHANGED
@@ -5,6 +5,9 @@
5
5
  🚀 IN PRODUCTION 🚀
6
6
  (https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
7
7
 
8
+ # 2.10.65
9
+ - fix issue con /rating called by chatbot
10
+
8
11
  # 2.10.64
9
12
  - updated tybot-connector to 0.3.4
10
13
  - updated whatsapp-connector to 0.1.81
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.64",
4
+ "version": "2.10.65",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -12,7 +12,6 @@ router.patch('/:requestid/rating', function (req, res) {
12
12
  winston.debug(req.body);
13
13
  const update = {};
14
14
 
15
-
16
15
  if (req.body.rating) {
17
16
  update.rating = req.body.rating;
18
17
  }
@@ -20,13 +19,16 @@ router.patch('/:requestid/rating', function (req, res) {
20
19
  if (req.body.rating_message) {
21
20
  update.rating_message = req.body.rating_message;
22
21
  }
23
-
24
-
25
22
 
26
23
  winston.debug("Request user patch update",update);
27
24
 
28
- // var query = {"request_id":req.params.requestid};
29
- var query = {"request_id":req.params.requestid, "requester": req.projectuser.id};
25
+ let query = {
26
+ request_id: req.params.requestid
27
+ }
28
+
29
+ if (req.projectuser) {
30
+ query.requester = req.projectuser.id
31
+ }
30
32
 
31
33
  //cacheinvalidation
32
34
  return Request.findOneAndUpdate(query, { $set: update }, { new: true, upsert: false })
@@ -0,0 +1,125 @@
1
+ process.env.NODE_ENV = 'test';
2
+
3
+ let chai = require('chai');
4
+ let chaiHttp = require('chai-http');
5
+ let server = require('../app');
6
+ let should = chai.should();
7
+
8
+ chai.use(chaiHttp);
9
+
10
+ var expect = require('chai').expect;
11
+ var assert = require('chai').assert;
12
+ var config = require('../config/database');
13
+
14
+ var mongoose = require('mongoose');
15
+ var winston = require('../config/winston');
16
+
17
+ let log = false;
18
+
19
+ // var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI;
20
+ // if (!databaseUri) {
21
+ // console.log('DATABASE_URI not specified, falling back to localhost.');
22
+ // }
23
+
24
+ // mongoose.connect(databaseUri || config.database);
25
+ mongoose.connect(config.databasetest);
26
+
27
+ var userService = require('../services/userService');
28
+ const projectService = require('../services/projectService');
29
+ var leadService = require('../services/leadService');
30
+ var requestService = require('../services/requestService');
31
+ const faqService = require('../services/faqService');
32
+ var Bot = require("../models/faq_kb");
33
+
34
+ var jwt = require('jsonwebtoken');
35
+ const uuidv4 = require('uuid/v4');
36
+
37
+
38
+ describe('UserService()', function () {
39
+
40
+ it('request-rating', function (done) {
41
+
42
+ var email = "test-UserRequest-signup-" + Date.now() + "@email.com";
43
+ var pwd = "pwd";
44
+
45
+ userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
46
+ var userid = savedUser.id;
47
+
48
+ projectService.createAndReturnProjectAndProjectUser("createWithId", savedUser.id).then(function (savedProjectAndPU) {
49
+ var savedProject = savedProjectAndPU.project;
50
+
51
+ faqService.create("testbot", null, savedProject._id, savedUser._id, "tilebot", null, null, null, "en", "blank").then(async function (savedFaq_kb) {
52
+
53
+ var signOptions = {
54
+ issuer: 'https://tiledesk.com',
55
+ subject: 'bot',
56
+ audience: 'https://tiledesk.com/bots/' + savedFaq_kb._id,
57
+ jwtid: uuidv4()
58
+ };
59
+
60
+ let botPayload = savedFaq_kb.toObject();
61
+ let botSecret = botPayload.secret;
62
+
63
+ var bot_token = jwt.sign(botPayload, botSecret, signOptions);
64
+
65
+ leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function (createdLead) {
66
+ var now = Date.now();
67
+ var request = {
68
+ request_id: "request_id-createObjSimple-" + now, project_user_id: savedProjectAndPU.project_user._id, lead_id: createdLead._id,
69
+ id_project: savedProject._id, first_text: "first_text",
70
+ lead: createdLead, requester: savedProjectAndPU.project_user
71
+ };
72
+
73
+ requestService.create(request).then(function (savedRequest) {
74
+
75
+ chai.request(server)
76
+ .patch('/' + savedProject._id + '/requests/' + savedRequest.request_id + "/rating")
77
+ .set('Authorization', "JWT " + bot_token)
78
+ .send({ rating: 4, rating_message: "Good" })
79
+ .end((err, res) => {
80
+
81
+ if (err) { console.error("err: ", err) };
82
+ if (log) { console.log("res.body: ", res.body) };
83
+
84
+ res.should.have.status(200);
85
+ res.body.should.be.a('object');
86
+ expect(res.body.rating).to.equal(4);
87
+ expect(res.body.rating_message).to.equal('Good');
88
+
89
+ done()
90
+ });
91
+ });
92
+ });
93
+
94
+
95
+
96
+ });
97
+
98
+
99
+
100
+ // console.log("savedProject: ", savedProject)
101
+ // leadService.createIfNotExists("leadfullname", "email@email.com", savedProject._id).then(function (createdLead) {
102
+ // var now = Date.now();
103
+ // var request = {
104
+ // request_id: "request_id-createObjSimple-" + now, project_user_id: savedProjectAndPU.project_user._id, lead_id: createdLead._id,
105
+ // id_project: savedProject._id, first_text: "first_text",
106
+ // lead: createdLead, requester: savedProjectAndPU.project_user
107
+ // };
108
+
109
+ // console.log("request: ", request)
110
+
111
+
112
+ // requestService.create(request).then(function (savedRequest) {
113
+
114
+ // console.log("savedRequest: ", savedRequest);
115
+ // done();
116
+ // });
117
+ // });
118
+ });
119
+
120
+ })
121
+
122
+
123
+ }).timeout(10000);
124
+ })
125
+