-
Notifications
You must be signed in to change notification settings - Fork 0
/
data-manager.js
72 lines (60 loc) · 1.48 KB
/
data-manager.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
const store = require('json-fs-store');
module.exports = class DataManager
{
constructor(storagePath)
{
this.data = {};
if(storagePath != null)
{
this.storage = store(storagePath);
this.storage.load('data', (err, obj) => {
if(!obj || err)
{
logger.log('error', 'bridge', 'Bridge', 'Data.json %read_error%! ' + err);
}
else
{
this.data = obj.data;
}
});
}
}
readAccessoryService(id, letters)
{
if(this.data != null
&& this.data[id] != null)
{
return this.data[id][letters];
}
else
{
return null;
}
}
updateValues(id, letters, values)
{
if(this.data[id] == null)
{
this.data[id] = {};
}
if(this.data[id][letters] == null)
{
this.data[id][letters] = {};
}
for(const value in Object.keys(values))
{
this.data[id][letters][value] = values[value];
}
this.saveValues();
console.log('SAVED VALUES', values);
}
saveValues()
{
this.storage.add({ id : 'data', data : this.data }, (err) => {
if(err)
{
logger.log('error', 'bridge', 'Bridge', 'Data.json %update_error%! ' + err);
}
});
}
}