@tiledesk/tiledesk-server 2.2.39 → 2.3.1-8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/LICENSE +14 -657
  3. package/README.md +17 -3
  4. package/app.js +21 -60
  5. package/channels/chat21/chat21Handler.js +18 -3
  6. package/channels/chat21/chat21WebHook.js +31 -15
  7. package/channels/chat21/package-lock.json +663 -706
  8. package/channels/chat21/package.json +2 -2
  9. package/deploy.sh +2 -0
  10. package/event/botEvent.js +1 -1
  11. package/event/subscriptionEvent.js +11 -0
  12. package/fonts/Roboto-Italic.ttf +0 -0
  13. package/fonts/Roboto-Medium.ttf +0 -0
  14. package/fonts/Roboto-MediumItalic.ttf +0 -0
  15. package/fonts/Roboto-Regular.ttf +0 -0
  16. package/middleware/ipFilter.js +220 -0
  17. package/middleware/passport.js +11 -2
  18. package/models/lead.js +2 -0
  19. package/models/project.js +10 -0
  20. package/models/project_user.js +4 -0
  21. package/models/request.js +50 -12
  22. package/models/subscriptionLog.js +34 -0
  23. package/models/tagLibrary.js +42 -0
  24. package/package.json +6 -12
  25. package/pubmodules/activities/activityArchiver.js +314 -0
  26. package/pubmodules/activities/index.js +3 -0
  27. package/pubmodules/activities/models/activity.js +88 -0
  28. package/pubmodules/activities/routes/activity.js +710 -0
  29. package/pubmodules/activities/test/activityRoute.js +85 -0
  30. package/pubmodules/analytics/analytics.js +1719 -0
  31. package/pubmodules/analytics/index.js +3 -0
  32. package/pubmodules/canned/cannedResponse.js +55 -0
  33. package/pubmodules/canned/cannedResponseRoute.js +163 -0
  34. package/pubmodules/canned/index.js +3 -0
  35. package/pubmodules/emailNotification/requestNotification.js +215 -28
  36. package/pubmodules/events/eventRoute.js +37 -7
  37. package/pubmodules/messageActions/messageActionsInterceptor.js +4 -2
  38. package/pubmodules/pubModulesManager.js +129 -5
  39. package/pubmodules/rasa/listener.js +5 -5
  40. package/pubmodules/rules/conciergeBot.js +4 -4
  41. package/pubmodules/scheduler/tasks/closeAgentUnresponsiveRequestTask.js +3 -1
  42. package/pubmodules/scheduler/tasks/closeBotUnresponsiveRequestTask.js +3 -1
  43. package/pubmodules/tilebot/index.js +11 -0
  44. package/pubmodules/tilebot/listener.js +69 -0
  45. package/pubmodules/trigger/default.js +271 -0
  46. package/pubmodules/trigger/event/actionEventEmitter.js +10 -0
  47. package/pubmodules/trigger/event/flowEventEmitter.js +10 -0
  48. package/pubmodules/trigger/event/triggerEventEmitter.js +10 -0
  49. package/pubmodules/trigger/index.js +3 -0
  50. package/pubmodules/trigger/models/trigger.js +149 -0
  51. package/pubmodules/trigger/rulesTrigger.js +1181 -0
  52. package/pubmodules/trigger/start.js +118 -0
  53. package/pubmodules/trigger/triggerRoute.js +150 -0
  54. package/routes/auth.js +7 -2
  55. package/routes/department.js +51 -0
  56. package/routes/faq.js +7 -0
  57. package/routes/faq_kb.js +1 -1
  58. package/routes/group.js +140 -0
  59. package/routes/lead.js +24 -1
  60. package/routes/message.js +6 -3
  61. package/routes/project.js +118 -0
  62. package/routes/project_user.js +9 -0
  63. package/routes/public-request.js +280 -2
  64. package/routes/request.js +122 -16
  65. package/routes/subscription.js +140 -0
  66. package/routes/tag.js +138 -0
  67. package/routes/user-request.js +3 -2
  68. package/routes/users.js +1 -1
  69. package/routes/widget.js +80 -3
  70. package/routes/widgetLoader.js +31 -0
  71. package/services/banUserNotifier.js +86 -0
  72. package/services/emailService.js +189 -11
  73. package/services/faqService.js +2 -2
  74. package/services/geoService.js +30 -4
  75. package/services/leadService.js +2 -0
  76. package/services/modulesManager.js +7 -188
  77. package/services/requestService.js +364 -6
  78. package/services/subscriptionNotifier.js +485 -0
  79. package/template/email/assignedEmailMessage.html +1 -1
  80. package/template/email/assignedRequest.html +1 -1
  81. package/template/email/newMessage.html +1 -1
  82. package/template/email/newMessageFollower.html +236 -0
  83. package/template/email/passwordChanged.html +1 -1
  84. package/template/email/pooledEmailMessage.html +1 -1
  85. package/template/email/pooledRequest.html +1 -1
  86. package/template/email/resetPassword.html +2 -2
  87. package/template/email/ticket.html +1 -1
  88. package/test/cannedRoute.js +166 -0
  89. package/test/messageRoute.js +69 -0
  90. package/test/requestService.js +3 -1
  91. package/utils/orgUtil.js +3 -3
  92. package/views/messages.jade +2 -2
  93. package/websocket/webSocketServer.js +23 -5
@@ -169,8 +169,18 @@ class WebSocketServer {
169
169
 
170
170
  winston.debug(' req.user._id: '+ req.user);
171
171
 
172
+ if (!topic) {
173
+ winston.error('WebSocket - Error getting topic. Topic can t be null');
174
+ return reject('WebSocket - Error getting topic. Topic can t be null');
175
+ }
172
176
  var urlSub = topic.split('/');
173
177
 
178
+ if (!urlSub || (urlSub && urlSub.length==0)) {
179
+ winston.error('WebSocket - Error getting topic. Topic is not properly configured');
180
+ return reject('WebSocket - Error getting topic. Topic is not properly configured');
181
+ }
182
+ // Error getting Project Cast to ObjectId failed for value "N7VJlLZ1" (type string) at path "_id" for model "project" {"kind":"ObjectId","path":"_id","reason":{},"stack":"CastError: Cast to ObjectId failed for value \"N7VJlLZ1\" (type string) at path \"_id\" for model \"project\"\n at model.Query.exec (/usr/src/app/node_modules/mongoose/lib/query.js:4498:21)\n at /usr/src/app/websocket/webSocketServer.js:180:14\n at new Promise (<anonymous>)\n at Object.onSubscribeCallback [as onSubscribe] (/usr/src/app/websocket/webSocketServer.js:167:14)\n at PubSub.handleReceivedClientMessage (/usr/src/app/websocket/pubsub.js:358:57)\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:97:5)","stringValue":"\"N7VJlLZ1\"","value":"N7VJlLZ1","valueType":"string"}
183
+
174
184
  var projectId = urlSub[1];
175
185
  winston.debug('projectId: '+projectId);
176
186
 
@@ -590,11 +600,12 @@ class WebSocketServer {
590
600
  winston.debug('messageCreateKey: ' + messageCreateKey);
591
601
 
592
602
  messageEvent.on(messageCreateKey, function (message) {
603
+ setImmediate(async () => {
593
604
  winston.debug('messageEvent websocket server: '+messageCreateKey, message);
594
605
  if (message.request) {
595
606
  pubSubServer.handlePublishMessage ('/'+message.id_project+'/requests/'+message.request.request_id+'/messages', message, undefined, true, "CREATE");
596
607
  }
597
-
608
+ });
598
609
  });
599
610
 
600
611
  // var reconnect = require('./reconnect');
@@ -604,7 +615,8 @@ class WebSocketServer {
604
615
  }
605
616
  winston.debug('requestCreateKey: ' + requestCreateKey);
606
617
  requestEvent.on(requestCreateKey, async function (request) {
607
- // TODO setImmediate(() => {
618
+ setImmediate(async () => {
619
+
608
620
  winston.debug('requestEvent websocket server: '+requestCreateKey, request);
609
621
  // TODO scarta riquesta se agente (req.user._id) non sta ne in participants ne in agents
610
622
 
@@ -643,7 +655,7 @@ class WebSocketServer {
643
655
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests', request, undefined, true, "CREATE");
644
656
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests/'+request.request_id, request, undefined, true, "CREATE");
645
657
  }
646
-
658
+ });
647
659
  });
648
660
 
649
661
  var requestUpdateKey = 'request.update';
@@ -653,6 +665,8 @@ class WebSocketServer {
653
665
 
654
666
  winston.debug('requestUpdateKey: ' + requestUpdateKey);
655
667
  requestEvent.on(requestUpdateKey, async function(request) {
668
+ setImmediate(async () => {
669
+
656
670
  // TODO setImmediate(() => {
657
671
  winston.debug('requestEvent websocket server: '+requestUpdateKey, request);
658
672
  if (request.preflight===false && request.status > requestConstants.TEMP) {
@@ -694,7 +708,7 @@ class WebSocketServer {
694
708
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests', requestJSON, undefined, true, "UPDATE");
695
709
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests/'+request.request_id, requestJSON, undefined, true, "UPDATE");
696
710
  }
697
-
711
+ });
698
712
  });
699
713
 
700
714
 
@@ -709,6 +723,8 @@ class WebSocketServer {
709
723
  }
710
724
  winston.debug('projectuserUpdateKey: ' + projectuserUpdateKey);
711
725
  authEvent.on(projectuserUpdateKey,function(data) {
726
+ setImmediate(async () => {
727
+
712
728
  var pu = data.updatedProject_userPopulated;
713
729
  winston.debug('ws pu', pu);
714
730
 
@@ -724,7 +740,7 @@ class WebSocketServer {
724
740
  }
725
741
  winston.debug('userId:'+ userId);
726
742
  pubSubServer.handlePublishMessage ('/'+pu.id_project+'/project_users/users/'+userId, pu, undefined, true, "UPDATE");
727
-
743
+ });
728
744
  });
729
745
 
730
746
 
@@ -735,6 +751,7 @@ class WebSocketServer {
735
751
  }
736
752
  winston.debug('eventEmitKey: ' + eventEmitKey);
737
753
  eventEvent.on(eventEmitKey,function(event) {
754
+ setImmediate(async () => {
738
755
  winston.debug('event', event);
739
756
  if (event.project_user === undefined) {
740
757
  //with "faqbot.answer_not_found" project_user is undefined but it's ok
@@ -743,6 +760,7 @@ class WebSocketServer {
743
760
  }
744
761
  pubSubServer.handlePublishMessage ('/'+event.id_project+'/events/'+event.project_user._id, event, undefined, true, "CREATE");
745
762
  });
763
+ });
746
764
 
747
765
 
748
766
  // https://github.com/websockets/ws/blob/master/examples/express-session-parse/index.js