applay-utils 1.2.9 → 1.2.12

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/utils/mdb.js +136 -99
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "applay-utils",
3
- "version": "1.2.9",
3
+ "version": "1.2.12",
4
4
  "description": "Utilitary tools for Applay applications",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
package/utils/mdb.js CHANGED
@@ -2,166 +2,203 @@ var MongoBase = require('mongodb');
2
2
  var ObjectId = require('mongodb').ObjectId;
3
3
 
4
4
  var MDB = {
5
- status:{},
6
- clients:{}
5
+ status: {},
6
+ clients: {}
7
7
  }
8
8
 
9
- var connect= (alias,url,callback)=>{
10
- console.log('Conectando..',alias,' - url:',url);
11
- if(MDB.status[alias]){return callback(MDB.clients[alias]);}
12
- MongoBase.MongoClient.connect(url,{useUnifiedTopology: true}, (err, client)=>{
13
- if(err){return console.log('ERRO MDB -- TRACKING -- ',err);}
14
- MDB.status[alias]=true;
15
- MDB.clients[alias]=client;
16
- process.on('SIGTERM', internalStop(alias,true,'SIGTERM'));
17
- process.on('SIGINT' , internalStop(alias,true,'SIGINT'));
18
- process.on('uncaughtException', internalStop(alias,true,'uncaughtException'));
19
- console.log('Conectado com ',alias);
9
+ var connect = (alias, url, callback) => {
10
+ console.log('Conectando..', alias, ' - url:', url);
11
+ if (MDB.status[alias]) { return callback(MDB.clients[alias]); }
12
+ MongoBase.MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {
13
+ if (err) { return console.log('ERRO MDB -- TRACKING -- ', err); }
14
+ MDB.status[alias] = true;
15
+ MDB.clients[alias] = client;
16
+ process.on('SIGTERM', internalStop(alias, true, 'SIGTERM'));
17
+ process.on('SIGINT', internalStop(alias, true, 'SIGINT'));
18
+ process.on('uncaughtException', internalStop(alias, true, 'uncaughtException'));
19
+ console.log('Conectado com ', alias);
20
20
  callback(client)
21
21
  });
22
22
  }
23
23
 
24
- var connectAsync = (alias, url) => new Promise(resolve => connect(alias,url,(client)=>resolve(client)));
24
+ var connectAsync = (alias, url) => new Promise(resolve => connect(alias, url, (client) => resolve(client)));
25
25
 
26
- var internalStop = (alias,finish)=>{
27
- return (code)=>{
26
+ var internalStop = (alias, finish) => {
27
+ return (code) => {
28
28
  console.log('Desconnecting...');
29
- if(!MDB.status[alias]){console.log('Mongodb OFF');return}
29
+ if (!MDB.status[alias]) { console.log('Mongodb OFF'); return }
30
30
  MDB.status[alias] = false;
31
31
  MDB.clients[alias].close();
32
- if(finish&&MDB.stopCustom){
33
- MDB.stop(alias,()=>{
34
- console.log('Mongodb',alias,'OFF');
32
+ if (finish && MDB.stopCustom) {
33
+ MDB.stop(alias, () => {
34
+ console.log('Mongodb', alias, 'OFF');
35
35
  process.exit();
36
36
  });
37
37
  }
38
- if(finish&&!MDB.stopCustom){
39
- console.log('Mongodb',alias,'OFF');
38
+ if (finish && !MDB.stopCustom) {
39
+ console.log('Mongodb', alias, 'OFF');
40
40
  process.exit();
41
41
  }
42
- if(!finish){
43
- console.log('Mongodb',alias,'OFF');
42
+ if (!finish) {
43
+ console.log('Mongodb', alias, 'OFF');
44
44
  }
45
45
  }
46
-
46
+
47
47
  }
48
-
49
48
 
50
- var stopCustom = (customCallback)=>{
51
- MDB.stopCustom=true;
49
+
50
+ var stopCustom = (customCallback) => {
51
+ MDB.stopCustom = true;
52
52
  MDB.stop = customCallback;//(alias,callback)=>{}
53
53
  }
54
54
 
55
+ var genOpsUpdate = (data, params) => {
56
+ var lista = [];
55
57
 
58
+ for (var item of data) {
59
+ let filter = item.filter;
60
+ let update = item.update;
56
61
 
57
- var genOpsUpdate = (data,params) =>{
58
- var lista = [];
59
- for(var item of data){
60
- let filter = item.filter;
61
- let update = item.update;
62
- if(params && params.type=='array'){
63
- let objArray = {}
64
- let sub = params.rule.split('.');
65
- objArray[params.rule]=item[sub[1]];
66
- filter = Object.assign(objArray,params.filter)
67
- update={};
68
- update[sub[0]+'.$']=item;
62
+ var novo = params && params.newField && item[params.newField];
63
+ var remove = params && params.removeField && item[params.removeField];
64
+
65
+ if (params && params.type == 'array') {
66
+ let objArray = {}
67
+ let sub = params.rule.split('.');
68
+
69
+ update = {};
70
+
71
+ if (novo) {
72
+ delete item[params.newField];
73
+ update[sub[0]] = item;
69
74
  }
70
- let objLista = {}
71
- objLista[ 'updateOne']={
72
- filter:filter,
73
- update:{$set:update}
75
+ else if (remove) {
76
+ delete item[params.removeField];
77
+ objArray[params.rule] = item[sub[1]];
78
+ let objRemove = {};
79
+ objRemove[sub[1]] = item[sub[1]];
80
+ update[sub[0]] = objRemove;
74
81
  }
75
- lista.push(objLista)
82
+ else {
83
+ objArray[params.rule] = item[sub[1]];
84
+ update[sub[0] + '.$'] = item;
85
+ }
86
+
87
+ filter = Object.assign(objArray, params.filter)
88
+ }
89
+
90
+ let objLista = {}
91
+ var upSet = { $set: update };
92
+
93
+ if (novo) {
94
+ upSet = { $addToSet: update };
95
+ }
96
+ else if (remove) {
97
+ upSet = { $pull: update };
98
+ }
99
+
100
+ objLista['updateOne'] = {
101
+ filter: filter,
102
+ update: upSet
103
+ }
104
+
105
+ lista.push(objLista)
76
106
  }
77
107
  return lista
78
108
  }
79
109
 
80
-
81
- function genOpsFull(data,tipo) {
110
+ function genOpsFull(data, tipo) {
82
111
  var lista = [];
83
- for(var x1 in data){
112
+ for (var x1 in data) {
84
113
  var objLista = {};
85
- if(typeof data[x1] != 'object'){continue;}
86
- if(tipo=='save'&&!data[x1]._id){objLista['insertOne']={document:data[x1]};}
87
- if(tipo=='save'&&data[x1]._id&&data[x1]._id.length==24){
88
- data[x1]._id=new ObjectID(data[x1]._id+'');
89
- objLista['replaceOne']={
90
- filter:{"_id" :data[x1]._id},
91
- replacement:data[x1],
92
- upsert:true
114
+ if (typeof data[x1] != 'object') { continue; }
115
+ if (tipo == 'save' && !data[x1]._id) {
116
+ objLista['insertOne'] = { document: data[x1] };
117
+ }
118
+ if (tipo == 'save' && data[x1]._id && (data[x1]._id + '').length == 24) {
119
+ data[x1]._id = new ObjectID(data[x1]._id + '');
120
+
121
+ objLista['replaceOne'] = {
122
+ filter: { "_id": data[x1]._id },
123
+ replacement: data[x1],
124
+ upsert: true
93
125
  }
94
126
  }
95
- if(tipo=='reg'){
127
+ if (tipo == 'reg' || tipo == 'regs') {
96
128
  var copyObj = Object.assign({}, data[x1]);
97
- copyObj.regId=''
98
- if(data[x1]._id){copyObj._reg.objId = data[x1]._id+'';}
129
+ copyObj.regId = ''
130
+
131
+ if (data[x1]._id) { copyObj._reg.objId = data[x1]._id + ''; }
132
+
99
133
  delete copyObj._id;
100
- objLista['insertOne']={document:copyObj};
134
+
135
+ objLista['insertOne'] = { document: copyObj };
101
136
  }
137
+
102
138
  lista.push(objLista);
103
139
  }
104
140
  return lista;
105
141
  }
106
142
 
107
- function genOps(data,tipo){
143
+
144
+ function genOps(data, tipo) {
108
145
  var lista = [];
109
146
  var regs = [];
110
- for(var x1 in data){
147
+ for (var x1 in data) {
111
148
  var objLista = {};
112
- if(typeof data[x1] != 'object'){continue;}
113
- if(tipo=='insert'&&data[x1]._id){continue;}
114
- if(tipo=='replace'&&!data[x1]._id){continue;}
115
- if(tipo=='insert'){objLista['insertOne']={document:data[x1]};}
116
- if(tipo=='replace'){
117
- data[x1]._id=new ObjectID(data[x1]._id+'');
118
- objLista['replaceOne']={
119
- filter:{"_id" :data[x1]._id},
120
- replacement:data[x1],
121
- upsert:true
149
+ if (typeof data[x1] != 'object') { continue; }
150
+ if (tipo == 'insert' && data[x1]._id) { continue; }
151
+ if (tipo == 'replace' && !data[x1]._id) { continue; }
152
+ if (tipo == 'insert') { objLista['insertOne'] = { document: data[x1] }; }
153
+ if (tipo == 'replace') {
154
+ data[x1]._id = new ObjectID(data[x1]._id + '');
155
+ objLista['replaceOne'] = {
156
+ filter: { "_id": data[x1]._id },
157
+ replacement: data[x1],
158
+ upsert: true
122
159
  }
123
160
  }
124
- if(tipo=='regs'){
161
+ if (tipo == 'regs') {
125
162
  var copyObj = Object.assign({}, data[x1]);;
126
- copyObj.regId=''
127
- if(data[x1]._id){copyObj._reg.objId = data[x1]._id+'';}
163
+ copyObj.regId = ''
164
+ if (data[x1]._id) { copyObj._reg.objId = data[x1]._id + ''; }
128
165
  delete copyObj._id;
129
- objLista['insertOne']={document:copyObj};
166
+ objLista['insertOne'] = { document: copyObj };
130
167
  }
131
168
  lista.push(objLista);
132
169
  }
133
170
  return lista;
134
171
  }
135
172
 
136
- function build(data,model,user) {
137
- var tipo = model.slice(0,3);
173
+ function build(data, model, user) {
174
+ var tipo = model.slice(0, 3);
138
175
  var time = new Date();
139
- var letra = model.slice(3,4);
140
- if(cfg.db.types.indexOf(tipo)<0){return {status:false,msg:'Tipo de Collection não definida'};}
141
- if('ABCDEFGHIJKLMNOPQRSTUVWXYZ'.indexOf(letra)<0){return {status:false,msg:'Tipo de Collection não definida'};}
142
- for(var x1 in data){
176
+ var letra = model.slice(3, 4);
177
+ // if(cfg.db.types.indexOf(tipo)<0){return {status:false,msg:'Tipo de Collection não definida'};}
178
+ if ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'.indexOf(letra) < 0) { return { status: false, msg: 'Tipo de Collection não definida' }; }
179
+ for (var x1 in data) {
143
180
  // console.log(x1,data[x1]);
144
181
  var create = time.getTime();
145
182
  var createtext = time.toLocaleString('pt-BR');
146
- if(data[x1]._db){
147
- create = data[x1]._db.create*1;
148
- createtext = data[x1]._db.createtext+'';
183
+ if (data[x1]._db) {
184
+ create = data[x1]._db.create * 1;
185
+ createtext = data[x1]._db.createtext + '';
149
186
  }
150
- data[x1]._db={
151
- tipo:tipo,
152
- time:time.getTime(),
153
- timetext:time.toLocaleString('pt-BR').split(' ')[0],
154
- create:create*1,
155
- createtext:createtext+'',
156
- userId:user._id+'',
157
- username:user.username
187
+ data[x1]._db = {
188
+ tipo: tipo,
189
+ time: time.getTime(),
190
+ timetext: time.toLocaleString('pt-BR').split(' ')[0],
191
+ create: create * 1,
192
+ createtext: createtext + '',
193
+ userId: user._id + '',
194
+ username: user.username
158
195
  };
159
- var objId = data[x1]._reg&&data[x1]._reg.objId?data[x1]._reg.objId:'';
160
- data[x1]._reg={
161
- regId:time.getTime()+user._id+'',
162
- collection:model,
163
- objId:objId,
164
- reg:'reg'+model.slice(0,1).toUpperCase()+model.slice(1)
196
+ var objId = data[x1]._reg && data[x1]._reg.objId ? data[x1]._reg.objId : '';
197
+ data[x1]._reg = {
198
+ regId: time.getTime() + user._id + '',
199
+ collection: model,
200
+ objId: objId,
201
+ reg: 'reg' + model.slice(0, 1).toUpperCase() + model.slice(1)
165
202
  };
166
203
  }
167
204
  return data;