@steedos/standard-process-approval 2.3.2-beta.6 → 2.3.2-beta.7

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.
@@ -2,4 +2,5 @@ name: user_to_send_as
2
2
  label: 发送方用户
3
3
  type: lookup
4
4
  reference_to: users
5
- sort_no: 60
5
+ sort_no: 60
6
+ hidden: true
@@ -0,0 +1,236 @@
1
+ const _ = require("underscore");
2
+ const util = require('@steedos/standard-objects').util;
3
+ const objectql = require("@steedos/objectql");
4
+ const InternalData = require('@steedos/standard-objects').internalData;
5
+
6
+ const getInternalOutboundMessages = function(sourceOutboundMessages, filters){
7
+ let dbOutboundMessages = Creator.getCollection("workflow_outbound_messages").find(filters, {fields:{_id:1, name:1}}).fetch();
8
+ let messages = [];
9
+
10
+ if(!filters.is_system){
11
+ _.forEach(sourceOutboundMessages, function(doc){
12
+ if(!_.find(dbOutboundMessages, function(p){
13
+ return p.name === doc.name
14
+ })){
15
+ messages.push(doc);
16
+ }
17
+ })
18
+ }
19
+ return messages;
20
+ }
21
+
22
+ module.exports = {
23
+ beforeInsert: async function () {
24
+ await util.checkAPIName(this.object_name, 'name', this.doc.name, undefined, [['is_system','!=', true]]);
25
+ },
26
+ beforeUpdate: async function () {
27
+ if (_.has(this.doc, 'name')) {
28
+ await util.checkAPIName(this.object_name, 'name', this.doc.name, this.id, [['is_system','!=', true]]);
29
+ }
30
+ },
31
+ afterFind: async function(){
32
+ let filters = InternalData.parserFilters(this.query.filters)
33
+ let messages = [];
34
+ if(filters.name && filters.name.$in){
35
+ for(let _name of filters.name.$in){
36
+ let message = objectql.getWorkflowOutboundMessage(_name);
37
+ if(message){
38
+ messages.push(message);
39
+ }
40
+ }
41
+ }else if(filters._id && !filters._id.$ne){
42
+ let message = objectql.getWorkflowOutboundMessage(filters._id);
43
+ if(message){
44
+ messages.push(message);
45
+ }
46
+ }else if(filters.object_name){
47
+ messages = objectql.getObjectOutboundMessages(filters.object_name);
48
+ delete filters.object_name;
49
+ }else{
50
+ messages = objectql.getAllWorkflowOutboundMessages();
51
+ }
52
+
53
+ if(filters._id && filters._id.$ne){
54
+ if(!_.isArray(filters._id.$ne)){
55
+ filters._id.$ne = [filters._id.$ne]
56
+ }
57
+ for(let neid of filters._id.$ne){
58
+ messages = _.filter(messages, function(item){
59
+ return item._id !== neid
60
+ })
61
+ }
62
+ }
63
+
64
+ messages = getInternalOutboundMessages(messages, filters);
65
+
66
+ if(messages && messages.length>0){
67
+ this.data.values = this.data.values.concat(messages)
68
+ }
69
+ },
70
+ afterAggregate: async function(){
71
+ let filters = InternalData.parserFilters(this.query.filters)
72
+ let messages = [];
73
+ if(filters._id && filters._id.$in){
74
+ for(let id of filters._id.$in){
75
+ let message = objectql.getWorkflowOutboundMessage(id);
76
+ if(message){
77
+ messages.push(message);
78
+ }
79
+ }
80
+ }else if(filters._id && !filters._id.$ne){
81
+ let message = objectql.getWorkflowOutboundMessage(filters._id);
82
+ if(message){
83
+ messages.push(message);
84
+ }
85
+ }else if(filters.object_name){
86
+ messages = objectql.getObjectOutboundMessages(filters.object_name);
87
+ delete filters.object_name;
88
+ }else{
89
+ messages = objectql.getAllWorkflowOutboundMessages();
90
+ }
91
+
92
+ if(filters._id && filters._id.$ne){
93
+ if(!_.isArray(filters._id.$ne)){
94
+ filters._id.$ne = [filters._id.$ne]
95
+ }
96
+ for(let neid of filters._id.$ne){
97
+ messages = _.filter(messages, function(item){
98
+ return item._id !== neid
99
+ })
100
+ }
101
+ }
102
+ },
103
+ afterFind: async function(){
104
+ let filters = InternalData.parserFilters(this.query.filters)
105
+ let messages = [];
106
+ if(filters.name && filters.name.$in){
107
+ for(let _name of filters.name.$in){
108
+ let message = objectql.getWorkflowOutboundMessage(_name);
109
+ if(message){
110
+ messages.push(message);
111
+ }
112
+ }
113
+ }else if(filters._id && !filters._id.$ne){
114
+ let message = objectql.getWorkflowOutboundMessage(filters._id);
115
+ if(message){
116
+ messages.push(message);
117
+ }
118
+ }else if(filters.object_name){
119
+ messages = objectql.getObjectWorkflowOutboundMessages(filters.object_name);
120
+ delete filters.object_name;
121
+ }else{
122
+ messages = objectql.getAllWorkflowOutboundMessages();
123
+ }
124
+
125
+ if(filters._id && filters._id.$ne){
126
+ if(!_.isArray(filters._id.$ne)){
127
+ filters._id.$ne = [filters._id.$ne]
128
+ }
129
+ for(let neid of filters._id.$ne){
130
+ messages = _.filter(messages, function(item){
131
+ return item._id !== neid
132
+ })
133
+ }
134
+ }
135
+
136
+ messages = getInternalOutboundMessages(messages, filters);
137
+
138
+ if(messages && messages.length>0){
139
+ this.data.values = this.data.values.concat(messages)
140
+ }
141
+ },
142
+ afterAggregate: async function(){
143
+ let filters = InternalData.parserFilters(this.query.filters)
144
+ let messages = [];
145
+ if(filters._id && filters._id.$in){
146
+ for(let id of filters._id.$in){
147
+ let message = objectql.getWorkflowOutboundMessage(id);
148
+ if(message){
149
+ messages.push(message);
150
+ }
151
+ }
152
+ }else if(filters._id && !filters._id.$ne){
153
+ let message = objectql.getWorkflowOutboundMessage(filters._id);
154
+ if(message){
155
+ messages.push(message);
156
+ }
157
+ }else if(filters.object_name){
158
+ messages = objectql.getObjectOutboundMessages(filters.object_name);
159
+ delete filters.object_name;
160
+ }else{
161
+ messages = objectql.getAllWorkflowOutboundMessages();
162
+ }
163
+
164
+ if(filters._id && filters._id.$ne){
165
+ if(!_.isArray(filters._id.$ne)){
166
+ filters._id.$ne = [filters._id.$ne]
167
+ }
168
+ for(let neid of filters._id.$ne){
169
+ messages = _.filter(messages, function(item){
170
+ return item._id !== neid
171
+ })
172
+ }
173
+ }
174
+
175
+ messages = getInternalOutboundMessages(messages, filters);
176
+
177
+ if(messages && messages.length>0){
178
+ this.data.values = this.data.values.concat(messages)
179
+ }
180
+ },
181
+ afterCount: async function(){
182
+ let filters = InternalData.parserFilters(this.query.filters)
183
+ let messages = [];
184
+ if(filters._id && filters._id.$in){
185
+ for(let id of filters._id.$in){
186
+ let message = objectql.getWorkflowOutboundMessage(id);
187
+ if(message){
188
+ messages.push(message);
189
+ }
190
+ }
191
+ }else if(filters._id && !filters._id.$ne){
192
+ let message = objectql.getWorkflowOutboundMessage(filters._id);
193
+ if(message){
194
+ messages.push(message);
195
+ }
196
+ }else if(filters.object_name){
197
+ messages = objectql.getObjectWorkflowOutboundMessages(filters.object_name);
198
+ delete filters.object_name;
199
+ }else{
200
+ messages = objectql.getAllWorkflowOutboundMessages();
201
+ }
202
+
203
+ if(filters._id && filters._id.$ne){
204
+ if(!_.isArray(filters._id.$ne)){
205
+ filters._id.$ne = [filters._id.$ne]
206
+ }
207
+ for(let neid of filters._id.$ne){
208
+ messages = _.filter(messages, function(item){
209
+ return item._id !== neid
210
+ })
211
+ }
212
+ }
213
+
214
+ messages = getInternalOutboundMessages(messages, filters);
215
+
216
+ if(messages && messages.length>0){
217
+ this.data.values = this.data.values + messages.length
218
+ }
219
+ },
220
+ afterFindOne: async function(){
221
+ if(_.isEmpty(this.data.values)){
222
+ let id = this.id
223
+
224
+ let dbNotification = Creator.getCollection("workflow_outbound_messages").find({name: id}).fetch();
225
+ if(dbNotification && dbNotification.length > 0){
226
+ this.data.values = dbNotification[0];
227
+ return;
228
+ }
229
+
230
+ let message = objectql.getWorkflowOutboundMessage(id);
231
+ if(message){
232
+ this.data.values = message;
233
+ }
234
+ }
235
+ },
236
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/standard-process-approval",
3
- "version": "2.3.2-beta.6",
3
+ "version": "2.3.2-beta.7",
4
4
  "main": "package.service.js",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -12,5 +12,5 @@
12
12
  "description": "steedos package",
13
13
  "repository": {},
14
14
  "license": "MIT",
15
- "gitHead": "0b66bfd50fc63d938aa75817d93853460e060074"
15
+ "gitHead": "1e2a0049e4a1bb5e7b09d020f32b60514bdc1bd9"
16
16
  }