mqtt-devices-parser 1.0.11 → 1.0.13
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.
- package/Changelog.md +10 -0
- package/index.js +24 -3
- package/models/devices.models.js +20 -3
- package/models/firmwares.models.js +2 -10
- package/models/fota.models.js +32 -0
- package/models/logs_actions.models.js +17 -0
- package/models/logs_device.models.js +62 -0
- package/models/logs_fota.models.js +41 -0
- package/models/{sensor_logs.models.js → logs_sensor.models.js} +2 -2
- package/models/modelPermissions.models.js +23 -0
- package/models/models.js +238 -211
- package/models/projects.models.js +8 -0
- package/package.json +1 -1
- package/src/db/data.js +91 -87
- package/src/db/db.js +24 -0
- package/src/db/device.js +288 -7
- package/src/db/firmware.js +30 -5
- package/src/db/fota.js +219 -0
- package/src/device/Readme.md +39 -4
- package/src/device/device.js +374 -152
package/src/db/data.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
const moment = require('moment');
|
|
2
2
|
var mysql = require('mysql2')
|
|
3
3
|
|
|
4
|
+
// Use this call only for dbs outside this module, they need to be registered on sequelize
|
|
5
|
+
|
|
4
6
|
var self = module.exports = {
|
|
5
7
|
|
|
6
8
|
checkEntry : async (table,deviceId)=>{
|
|
@@ -19,8 +21,7 @@ var self = module.exports = {
|
|
|
19
21
|
return resolve(null);
|
|
20
22
|
})
|
|
21
23
|
.catch( err => {
|
|
22
|
-
|
|
23
|
-
return resolve(null);
|
|
24
|
+
return reject(err);
|
|
24
25
|
});
|
|
25
26
|
});
|
|
26
27
|
},
|
|
@@ -73,8 +74,7 @@ var self = module.exports = {
|
|
|
73
74
|
return resolve(rows);
|
|
74
75
|
})
|
|
75
76
|
.catch((err)=>{
|
|
76
|
-
|
|
77
|
-
return resolve();
|
|
77
|
+
return reject(err);
|
|
78
78
|
})
|
|
79
79
|
}else{
|
|
80
80
|
let filter = {
|
|
@@ -85,12 +85,14 @@ var self = module.exports = {
|
|
|
85
85
|
return resolve(rows);
|
|
86
86
|
})
|
|
87
87
|
.catch((err)=>{
|
|
88
|
-
|
|
89
|
-
return resolve();
|
|
88
|
+
return reject(err);
|
|
90
89
|
})
|
|
91
90
|
}
|
|
92
91
|
|
|
93
|
-
}else
|
|
92
|
+
}else{
|
|
93
|
+
return resolve();
|
|
94
|
+
//return reject(`columns not found for table ${table}`);
|
|
95
|
+
}
|
|
94
96
|
}else{
|
|
95
97
|
|
|
96
98
|
let key = topic;
|
|
@@ -110,8 +112,7 @@ var self = module.exports = {
|
|
|
110
112
|
return resolve(rows);
|
|
111
113
|
})
|
|
112
114
|
.catch((err)=>{
|
|
113
|
-
|
|
114
|
-
return resolve(null);
|
|
115
|
+
return reject(err);
|
|
115
116
|
})
|
|
116
117
|
}else{
|
|
117
118
|
let filter = {
|
|
@@ -123,11 +124,13 @@ var self = module.exports = {
|
|
|
123
124
|
return resolve(rows);
|
|
124
125
|
})
|
|
125
126
|
.catch((err)=>{
|
|
126
|
-
|
|
127
|
-
return resolve(null);
|
|
127
|
+
return reject(err);
|
|
128
128
|
})
|
|
129
129
|
}
|
|
130
|
-
}else
|
|
130
|
+
}else{
|
|
131
|
+
return resolve();
|
|
132
|
+
//return reject(`columns not found for table ${table}`);
|
|
133
|
+
}
|
|
131
134
|
}
|
|
132
135
|
})
|
|
133
136
|
},
|
|
@@ -137,7 +140,7 @@ var self = module.exports = {
|
|
|
137
140
|
return new Promise( async (resolve, reject) => {
|
|
138
141
|
|
|
139
142
|
if (!payload || typeof payload !== 'object')
|
|
140
|
-
return
|
|
143
|
+
return reject("Not object");
|
|
141
144
|
|
|
142
145
|
let obj = {
|
|
143
146
|
updatedAt: moment().utc().format('YYYY-MM-DD HH:mm:ss'),
|
|
@@ -146,8 +149,10 @@ var self = module.exports = {
|
|
|
146
149
|
|
|
147
150
|
// Get columns info
|
|
148
151
|
const db_columns = $.models.get(table);
|
|
149
|
-
if (db_columns == null)
|
|
150
|
-
|
|
152
|
+
if (db_columns == null){
|
|
153
|
+
resolve();
|
|
154
|
+
//return reject(`columns not found for table ${table}`);
|
|
155
|
+
}
|
|
151
156
|
|
|
152
157
|
// Prepare data for insertion
|
|
153
158
|
for (let key in payload) {
|
|
@@ -171,8 +176,7 @@ var self = module.exports = {
|
|
|
171
176
|
return resolve(rows);
|
|
172
177
|
})
|
|
173
178
|
.catch((err)=>{
|
|
174
|
-
|
|
175
|
-
return resolve();
|
|
179
|
+
return reject(err);
|
|
176
180
|
})
|
|
177
181
|
}else{
|
|
178
182
|
let filter = {
|
|
@@ -183,12 +187,9 @@ var self = module.exports = {
|
|
|
183
187
|
return resolve(rows);
|
|
184
188
|
})
|
|
185
189
|
.catch((err)=>{
|
|
186
|
-
|
|
187
|
-
return resolve();
|
|
190
|
+
return reject(err);
|
|
188
191
|
})
|
|
189
192
|
}
|
|
190
|
-
|
|
191
|
-
return resolve();
|
|
192
193
|
});
|
|
193
194
|
},
|
|
194
195
|
|
|
@@ -198,74 +199,78 @@ var self = module.exports = {
|
|
|
198
199
|
|
|
199
200
|
if(!payload) return resolve();
|
|
200
201
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
202
|
+
let data = null;
|
|
203
|
+
// check if data is in JSON format
|
|
204
|
+
try{
|
|
205
|
+
data = JSON.parse(payload);
|
|
206
|
+
}catch(e){
|
|
207
|
+
data = payload;
|
|
208
|
+
}
|
|
208
209
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
let obj = {
|
|
211
|
+
updatedAt : moment().utc().format('YYYY-MM-DD HH:mm:ss')
|
|
212
|
+
}
|
|
212
213
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
let db_columns = $.models.get(table);
|
|
215
|
+
if(db_columns == null){
|
|
216
|
+
resolve();
|
|
217
|
+
//return reject(`columns not found for table ${table}`);
|
|
218
|
+
}
|
|
216
219
|
|
|
217
|
-
|
|
220
|
+
let index = topic.indexOf("/");
|
|
218
221
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
+
if(index > -1){ // check if topic has subtopics
|
|
223
|
+
let key = topic.substring(0,index);
|
|
224
|
+
topic = topic.substring(index+1);
|
|
222
225
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
+
if(db_columns.hasOwnProperty(key)){ // check if db has a column for this key
|
|
227
|
+
// create JSON struct with the remaining topic
|
|
228
|
+
// key is the column
|
|
226
229
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
230
|
+
// build object with the remaining topic and respective data
|
|
231
|
+
if(typeof data === "object")
|
|
232
|
+
obj[key] = JSON.stringify(parser.pathIntoObject(topic,JSON.stringify(data)))
|
|
233
|
+
else
|
|
234
|
+
obj[key] = JSON.stringify(parser.pathIntoObject(topic,data));
|
|
235
|
+
|
|
236
|
+
obj['device_id'] = deviceId;
|
|
237
|
+
obj['createdAt'] = moment().utc().format('YYYY-MM-DD HH:mm:ss');
|
|
238
|
+
$.db.insert(table,obj)
|
|
239
|
+
.then((rows)=>{
|
|
240
|
+
return resolve(rows);
|
|
241
|
+
})
|
|
242
|
+
.catch((err)=>{
|
|
243
|
+
return reject(err);
|
|
244
|
+
})
|
|
232
245
|
|
|
233
|
-
obj['device_id'] = deviceId;
|
|
234
|
-
obj['createdAt'] = moment().utc().format('YYYY-MM-DD HH:mm:ss');
|
|
235
|
-
$.db.insert(table,obj)
|
|
236
|
-
.then((rows)=>{
|
|
237
|
-
return resolve(rows);
|
|
238
|
-
})
|
|
239
|
-
.catch((err)=>{
|
|
240
|
-
console.log(err);
|
|
241
|
-
return resolve();
|
|
242
|
-
})
|
|
243
|
-
|
|
244
|
-
}else
|
|
245
|
-
return resolve();
|
|
246
246
|
}else{
|
|
247
|
+
resolve();
|
|
248
|
+
//return reject(`column ${key} not found for table ${table}`);
|
|
249
|
+
}
|
|
250
|
+
}else{
|
|
247
251
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
252
|
+
let key = topic;
|
|
253
|
+
if(db_columns.hasOwnProperty(key)){ // check if db has a column for this key
|
|
254
|
+
// build object with respective data
|
|
255
|
+
if(typeof data === "object")
|
|
256
|
+
obj[key] = JSON.stringify(data);
|
|
257
|
+
else
|
|
258
|
+
obj[key] = data;
|
|
255
259
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
260
|
+
obj['device_id'] = deviceId;
|
|
261
|
+
obj['createdAt'] = moment().utc().format('YYYY-MM-DD HH:mm:ss');
|
|
262
|
+
$.db.insert(table,obj)
|
|
263
|
+
.then((rows)=>{
|
|
264
|
+
return resolve(rows);
|
|
265
|
+
})
|
|
266
|
+
.catch((err)=>{
|
|
267
|
+
return reject(err);
|
|
268
|
+
})
|
|
269
|
+
}else{
|
|
270
|
+
resolve();
|
|
271
|
+
//return reject(`column ${key} not found for table ${table}`);
|
|
268
272
|
}
|
|
273
|
+
}
|
|
269
274
|
|
|
270
275
|
});
|
|
271
276
|
},
|
|
@@ -273,7 +278,7 @@ var self = module.exports = {
|
|
|
273
278
|
addJsonLog: async (table, deviceId, dataObject) => {
|
|
274
279
|
return new Promise((resolve, reject) => {
|
|
275
280
|
if (!dataObject || typeof dataObject !== 'object')
|
|
276
|
-
return
|
|
281
|
+
return reject("Not an object");
|
|
277
282
|
|
|
278
283
|
let obj = {
|
|
279
284
|
updatedAt: moment().utc().format('YYYY-MM-DD HH:mm:ss'),
|
|
@@ -284,7 +289,7 @@ var self = module.exports = {
|
|
|
284
289
|
// Get columns info
|
|
285
290
|
const db_columns = $.models.get(table);
|
|
286
291
|
if (db_columns == null)
|
|
287
|
-
return
|
|
292
|
+
return reject(`No columns for table: ${table}`);
|
|
288
293
|
|
|
289
294
|
// Prepare data for insertion
|
|
290
295
|
for (let key in dataObject) {
|
|
@@ -300,14 +305,12 @@ var self = module.exports = {
|
|
|
300
305
|
}
|
|
301
306
|
}
|
|
302
307
|
|
|
303
|
-
//console.log("updateJSONlog")
|
|
304
308
|
$.db.insert(table, obj)
|
|
305
309
|
.then((rows)=>{
|
|
306
310
|
return resolve(rows);
|
|
307
311
|
})
|
|
308
312
|
.catch((err)=>{
|
|
309
|
-
|
|
310
|
-
return resolve();
|
|
313
|
+
return reject(err);
|
|
311
314
|
})
|
|
312
315
|
});
|
|
313
316
|
},
|
|
@@ -317,8 +320,10 @@ var self = module.exports = {
|
|
|
317
320
|
return new Promise((resolve,reject) => {
|
|
318
321
|
|
|
319
322
|
let db_columns = $.models.get(table);
|
|
320
|
-
if(db_columns == null)
|
|
321
|
-
|
|
323
|
+
if(db_columns == null){
|
|
324
|
+
resolve();
|
|
325
|
+
//return reject(`columns not found for table ${table}`);
|
|
326
|
+
}
|
|
322
327
|
|
|
323
328
|
$.db.delete(table,{id:0})
|
|
324
329
|
let index = topic.indexOf("/");
|
|
@@ -344,8 +349,7 @@ var self = module.exports = {
|
|
|
344
349
|
return resolve(rows);
|
|
345
350
|
})
|
|
346
351
|
.catch((err)=>{
|
|
347
|
-
|
|
348
|
-
return resolve();
|
|
352
|
+
return reject(err);
|
|
349
353
|
})
|
|
350
354
|
}
|
|
351
355
|
}else{
|
package/src/db/db.js
CHANGED
|
@@ -144,6 +144,7 @@ var self = module.exports = {
|
|
|
144
144
|
});
|
|
145
145
|
},
|
|
146
146
|
|
|
147
|
+
// update column with json data
|
|
147
148
|
updateJSON : async (table, column, data, filter) => {
|
|
148
149
|
|
|
149
150
|
return new Promise((resolve, reject) => {
|
|
@@ -317,6 +318,29 @@ var self = module.exports = {
|
|
|
317
318
|
});
|
|
318
319
|
},
|
|
319
320
|
|
|
321
|
+
getDataFromDeviceId : async (table,deviceId)=>{
|
|
322
|
+
|
|
323
|
+
return new Promise((resolve,reject) => {
|
|
324
|
+
|
|
325
|
+
self.getConnection((err,conn)=>{
|
|
326
|
+
if(err) return reject(err);
|
|
327
|
+
|
|
328
|
+
let query = "SELECT ?? FROM ?? where device_id = ?";
|
|
329
|
+
let args = [field,table,deviceId];
|
|
330
|
+
query = mysql.format(query,args);
|
|
331
|
+
conn.query(query,function(err,rows){
|
|
332
|
+
$.db.close_db_connection(conn);
|
|
333
|
+
if(err) return reject(err)
|
|
334
|
+
else{
|
|
335
|
+
if(rows.length == 1 ){
|
|
336
|
+
return resolve(rows[0]);
|
|
337
|
+
}else return resolve(null);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
},
|
|
343
|
+
|
|
320
344
|
getFieldFromDeviceId : async (table,deviceId,field)=>{
|
|
321
345
|
|
|
322
346
|
return new Promise((resolve,reject) => {
|
package/src/db/device.js
CHANGED
|
@@ -3,10 +3,31 @@ var mysql = require('mysql2')
|
|
|
3
3
|
|
|
4
4
|
var self = module.exports = {
|
|
5
5
|
|
|
6
|
+
getById : async (deviceId)=>{
|
|
7
|
+
return new Promise((resolve,reject) => {
|
|
8
|
+
|
|
9
|
+
let query = "SELECT * FROM ?? where id = ?";
|
|
10
|
+
let table = ["devices",deviceId];
|
|
11
|
+
query = mysql.format(query,table);
|
|
12
|
+
|
|
13
|
+
$.db.queryRow(query)
|
|
14
|
+
.then( rows => {
|
|
15
|
+
if(rows.length > 0)
|
|
16
|
+
return resolve(rows[0]);
|
|
17
|
+
else
|
|
18
|
+
return resolve(null);
|
|
19
|
+
})
|
|
20
|
+
.catch( err => {
|
|
21
|
+
console.log(err);
|
|
22
|
+
return resolve(null);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
|
|
6
27
|
get : async (uid)=>{
|
|
7
28
|
return new Promise((resolve,reject) => {
|
|
8
29
|
|
|
9
|
-
let query = "SELECT
|
|
30
|
+
let query = "SELECT * FROM ?? where uid = ?";
|
|
10
31
|
let table = ["devices",uid];
|
|
11
32
|
query = mysql.format(query,table);
|
|
12
33
|
|
|
@@ -45,6 +66,48 @@ var self = module.exports = {
|
|
|
45
66
|
});
|
|
46
67
|
},
|
|
47
68
|
|
|
69
|
+
listByModel : async (model_id)=>{
|
|
70
|
+
return new Promise((resolve,reject) => {
|
|
71
|
+
|
|
72
|
+
let query = "SELECT * FROM ?? where model_id = ?";
|
|
73
|
+
let table = ["devices",model_id];
|
|
74
|
+
query = mysql.format(query,table);
|
|
75
|
+
|
|
76
|
+
$.db.queryRow(query)
|
|
77
|
+
.then( rows => {
|
|
78
|
+
if(rows.length > 0)
|
|
79
|
+
return resolve(rows);
|
|
80
|
+
else
|
|
81
|
+
return resolve(null);
|
|
82
|
+
})
|
|
83
|
+
.catch( err => {
|
|
84
|
+
console.log(err);
|
|
85
|
+
return resolve(null);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
listOnlineByModel : async (model_id)=>{
|
|
91
|
+
return new Promise((resolve,reject) => {
|
|
92
|
+
|
|
93
|
+
let query = "SELECT * FROM ?? where model_id = ? and status = ?";
|
|
94
|
+
let table = ["devices",model_id,"online"];
|
|
95
|
+
query = mysql.format(query,table);
|
|
96
|
+
|
|
97
|
+
$.db.queryRow(query)
|
|
98
|
+
.then( rows => {
|
|
99
|
+
if(rows.length > 0)
|
|
100
|
+
return resolve(rows);
|
|
101
|
+
else
|
|
102
|
+
return resolve(null);
|
|
103
|
+
})
|
|
104
|
+
.catch( err => {
|
|
105
|
+
console.log(err);
|
|
106
|
+
return resolve(null);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
},
|
|
110
|
+
|
|
48
111
|
getField : async (id,column)=>{
|
|
49
112
|
return new Promise((resolve,reject) => {
|
|
50
113
|
|
|
@@ -66,14 +129,12 @@ var self = module.exports = {
|
|
|
66
129
|
});
|
|
67
130
|
},
|
|
68
131
|
|
|
69
|
-
insert : async(
|
|
132
|
+
insert : async(obj)=>{
|
|
70
133
|
|
|
71
134
|
return new Promise((resolve,reject) => {
|
|
72
|
-
let
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
updatedAt : moment().utc().format('YYYY-MM-DD HH:mm:ss')
|
|
76
|
-
}
|
|
135
|
+
let timestamp = moment().utc().format('YYYY-MM-DD HH:mm:ss');
|
|
136
|
+
obj['createdAt'] = timestamp;
|
|
137
|
+
obj['updatedAt'] = timestamp;
|
|
77
138
|
|
|
78
139
|
$.db.insert("devices",obj)
|
|
79
140
|
.then (rows => {
|
|
@@ -108,4 +169,224 @@ var self = module.exports = {
|
|
|
108
169
|
});
|
|
109
170
|
},
|
|
110
171
|
|
|
172
|
+
updateObject : async (deviceId, obj)=>{
|
|
173
|
+
|
|
174
|
+
return new Promise( async (resolve, reject) => {
|
|
175
|
+
|
|
176
|
+
const table = "devices";
|
|
177
|
+
|
|
178
|
+
if (!obj || typeof obj !== 'object')
|
|
179
|
+
return reject("Not object");
|
|
180
|
+
|
|
181
|
+
obj['updatedAt'] = moment().utc().format('YYYY-MM-DD HH:mm:ss');
|
|
182
|
+
|
|
183
|
+
let filter = {
|
|
184
|
+
id : deviceId
|
|
185
|
+
}
|
|
186
|
+
$.db.update(table,obj,filter)
|
|
187
|
+
.then((rows)=>{
|
|
188
|
+
return resolve(rows);
|
|
189
|
+
})
|
|
190
|
+
.catch((err)=>{
|
|
191
|
+
return reject(err);
|
|
192
|
+
})
|
|
193
|
+
|
|
194
|
+
});
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
addLog : async(id,column,value)=>{
|
|
199
|
+
return new Promise((resolve,reject) => {
|
|
200
|
+
|
|
201
|
+
const timestamp = moment().utc().format('YYYY-MM-DD HH:mm:ss')
|
|
202
|
+
let obj = {
|
|
203
|
+
createdAt : timestamp,
|
|
204
|
+
updatedAt : timestamp
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
obj['device_id'] = id;
|
|
208
|
+
obj[column] = value;
|
|
209
|
+
|
|
210
|
+
$.db.insert("logs_devices",obj)
|
|
211
|
+
.then (rows => {
|
|
212
|
+
return resolve(rows);
|
|
213
|
+
})
|
|
214
|
+
.catch(error => {
|
|
215
|
+
return reject(error);
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
addLogIfChanged : async(id,column,value)=>{
|
|
221
|
+
return new Promise(async (resolve,reject) => {
|
|
222
|
+
|
|
223
|
+
let query = "SELECT ?? FROM ?? where id = ? and ?? is NOT NULL ORDER BY updatedAt DESC LIMIT 1";
|
|
224
|
+
let table = [column,"logs_devices",id,column];
|
|
225
|
+
query = mysql.format(query,table);
|
|
226
|
+
|
|
227
|
+
try{
|
|
228
|
+
let rows = await $.db.queryRow(query)
|
|
229
|
+
|
|
230
|
+
if(rows.length > 0){
|
|
231
|
+
let lastValue = rows[0]?.column
|
|
232
|
+
if(lastValue == value)
|
|
233
|
+
resolve();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
const timestamp = moment().utc().format('YYYY-MM-DD HH:mm:ss')
|
|
237
|
+
let obj = {
|
|
238
|
+
createdAt : timestamp,
|
|
239
|
+
updatedAt : timestamp
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
obj['device_id'] = id;
|
|
243
|
+
obj[column] = value;
|
|
244
|
+
|
|
245
|
+
await $.db.insert("logs_devices",obj)
|
|
246
|
+
|
|
247
|
+
resolve();
|
|
248
|
+
|
|
249
|
+
}catch (err) {
|
|
250
|
+
return reject(err);
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
});
|
|
254
|
+
},
|
|
255
|
+
|
|
256
|
+
getLocalSettings : async(deviceId)=>{
|
|
257
|
+
|
|
258
|
+
return new Promise((resolve,reject) => {
|
|
259
|
+
|
|
260
|
+
let query = "SELECT local_settings FROM ?? where id = ?";
|
|
261
|
+
let table = ["devices", deviceId];
|
|
262
|
+
query = mysql.format(query,table);
|
|
263
|
+
|
|
264
|
+
$.db.queryRow(query)
|
|
265
|
+
.then( rows => {
|
|
266
|
+
if(rows?.length > 0)
|
|
267
|
+
return resolve(rows[0]?.local_settings);
|
|
268
|
+
else
|
|
269
|
+
return resolve(null);
|
|
270
|
+
})
|
|
271
|
+
.catch( err => {
|
|
272
|
+
return reject(err);
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
},
|
|
276
|
+
|
|
277
|
+
updateLocalSettings : async(settings, deviceId)=>{
|
|
278
|
+
|
|
279
|
+
return new Promise((resolve,reject) => {
|
|
280
|
+
let obj = {
|
|
281
|
+
local_settings : settings,
|
|
282
|
+
updatedAt : moment().utc().format('YYYY-MM-DD HH:mm:ss')
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
let filter = {
|
|
286
|
+
id : deviceId
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
resolve(null)
|
|
290
|
+
|
|
291
|
+
$.db.update("devices",obj,filter)
|
|
292
|
+
.then (rows => {
|
|
293
|
+
return resolve(rows[0]);
|
|
294
|
+
})
|
|
295
|
+
.catch(error => {
|
|
296
|
+
return reject(error);
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
});
|
|
300
|
+
},
|
|
301
|
+
|
|
302
|
+
getRemoteSettings : async(deviceId)=>{
|
|
303
|
+
|
|
304
|
+
return new Promise((resolve,reject) => {
|
|
305
|
+
|
|
306
|
+
let query = "SELECT remote_settings FROM ?? where id = ?";
|
|
307
|
+
let table = ["devices", deviceId];
|
|
308
|
+
query = mysql.format(query,table);
|
|
309
|
+
|
|
310
|
+
$.db.queryRow(query)
|
|
311
|
+
.then( rows => {
|
|
312
|
+
if(rows?.length > 0)
|
|
313
|
+
return resolve(rows[0]?.remote_settings);
|
|
314
|
+
else
|
|
315
|
+
return resolve(null);
|
|
316
|
+
})
|
|
317
|
+
.catch( err => {
|
|
318
|
+
return reject(err);
|
|
319
|
+
});
|
|
320
|
+
});
|
|
321
|
+
},
|
|
322
|
+
|
|
323
|
+
updateRemoteSettings : async(settings, deviceId)=>{
|
|
324
|
+
|
|
325
|
+
return new Promise((resolve,reject) => {
|
|
326
|
+
let obj = {
|
|
327
|
+
remote_settings : settings,
|
|
328
|
+
updatedAt : moment().utc().format('YYYY-MM-DD HH:mm:ss')
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
let filter = {
|
|
332
|
+
id : deviceId
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
resolve(null)
|
|
336
|
+
|
|
337
|
+
$.db.update("devices",obj,filter)
|
|
338
|
+
.then (rows => {
|
|
339
|
+
return resolve(rows[0]);
|
|
340
|
+
})
|
|
341
|
+
.catch(error => {
|
|
342
|
+
return reject(error);
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
});
|
|
346
|
+
},
|
|
347
|
+
|
|
348
|
+
getAssociatedDevice : async (deviceId)=>{
|
|
349
|
+
|
|
350
|
+
return new Promise((resolve,reject) => {
|
|
351
|
+
|
|
352
|
+
let query = "SELECT associatedDevice FROM ?? where id = ?";
|
|
353
|
+
let args = ["devices",deviceId];
|
|
354
|
+
query = mysql.format(query,args);
|
|
355
|
+
|
|
356
|
+
$.db.queryRow(query)
|
|
357
|
+
.then( rows => {
|
|
358
|
+
if(rows.length > 0)
|
|
359
|
+
return resolve(rows[0]?.associatedDevice);
|
|
360
|
+
else
|
|
361
|
+
return resolve(null);
|
|
362
|
+
})
|
|
363
|
+
.catch( err => {
|
|
364
|
+
return reject(err);
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
});
|
|
368
|
+
},
|
|
369
|
+
|
|
370
|
+
updateAssociatedDevice : async(deviceId,associatedDeviceId)=>{
|
|
371
|
+
return new Promise((resolve,reject) => {
|
|
372
|
+
let obj = {
|
|
373
|
+
associatedDevice : associatedDeviceId,
|
|
374
|
+
updatedAt : moment().utc().format('YYYY-MM-DD HH:mm:ss')
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
let filter = {
|
|
378
|
+
id : deviceId
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
$.db.update("devices",obj,filter)
|
|
382
|
+
.then (rows => {
|
|
383
|
+
return resolve(rows[0]);
|
|
384
|
+
})
|
|
385
|
+
.catch(error => {
|
|
386
|
+
return reject(error);
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
|
|
111
392
|
}
|