/
index.js
66 lines (56 loc) · 1.37 KB
/
index.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
const { registerLambda } = require('./src/helper.js');
const {
setupDatabase,
publishRequestStatus,
addDeviceRole,
logDeviceMessage,
saveDeviceStatus,
publishDeviceEvent,
} = require('./src/handler.js');
module.exports = {
includeme(skygearCloud) {
const skygear = new skygearCloud.CloudCodeContainer();
skygear.endPoint = skygearCloud.settings.skygearEndpoint+'/';
skygear.apiKey = skygearCloud.settings.masterKey;
skygear.pubsub.reconfigure();
skygearCloud.event('before-plugins-ready', _ => {
return setupDatabase(skygearCloud, skygear);
});
skygearCloud.every('@every 10m', _ => {
return publishRequestStatus(skygear);
});
registerLambda(
skygearCloud,
'iot:add-device-role', {
userRequired: true,
},
addDeviceRole
);
registerLambda(
skygearCloud,
'iot:log', {
userRequired: true,
roleRequired: 'iot-device'
},
logDeviceMessage
);
registerLambda(
skygearCloud,
'iot:report-status', {
userRequired: true,
roleRequired: 'iot-device',
inject: {skygear},
},
saveDeviceStatus
);
registerLambda(
skygearCloud,
'iot:device-publish', {
authRequired: true,
roleRequired: 'iot-manager',
inject: {skygear},
},
publishDeviceEvent
);
}
};