@tiledesk/tiledesk-server 2.9.30 → 2.9.31

Sign up to get free protection for your applications and to get access to all the features.
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.9.31
9
+ - Improved conversations queues management
10
+ - Added conversation status 150 (ABANDONED)
11
+
8
12
  # 2.9.30
9
13
  - Restore Voice and SMS modules
10
14
 
@@ -1,6 +1,7 @@
1
1
  module.exports = {
2
2
  TEMP : 50,
3
3
  UNASSIGNED : 100,
4
+ ABANDONED: 150,
4
5
  ASSIGNED : 200,
5
6
  SERVED : 300,
6
7
  CLOSED: 1000
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.9.30",
4
+ "version": "2.9.31",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -177,7 +177,11 @@ class Listener {
177
177
  winston.debug("abandoned_by_project_usersAsArray", abandoned_by_project_usersAsArray);
178
178
 
179
179
  var available_agents_not_busy = available_agents_not_busy.filter(projectUser=> !abandoned_by_project_usersAsArray.includes(projectUser._id.toString()))
180
-
180
+
181
+ if (available_agents_not_busy.length == 0) {
182
+ res.context.request.attributes.fully_abandoned = true;
183
+ }
184
+
181
185
  winston.debug("available_agents_not_busy after: ", available_agents_not_busy );
182
186
  }
183
187
  }
@@ -50,7 +50,7 @@ class Listener {
50
50
  return winston.warn("Chatbot is not a project_user. Skip update.")
51
51
  }
52
52
 
53
- return Request.countDocuments({ id_project: id_project, participantsAgents: id_user, status: { $lt: 1000 } }, (err, requestsCount) => {
53
+ return Request.countDocuments({ id_project: id_project, participantsAgents: id_user, status: { $lt: 1000 }, draft: { $in: [null, false] } }, (err, requestsCount) => {
54
54
  winston.verbose("requestsCount for id_user: ", id_user, "and project: ", id_project, "-->", requestsCount);
55
55
  if (err) {
56
56
  return winston.error(err);
package/routes/request.js CHANGED
@@ -881,8 +881,10 @@ router.get('/', function (req, res, next) {
881
881
  winston.debug('REQUEST ROUTE - QUERY ', req.query)
882
882
 
883
883
  const DEFAULT_LIMIT = 40;
884
-
884
+
885
+ var page = 0;
885
886
  var limit = DEFAULT_LIMIT; // Number of request per page
887
+ let statusArray = [];
886
888
 
887
889
  if (req.query.limit) {
888
890
  limit = parseInt(req.query.limit);
@@ -891,9 +893,6 @@ router.get('/', function (req, res, next) {
891
893
  limit = DEFAULT_LIMIT;
892
894
  }
893
895
 
894
-
895
- var page = 0;
896
-
897
896
  if (req.query.page) {
898
897
  page = req.query.page;
899
898
  }
@@ -901,14 +900,11 @@ router.get('/', function (req, res, next) {
901
900
  var skip = page * limit;
902
901
  winston.debug('REQUEST ROUTE - SKIP PAGE ', skip);
903
902
 
904
- let statusArray = [];
905
-
906
- var query = { "id_project": req.projectid, "status": { $lt: 1000 }, preflight: false };
907
-
903
+ // Default Query
904
+ var query = { "id_project": req.projectid, "status": { $lt: 1000, $ne: 150 }, preflight: false };
908
905
 
909
906
  var projectuser = req.projectuser;
910
907
 
911
-
912
908
  if (req.user instanceof Subscription) {
913
909
  //all request
914
910
  } else if (projectuser && (projectuser.role == "owner" || projectuser.role == "admin")) {
@@ -921,7 +917,6 @@ router.get('/', function (req, res, next) {
921
917
  query["$or"] = [{ "snapshot.agents.id_user": req.user.id }, { "participants": req.user.id }];
922
918
  }
923
919
 
924
-
925
920
  if (req.query.dept_id) {
926
921
  query.department = req.query.dept_id;
927
922
  winston.debug('REQUEST ROUTE - QUERY DEPT ID', query.department);
@@ -1170,6 +1165,10 @@ router.get('/', function (req, res, next) {
1170
1165
  sortQuery[sortField] = direction;
1171
1166
  winston.debug("sort query", sortQuery);
1172
1167
 
1168
+ if (req.query.abandonded && (req.query.abandoned === true || req.query.abandoned === 'true')) {
1169
+ query["attributes.fully_abandoned"] = true
1170
+ }
1171
+
1173
1172
  if (req.query.draft && (req.query.draft === 'false' || req.query.draft === false)) {
1174
1173
  query.draft = { $in: [false, null] }
1175
1174
  }
@@ -1190,10 +1189,6 @@ router.get('/', function (req, res, next) {
1190
1189
  var q1 = Request.find(query, projection).
1191
1190
  skip(skip).limit(limit);
1192
1191
 
1193
-
1194
-
1195
-
1196
-
1197
1192
  winston.debug('REQUEST ROUTE no_populate:' + req.query.no_populate);
1198
1193
 
1199
1194
  if (req.query.no_populate != "true" && req.query.no_populate != true) {
@@ -310,6 +310,20 @@ class RequestService {
310
310
 
311
311
  winston.verbose("Request " + request.request_id + " contains already the same participants at the same request status. Routed to the same participants");
312
312
 
313
+ if (routedRequest.attributes.fully_abandoned && routedRequest.attributes.fully_abandoned === true) {
314
+ request.status = RequestConstants.ABANDONED;
315
+ request.attributes.fully_abandoned = true;
316
+ request.markModified('status');
317
+ request.markModified('attributes');
318
+ request.save((err, savedRequest) => {
319
+ if (err) {
320
+ winston.error("Error updating request with status ABANDONED ", err);
321
+ } else {
322
+ winston.verbose("Status modified in ABANDONED for request: " + savedRequest._id);
323
+ }
324
+ })
325
+ }
326
+
313
327
  if (no_populate === "true" || no_populate === true) {
314
328
  winston.debug("no_populate is true");
315
329
  return resolve(request);
@@ -310,7 +310,7 @@ class WebSocketServer {
310
310
 
311
311
  // db.getCollection('requests').find({"id_project":"5e15bef09877c800176d217f","status":{"$lt":1000},"$or":[{"agents":{"id_user":"5ddd30bff0195f0017f72c6d"}},{"participants":"5ddd30bff0195f0017f72c6d"}]})
312
312
  // pubblica dopo toni
313
- var query = { "id_project": projectId, "status": { $lt: 1000, $gt: 50 }, preflight: false, "draft": { $in: [false, null] } };
313
+ var query = { "id_project": projectId, "status": { $lt: 1000, $gt: 50, $ne: 150 }, preflight: false, "draft": { $in: [false, null] } };
314
314
  // add hasBot:false
315
315
 
316
316
  // var query = {"id_project":projectId, "status": { $lt: 1000, $gt: 50 }, $or:[ {preflight:false}, { preflight : { $exists: false } } ] };