@tiledesk/tiledesk-server 2.2.39 → 2.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/LICENSE +14 -657
  2. package/README.md +2 -0
  3. package/app.js +12 -0
  4. package/event/subscriptionEvent.js +11 -0
  5. package/models/subscriptionEvent.js +11 -0
  6. package/models/subscriptionLog.js +34 -0
  7. package/models/tagLibrary.js +42 -0
  8. package/package.json +2 -10
  9. package/pubmodules/activities/activityArchiver.js +295 -0
  10. package/pubmodules/activities/index.js +3 -0
  11. package/pubmodules/activities/models/activity.js +88 -0
  12. package/pubmodules/activities/routes/activity.js +710 -0
  13. package/pubmodules/activities/test/activityRoute.js +85 -0
  14. package/pubmodules/analytics/analytics.js +1719 -0
  15. package/pubmodules/analytics/index.js +3 -0
  16. package/pubmodules/canned/cannedResponse.js +51 -0
  17. package/pubmodules/canned/cannedResponseRoute.js +157 -0
  18. package/pubmodules/canned/index.js +3 -0
  19. package/pubmodules/pubModulesManager.js +104 -5
  20. package/pubmodules/trigger/default.js +271 -0
  21. package/pubmodules/trigger/event/actionEventEmitter.js +10 -0
  22. package/pubmodules/trigger/event/flowEventEmitter.js +10 -0
  23. package/pubmodules/trigger/event/triggerEventEmitter.js +10 -0
  24. package/pubmodules/trigger/index.js +3 -0
  25. package/pubmodules/trigger/models/trigger.js +149 -0
  26. package/pubmodules/trigger/rulesTrigger.js +1180 -0
  27. package/pubmodules/trigger/start.js +114 -0
  28. package/pubmodules/trigger/triggerRoute.js +150 -0
  29. package/routes/department.js +51 -0
  30. package/routes/group.js +140 -0
  31. package/routes/project.js +52 -0
  32. package/routes/subscription.js +140 -0
  33. package/routes/tag.js +138 -0
  34. package/services/faqService.js +1 -1
  35. package/services/modulesManager.js +7 -188
  36. package/services/subscriptionNotifier.js +485 -0
  37. package/template/email/assignedEmailMessage.html +1 -1
  38. package/template/email/assignedRequest.html +1 -1
  39. package/template/email/newMessage.html +1 -1
  40. package/template/email/passwordChanged.html +1 -1
  41. package/template/email/pooledEmailMessage.html +1 -1
  42. package/template/email/pooledRequest.html +1 -1
  43. package/template/email/resetPassword.html +2 -2
  44. package/template/email/ticket.html +1 -1
  45. package/views/messages.jade +1 -1
@@ -0,0 +1,149 @@
1
+ var mongoose = require('mongoose');
2
+ var Schema = mongoose.Schema;
3
+ // var TriggerEventSchema = require('./triggerEvent').schema;
4
+
5
+ // var ConditionSchema = require('./triggerCondition').schema;
6
+ // var ActionSchema = require('./triggerAction').schema;
7
+
8
+
9
+
10
+ var TriggerConditionSchema = new Schema({
11
+ key: { //ex: request.firsttext
12
+ type: String,
13
+ required: true
14
+ },
15
+ fact: { //ex: request.firsttext
16
+ type: String,
17
+ required: true
18
+ },
19
+ path: {
20
+ type: String,
21
+ required: false
22
+ },
23
+ operator: { //use ref to OperatorSchema
24
+ type: String,
25
+ required: true
26
+ },
27
+ // type: { unused
28
+ // type: String,
29
+ // required: false
30
+ // },
31
+ value: {
32
+ type: Object,
33
+ required: true
34
+ },
35
+ },{ _id : false });
36
+
37
+
38
+ var ConditionsSchema = new Schema({
39
+ all: [TriggerConditionSchema],
40
+ any: [TriggerConditionSchema]
41
+ });
42
+
43
+
44
+
45
+
46
+ var ActionSchema = new Schema({
47
+ key: { //ex: message.send
48
+ type: String,
49
+ required: true,
50
+ index:true
51
+ },
52
+ parameters: {
53
+ type: Object,
54
+ required: false
55
+ },
56
+ // name: {
57
+ // type: String,
58
+ // required: true
59
+ // },
60
+ // description: {
61
+ // type: String,
62
+ // required: false
63
+ // },
64
+
65
+ script: { //use ref
66
+ type: String,
67
+ required: false
68
+ },
69
+ });
70
+
71
+
72
+
73
+
74
+ var TriggerEventSchema = new Schema({
75
+ key: { //ex: request.create
76
+ type: String,
77
+ required: true,
78
+ index:true
79
+ },
80
+ name: {
81
+ type: String,
82
+ required: true
83
+ },
84
+ description: {
85
+ type: String,
86
+ required: false
87
+ },
88
+ });
89
+
90
+
91
+
92
+ var TriggerSchema = new Schema({
93
+ name: {
94
+ type: String,
95
+ required: true
96
+ },
97
+ description: {
98
+ type: String,
99
+ required: false
100
+ },
101
+ delay: {
102
+ type: Number,
103
+ select: true
104
+ },
105
+ // triggers: [TriggerSchema],
106
+ trigger: TriggerEventSchema,
107
+ conditions: ConditionsSchema,
108
+ actions: [ActionSchema],
109
+ enabled: {
110
+ type:Boolean,
111
+ required:true,
112
+ default:false,
113
+ index:true
114
+ },
115
+ id_project: {
116
+ type: String,
117
+ required: true,
118
+ index:true
119
+ },
120
+ code: {
121
+ type: String,
122
+ select: true
123
+ },
124
+ type: {
125
+ type: String, //internal per new_conversation e invite bot
126
+ select: true
127
+ },
128
+ version: {
129
+ type: Number,
130
+ select: true
131
+ },
132
+ createdBy: {
133
+ type: String,
134
+ required: true
135
+ },
136
+ updatedBy: {
137
+ type: String,
138
+ required: true
139
+ }
140
+ }, {
141
+ timestamps: true
142
+ }
143
+ );
144
+
145
+
146
+ // let query = {id_project: event.id_project, enabled:true, 'trigger.key':eventKey};
147
+ TriggerSchema.index({ id_project: 1, "trigger.key":1, enabled:1 });
148
+
149
+ module.exports = mongoose.model('trigger', TriggerSchema);