@tiledesk/tiledesk-server 2.10.13 → 2.10.14
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/routes/request.js +34 -45
package/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@
|
|
5
5
|
🚀 IN PRODUCTION 🚀
|
6
6
|
(https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
|
7
7
|
|
8
|
+
# 2.10.14
|
9
|
+
- Updated tybot-connector to 0.2.127
|
10
|
+
- Restored request.js file
|
11
|
+
|
8
12
|
# 2.10.13
|
9
13
|
- Updated tybot-connector to 0.2.127
|
10
14
|
- Added event on request fully abandoned
|
package/package.json
CHANGED
package/routes/request.js
CHANGED
@@ -30,7 +30,6 @@ csv.separator = ';';
|
|
30
30
|
|
31
31
|
const { check, validationResult } = require('express-validator');
|
32
32
|
const RoleConstants = require('../models/roleConstants');
|
33
|
-
const eventService = require('../pubmodules/events/eventService');
|
34
33
|
|
35
34
|
// var messageService = require('../services/messageService');
|
36
35
|
|
@@ -183,7 +182,7 @@ router.post('/',
|
|
183
182
|
|
184
183
|
winston.debug('res.json(savedRequest)');
|
185
184
|
var endTimestamp = new Date();
|
186
|
-
winston.verbose("
|
185
|
+
winston.verbose("request create end: " + (endTimestamp - startTimestamp));
|
187
186
|
return res.json(savedRequest);
|
188
187
|
// });
|
189
188
|
// });
|
@@ -274,7 +273,7 @@ router.patch('/:requestid', function (req, res) {
|
|
274
273
|
|
275
274
|
|
276
275
|
|
277
|
-
winston.verbose("
|
276
|
+
winston.verbose("Request patch update", update);
|
278
277
|
|
279
278
|
//cacheinvalidation
|
280
279
|
return Request.findOneAndUpdate({ "request_id": req.params.requestid, "id_project": req.projectid }, { $set: update }, { new: true, upsert: false })
|
@@ -327,18 +326,18 @@ router.put('/:requestid/close', async function (req, res) {
|
|
327
326
|
})
|
328
327
|
|
329
328
|
if (!request) {
|
330
|
-
winston.verbose("
|
329
|
+
winston.verbose("Request with request_id " + request_id)
|
331
330
|
return res.status(404).send({ success: false, error: "Request not found"})
|
332
331
|
}
|
333
332
|
|
334
333
|
if (!request.participantsAgents.includes(req.user.id)) {
|
335
|
-
winston.verbose("
|
334
|
+
winston.verbose("Request can't be closed by a non participant. Attempt made by " + req.user.id);
|
336
335
|
return res.status(403).send({ success: false, error: "You must be among the participants to close a conversation."})
|
337
336
|
}
|
338
337
|
}
|
339
338
|
|
340
339
|
return requestService.closeRequestByRequestId(req.params.requestid, req.projectid, false, true, closed_by, req.body.force).then(function (closedRequest) {
|
341
|
-
winston.verbose("
|
340
|
+
winston.verbose("request closed", closedRequest);
|
342
341
|
return res.json(closedRequest);
|
343
342
|
});
|
344
343
|
|
@@ -350,7 +349,7 @@ router.put('/:requestid/reopen', function (req, res) {
|
|
350
349
|
// reopenRequestByRequestId(request_id, id_project) {
|
351
350
|
return requestService.reopenRequestByRequestId(req.params.requestid, req.projectid).then(function (reopenRequest) {
|
352
351
|
|
353
|
-
winston.verbose("
|
352
|
+
winston.verbose("request reopen", reopenRequest);
|
354
353
|
|
355
354
|
return res.json(reopenRequest);
|
356
355
|
});
|
@@ -381,7 +380,7 @@ router.post('/:requestid/participants',
|
|
381
380
|
//addParticipantByRequestId(request_id, id_project, member)
|
382
381
|
return requestService.addParticipantByRequestId(req.params.requestid, req.projectid, req.body.member).then(function (updatedRequest) {
|
383
382
|
|
384
|
-
winston.verbose("
|
383
|
+
winston.verbose("participant added", updatedRequest);
|
385
384
|
|
386
385
|
return res.json(updatedRequest);
|
387
386
|
});
|
@@ -421,7 +420,7 @@ router.delete('/:requestid/participants/:participantid', function (req, res) {
|
|
421
420
|
//removeParticipantByRequestId(request_id, id_project, member)
|
422
421
|
return requestService.removeParticipantByRequestId(req.params.requestid, req.projectid, req.params.participantid).then(function (updatedRequest) {
|
423
422
|
|
424
|
-
winston.verbose("
|
423
|
+
winston.verbose("participant removed", updatedRequest);
|
425
424
|
|
426
425
|
return res.json(updatedRequest);
|
427
426
|
});
|
@@ -452,16 +451,10 @@ router.delete('/:requestid/participants/:participantid', function (req, res) {
|
|
452
451
|
router.put('/:requestid/assign', function (req, res) {
|
453
452
|
winston.debug(req.body);
|
454
453
|
|
455
|
-
let id_project = req.projectid;
|
456
|
-
let user = req.user;
|
457
|
-
let pu;
|
458
|
-
if (req.projectuser) {
|
459
|
-
pu = req.projectuser.id;
|
460
|
-
}
|
461
|
-
|
462
454
|
// leggi la request se già assegnata o già chiusa (1000) esci
|
463
|
-
|
464
|
-
|
455
|
+
|
456
|
+
//cacheinvalidation
|
457
|
+
return Request.findOne({ "request_id": req.params.requestid, "id_project": req.projectid })
|
465
458
|
.exec(function (err, request) {
|
466
459
|
|
467
460
|
if (err) {
|
@@ -474,17 +467,13 @@ router.put('/:requestid/assign', function (req, res) {
|
|
474
467
|
}
|
475
468
|
|
476
469
|
if (request.status === RequestConstants.ASSIGNED || request.status === RequestConstants.SERVED || request.status === RequestConstants.CLOSED) {
|
477
|
-
winston.
|
470
|
+
winston.info('Request already assigned');
|
478
471
|
return res.json(request);
|
479
472
|
}
|
480
473
|
//route(request_id, departmentid, id_project) {
|
481
|
-
requestService.route(req.params.requestid, req.body.departmentid,
|
474
|
+
requestService.route(req.params.requestid, req.body.departmentid, req.projectid, req.body.nobot, req.body.no_populate).then(function (updatedRequest) {
|
482
475
|
|
483
|
-
winston.debug("
|
484
|
-
|
485
|
-
if (updatedRequest.status === RequestConstants.ABANDONED) {
|
486
|
-
eventService.emit('request.fully_abandoned', updatedRequest, id_project, pu, user._id, undefined, user);
|
487
|
-
}
|
476
|
+
winston.debug("department changed", updatedRequest);
|
488
477
|
|
489
478
|
return res.json(updatedRequest);
|
490
479
|
}).catch(function (error) {
|
@@ -635,7 +624,7 @@ router.patch('/:requestid/attributes', function (req, res) {
|
|
635
624
|
winston.error("error saving request attributes", err)
|
636
625
|
return res.status(500).send({ success: false, msg: 'Error getting object.' });
|
637
626
|
}
|
638
|
-
winston.verbose("
|
627
|
+
winston.verbose(" saved request attributes", savedRequest.toObject())
|
639
628
|
requestEvent.emit("request.update", savedRequest);
|
640
629
|
requestEvent.emit("request.update.comment", { comment: "ATTRIBUTES_PATCH", request: savedRequest });//Deprecated
|
641
630
|
requestEvent.emit("request.updated", { comment: "ATTRIBUTES_PATCH", request: savedRequest, patch: { attributes: data } });
|
@@ -668,7 +657,7 @@ router.post('/:requestid/notes', async function (req, res) {
|
|
668
657
|
|
669
658
|
// Check if the user is a participant
|
670
659
|
if (!request.participantsAgents.includes(req.user.id)) {
|
671
|
-
winston.verbose("
|
660
|
+
winston.verbose("Trying to add a note from a non participating agent");
|
672
661
|
return res.status(403).send({ success: false, error: "You are not participating in the conversation"})
|
673
662
|
}
|
674
663
|
}
|
@@ -714,7 +703,7 @@ router.delete('/:requestid/notes/:noteid', async function (req, res) {
|
|
714
703
|
|
715
704
|
// Check if the user is a participant
|
716
705
|
if (!request.participantsAgents.includes(req.user.id)) {
|
717
|
-
winston.verbose("
|
706
|
+
winston.verbose("Trying to delete a note from a non participating agent");
|
718
707
|
return res.status(403).send({ success: false, error: "You are not participating in the conversation"})
|
719
708
|
}
|
720
709
|
}
|
@@ -784,7 +773,7 @@ router.post('/:requestid/email/send',
|
|
784
773
|
}
|
785
774
|
|
786
775
|
let newto = request.lead.email
|
787
|
-
winston.verbose("
|
776
|
+
winston.verbose("Sending an email newto " + newto);
|
788
777
|
|
789
778
|
//sendEmailDirect(to, text, project, request_id, subject, tokenQueryString, sourcePage, payload)
|
790
779
|
emailService.sendEmailDirect(newto, text, req.project, request_id, subject, undefined, undefined, undefined, replyto);
|
@@ -807,7 +796,7 @@ router.post('/:requestid/followers',
|
|
807
796
|
check('member').notEmpty(),
|
808
797
|
],
|
809
798
|
function (req, res) {
|
810
|
-
winston.
|
799
|
+
winston.info("followers add", req.body);
|
811
800
|
|
812
801
|
const errors = validationResult(req);
|
813
802
|
if (!errors.isEmpty()) {
|
@@ -817,7 +806,7 @@ router.post('/:requestid/followers',
|
|
817
806
|
//addParticipantByRequestId(request_id, id_project, member)
|
818
807
|
return requestService.addFollowerByRequestId(req.params.requestid, req.projectid, req.body.member).then(function (updatedRequest) {
|
819
808
|
|
820
|
-
winston.verbose("
|
809
|
+
winston.verbose("participant added", updatedRequest);
|
821
810
|
|
822
811
|
return res.json(updatedRequest);
|
823
812
|
});
|
@@ -850,7 +839,7 @@ router.delete('/:requestid/followers/:followerid', function (req, res) {
|
|
850
839
|
//removeFollowerByRequestId(request_id, id_project, member)
|
851
840
|
return requestService.removeFollowerByRequestId(req.params.requestid, req.projectid, req.params.followerid).then(function (updatedRequest) {
|
852
841
|
|
853
|
-
winston.verbose("
|
842
|
+
winston.verbose("follower removed", updatedRequest);
|
854
843
|
|
855
844
|
return res.json(updatedRequest);
|
856
845
|
});
|
@@ -877,7 +866,7 @@ router.delete('/:requestid', function (req, res) {
|
|
877
866
|
if (err) {
|
878
867
|
return res.status(500).send({ success: false, msg: 'Error deleting messages.' });
|
879
868
|
}
|
880
|
-
winston.verbose('
|
869
|
+
winston.verbose('Messages deleted for the recipient: ' + req.params.requestid);
|
881
870
|
});
|
882
871
|
|
883
872
|
|
@@ -891,7 +880,7 @@ router.delete('/:requestid', function (req, res) {
|
|
891
880
|
return res.status(404).send({ success: false, msg: 'Object not found.' });
|
892
881
|
}
|
893
882
|
|
894
|
-
winston.verbose('
|
883
|
+
winston.verbose('Request deleted with request_id: ' + req.params.requestid);
|
895
884
|
|
896
885
|
requestEvent.emit('request.delete', request);
|
897
886
|
|
@@ -939,7 +928,7 @@ router.delete('/id/:id', function (req, res) {
|
|
939
928
|
return res.status(404).send({ success: false, msg: 'Object not found.' });
|
940
929
|
}
|
941
930
|
|
942
|
-
winston.verbose('
|
931
|
+
winston.verbose('Request deleted with id: ' + req.params.id);
|
943
932
|
|
944
933
|
requestEvent.emit('request.delete', request);
|
945
934
|
|
@@ -1212,7 +1201,7 @@ router.get('/', function (req, res, next) {
|
|
1212
1201
|
} else if (req.query.duration_op === 'lt') {
|
1213
1202
|
query.duration = { $lte: duration }
|
1214
1203
|
} else {
|
1215
|
-
winston.verbose("
|
1204
|
+
winston.verbose("Duration operator can be 'gt' or 'lt'. Skip duration_op " + req.query.duration_op)
|
1216
1205
|
}
|
1217
1206
|
}
|
1218
1207
|
|
@@ -1228,12 +1217,12 @@ router.get('/', function (req, res, next) {
|
|
1228
1217
|
|
1229
1218
|
if (req.query.full_text) {
|
1230
1219
|
if (req.query.no_textscore != "true" && req.query.no_textscore != true) {
|
1231
|
-
winston.verbose('
|
1220
|
+
winston.verbose('fulltext projection on');
|
1232
1221
|
projection = { score: { $meta: "textScore" } };
|
1233
1222
|
}
|
1234
1223
|
}
|
1235
1224
|
|
1236
|
-
winston.verbose('
|
1225
|
+
winston.verbose('REQUEST ROUTE - REQUEST FIND QUERY ', query);
|
1237
1226
|
|
1238
1227
|
var q1 = Request.find(query, projection).
|
1239
1228
|
skip(skip).limit(limit);
|
@@ -1262,7 +1251,7 @@ router.get('/', function (req, res, next) {
|
|
1262
1251
|
var q2 = Request.countDocuments(query).exec();
|
1263
1252
|
|
1264
1253
|
if (req.query.no_count && req.query.no_count == "true") {
|
1265
|
-
winston.
|
1254
|
+
winston.info('REQUEST ROUTE - no_count ');
|
1266
1255
|
q2 = 0;
|
1267
1256
|
}
|
1268
1257
|
|
@@ -1274,16 +1263,16 @@ router.get('/', function (req, res, next) {
|
|
1274
1263
|
count: results[1],
|
1275
1264
|
requests: results[0]
|
1276
1265
|
};
|
1277
|
-
winston.debug('
|
1278
|
-
winston.debug('
|
1266
|
+
winston.debug('REQUEST ROUTE - objectToReturn ');
|
1267
|
+
winston.debug('REQUEST ROUTE - objectToReturn ', objectToReturn);
|
1279
1268
|
|
1280
1269
|
const endExecTime = new Date();
|
1281
|
-
winston.verbose('
|
1270
|
+
winston.verbose('REQUEST ROUTE - exec time: ' + (endExecTime - startExecTime));
|
1282
1271
|
|
1283
1272
|
return res.json(objectToReturn);
|
1284
1273
|
|
1285
1274
|
}).catch(function (err) {
|
1286
|
-
winston.error('
|
1275
|
+
winston.error('REQUEST ROUTE - REQUEST FIND ERR ', err);
|
1287
1276
|
return res.status(500).send({ success: false, msg: 'Error getting requests.', err: err });
|
1288
1277
|
});
|
1289
1278
|
|
@@ -1835,7 +1824,7 @@ router.get('/csv', function (req, res, next) {
|
|
1835
1824
|
} else if (req.query.duration_op === 'lt') {
|
1836
1825
|
query.duration = { $lte: duration }
|
1837
1826
|
} else {
|
1838
|
-
winston.verbose("
|
1827
|
+
winston.verbose("Duration operator can be 'gt' or 'lt'. Skip duration_op " + req.query.duration_op)
|
1839
1828
|
}
|
1840
1829
|
}
|
1841
1830
|
|
@@ -2162,4 +2151,4 @@ router.get('/:requestid/chatbot/parameters', async (req, res) => {
|
|
2162
2151
|
|
2163
2152
|
})
|
2164
2153
|
|
2165
|
-
module.exports = router;
|
2154
|
+
module.exports = router;
|