sinricpro 2.4.1 → 2.5.1

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/lib/cbhandler.js CHANGED
@@ -1,192 +1,199 @@
1
- /*
2
- * Copyright (c) 2019 Sinric. All rights reserved.
3
- * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
4
- *
5
- * This file is part of the Sinric Pro (https://github.com/sinricpro/)
6
- */
7
-
8
- const { getSignature, verifySignature } = require('./signature');
9
- const { powerState, powerLevel, powerLevelAdjust } = require('./contorllers/power_controller');
10
- const { Brightness, BrightnessAdjust } = require('./contorllers/brightness_controller');
11
- const { Color } = require('./contorllers/color_controller');
12
- const { ColorTemperature } = require('./contorllers/color_temperature');
13
- const { ThermoStatMode, ThermoStatTemperature, Lock } = require('./contorllers/sensors_controller');
14
- const { RangeValue, RangeValueAdjust } = require('./contorllers/range_value_controller');
15
- const { Volume, VolumeAdjust, Mute } = require('./contorllers/tv_controller');
16
- const { ChangeChannel, SkipChannel, Media } = require('./contorllers/tv_controller');
17
- const { Input } = require('./contorllers/tv_controller');
18
- const { Bands, Mode, BandReset } = require('./contorllers/speaker_controller');
19
- const { AdjustBands } = require('./contorllers/speaker_controller');
20
-
21
- const jsonResponse = (client, defaultPayload, dValue) => {
22
- const header = {
23
- payloadVersion: 2,
24
- signatureVersion: 1,
25
- };
26
-
27
- const payload = {
28
- action: defaultPayload.action,
29
- clientId: defaultPayload.clientId,
30
- createdAt: Math.floor(new Date() / 1000),
31
- deviceId: defaultPayload.deviceId,
32
- message: 'OK',
33
- replyToken: defaultPayload.replyToken,
34
- success: true,
35
- type: 'response',
36
- value: dValue,
37
- };
38
-
39
- const signature = {
40
- HMAC: getSignature(client, JSON.stringify(payload)),
41
- };
42
- return { header, payload, signature };
43
- };
44
-
45
- const handlePayload = (client, payload, signature, callbacks) => verifySignature(client, payload, signature)
46
- .then((action) => {
47
- /* eslint no-else-return: ["error", {allowElseIf: true}] */
48
- if (action === 'setPowerState') {
49
- return powerState(payload, callbacks)
50
- .then((value) => jsonResponse(client, payload, value))
51
- .catch((err) => {
52
- console.log(err.message);
53
- });
54
- } else if (action === 'setPowerLevel') {
55
- return powerLevel(payload, callbacks)
56
- .then((value) => jsonResponse(client, payload, value))
57
- .catch((err) => {
58
- console.log(err.message);
59
- });
60
- } else if (action === 'adjustPowerLevel') {
61
- return powerLevelAdjust(payload, callbacks)
62
- .then((value) => jsonResponse(client, payload, value))
63
- .catch((err) => {
64
- console.log(err.message);
65
- });
66
- } else if (action === 'setBrightness') {
67
- return Brightness(payload, callbacks)
68
- .then((value) => jsonResponse(client, payload, value))
69
- .catch((err) => {
70
- console.log(err.message);
71
- });
72
- } else if (action === 'adjustBrightness') {
73
- return BrightnessAdjust(payload, callbacks)
74
- .then((value) => jsonResponse(client, payload, value))
75
- .catch((err) => {
76
- console.log(err.message);
77
- });
78
- } else if (action === 'setColor') {
79
- return Color(payload, callbacks)
80
- .then((value) => jsonResponse(client, payload, value))
81
- .catch((err) => {
82
- console.log(err.message);
83
- });
84
- } else if (action === 'setColorTemperature') {
85
- return ColorTemperature(payload, callbacks)
86
- .then((value) => jsonResponse(client, payload, value))
87
- .catch((err) => {
88
- console.log(err.message);
89
- });
90
- } else if (action === 'setThermostatMode') {
91
- return ThermoStatMode(payload, callbacks)
92
- .then((value) => jsonResponse(client, payload, value))
93
- .catch((err) => {
94
- console.log(err.message);
95
- });
96
- } else if (action === 'targetTemperature') {
97
- return ThermoStatTemperature(payload, callbacks)
98
- .then((value) => jsonResponse(client, payload, value))
99
- .catch((err) => {
100
- console.log(err.message);
101
- });
102
- } else if (action === 'setRangeValue') {
103
- return RangeValue(payload, callbacks)
104
- .then((value) => jsonResponse(client, payload, value))
105
- .catch((err) => {
106
- console.log(err.message);
107
- });
108
- } else if (action === 'adjustRangeValue') {
109
- return RangeValueAdjust(payload, callbacks)
110
- .then((value) => jsonResponse(client, payload, value))
111
- .catch((err) => {
112
- console.log(err.message);
113
- });
114
- } else if (action === 'setVolume') {
115
- return Volume(payload, callbacks)
116
- .then((value) => jsonResponse(client, payload, value))
117
- .catch((err) => {
118
- console.log(err.message);
119
- });
120
- } else if (action === 'adjustVolume') {
121
- return VolumeAdjust(payload, callbacks)
122
- .then((value) => jsonResponse(client, payload, value))
123
- .catch((err) => {
124
- console.log(err.message);
125
- });
126
- } else if (action === 'selectInput') {
127
- return Input(payload, callbacks)
128
- .then((value) => jsonResponse(client, payload, value))
129
- .catch((err) => {
130
- console.log(err.message);
131
- });
132
- } else if (action === 'mediaControl') {
133
- return Media(payload, callbacks)
134
- .then((value) => jsonResponse(client, payload, value))
135
- .catch((err) => {
136
- console.log(err.message);
137
- });
138
- } else if (action === 'changeChannel') {
139
- return ChangeChannel(payload, callbacks)
140
- .then((value) => jsonResponse(client, payload, value))
141
- .catch((err) => {
142
- console.log(err.message);
143
- });
144
- } else if (action === 'skipChannels') {
145
- return SkipChannel(payload, callbacks)
146
- .then((value) => jsonResponse(client, payload, value))
147
- .catch((err) => {
148
- console.log(err.message);
149
- });
150
- } else if (action === 'setBands') {
151
- return Bands(payload, callbacks)
152
- .then((value) => jsonResponse(client, payload, value))
153
- .catch((err) => {
154
- console.log(err.message);
155
- });
156
- } else if (action === 'adjustBands') {
157
- return AdjustBands(payload, callbacks)
158
- .then((value) => jsonResponse(client, payload, value))
159
- .catch((err) => {
160
- console.log(err.message);
161
- });
162
- } else if (action === 'resetBands') {
163
- return BandReset(payload, callbacks)
164
- .then((value) => jsonResponse(client, payload, value))
165
- .catch((err) => {
166
- console.log(err.message);
167
- });
168
- } else if (action === 'setMode') {
169
- return Mode(payload, callbacks)
170
- .then((value) => jsonResponse(client, payload, value))
171
- .catch((err) => {
172
- console.log(err.message);
173
- });
174
- } else if (action === 'setLockState') {
175
- return Lock(payload, callbacks)
176
- .then((value) => jsonResponse(client, payload, value))
177
- .catch((err) => {
178
- console.log(err.message);
179
- });
180
- } else if (action === 'setMute') {
181
- return Mute(payload, callbacks)
182
- .then((value) => jsonResponse(client, payload, value))
183
- .catch((err) => {
184
- console.log(err.message);
185
- });
186
- }
187
- return {};
188
- })
189
- .catch((err) => {
190
- console.log(err.message);
191
- });
192
- module.exports = handlePayload;
1
+ /*
2
+ * Copyright (c) 2019 Sinric. All rights reserved.
3
+ * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
4
+ *
5
+ * This file is part of the Sinric Pro (https://github.com/sinricpro/)
6
+ */
7
+
8
+ const { getSignature, verifySignature } = require('./signature');
9
+ const { powerState, powerLevel, powerLevelAdjust } = require('./contorllers/power_controller');
10
+ const { Brightness, BrightnessAdjust } = require('./contorllers/brightness_controller');
11
+ const { Color } = require('./contorllers/color_controller');
12
+ const { ColorTemperature } = require('./contorllers/color_temperature');
13
+ const { ThermoStatMode, ThermoStatTemperature, Lock } = require('./contorllers/sensors_controller');
14
+ const { RangeValue, RangeValueAdjust } = require('./contorllers/range_value_controller');
15
+ const { Volume, VolumeAdjust, Mute } = require('./contorllers/tv_controller');
16
+ const { ChangeChannel, SkipChannel, Media } = require('./contorllers/tv_controller');
17
+ const { Input } = require('./contorllers/tv_controller');
18
+ const { Bands, Mode, BandReset } = require('./contorllers/speaker_controller');
19
+ const { AdjustBands } = require('./contorllers/speaker_controller');
20
+ const { ToggleState } = require('./contorllers/toggle_state_controller');
21
+
22
+ const jsonResponse = (client, defaultPayload, dValue) => {
23
+ const header = {
24
+ payloadVersion: 2,
25
+ signatureVersion: 1,
26
+ };
27
+
28
+ const payload = {
29
+ action: defaultPayload.action,
30
+ clientId: defaultPayload.clientId,
31
+ createdAt: Math.floor(new Date() / 1000),
32
+ deviceId: defaultPayload.deviceId,
33
+ message: 'OK',
34
+ replyToken: defaultPayload.replyToken,
35
+ success: true,
36
+ type: 'response',
37
+ value: dValue,
38
+ };
39
+
40
+ const signature = {
41
+ HMAC: getSignature(client, JSON.stringify(payload)),
42
+ };
43
+ return { header, payload, signature };
44
+ };
45
+
46
+ const handlePayload = (client, payload, signature, callbacks) => verifySignature(client, payload, signature)
47
+ .then((action) => {
48
+ /* eslint no-else-return: ["error", {allowElseIf: true}] */
49
+ if (action === 'setPowerState') {
50
+ return powerState(payload, callbacks)
51
+ .then((value) => jsonResponse(client, payload, value))
52
+ .catch((err) => {
53
+ console.log(err.message);
54
+ });
55
+ } else if (action === 'setPowerLevel') {
56
+ return powerLevel(payload, callbacks)
57
+ .then((value) => jsonResponse(client, payload, value))
58
+ .catch((err) => {
59
+ console.log(err.message);
60
+ });
61
+ } else if (action === 'adjustPowerLevel') {
62
+ return powerLevelAdjust(payload, callbacks)
63
+ .then((value) => jsonResponse(client, payload, value))
64
+ .catch((err) => {
65
+ console.log(err.message);
66
+ });
67
+ } else if (action === 'setBrightness') {
68
+ return Brightness(payload, callbacks)
69
+ .then((value) => jsonResponse(client, payload, value))
70
+ .catch((err) => {
71
+ console.log(err.message);
72
+ });
73
+ } else if (action === 'adjustBrightness') {
74
+ return BrightnessAdjust(payload, callbacks)
75
+ .then((value) => jsonResponse(client, payload, value))
76
+ .catch((err) => {
77
+ console.log(err.message);
78
+ });
79
+ } else if (action === 'setColor') {
80
+ return Color(payload, callbacks)
81
+ .then((value) => jsonResponse(client, payload, value))
82
+ .catch((err) => {
83
+ console.log(err.message);
84
+ });
85
+ } else if (action === 'setColorTemperature') {
86
+ return ColorTemperature(payload, callbacks)
87
+ .then((value) => jsonResponse(client, payload, value))
88
+ .catch((err) => {
89
+ console.log(err.message);
90
+ });
91
+ } else if (action === 'setThermostatMode') {
92
+ return ThermoStatMode(payload, callbacks)
93
+ .then((value) => jsonResponse(client, payload, value))
94
+ .catch((err) => {
95
+ console.log(err.message);
96
+ });
97
+ } else if (action === 'targetTemperature') {
98
+ return ThermoStatTemperature(payload, callbacks)
99
+ .then((value) => jsonResponse(client, payload, value))
100
+ .catch((err) => {
101
+ console.log(err.message);
102
+ });
103
+ } else if (action === 'setRangeValue') {
104
+ return RangeValue(payload, callbacks)
105
+ .then((value) => jsonResponse(client, payload, value))
106
+ .catch((err) => {
107
+ console.log(err.message);
108
+ });
109
+ } else if (action === 'adjustRangeValue') {
110
+ return RangeValueAdjust(payload, callbacks)
111
+ .then((value) => jsonResponse(client, payload, value))
112
+ .catch((err) => {
113
+ console.log(err.message);
114
+ });
115
+ } else if (action === 'setVolume') {
116
+ return Volume(payload, callbacks)
117
+ .then((value) => jsonResponse(client, payload, value))
118
+ .catch((err) => {
119
+ console.log(err.message);
120
+ });
121
+ } else if (action === 'adjustVolume') {
122
+ return VolumeAdjust(payload, callbacks)
123
+ .then((value) => jsonResponse(client, payload, value))
124
+ .catch((err) => {
125
+ console.log(err.message);
126
+ });
127
+ } else if (action === 'selectInput') {
128
+ return Input(payload, callbacks)
129
+ .then((value) => jsonResponse(client, payload, value))
130
+ .catch((err) => {
131
+ console.log(err.message);
132
+ });
133
+ } else if (action === 'mediaControl') {
134
+ return Media(payload, callbacks)
135
+ .then((value) => jsonResponse(client, payload, value))
136
+ .catch((err) => {
137
+ console.log(err.message);
138
+ });
139
+ } else if (action === 'changeChannel') {
140
+ return ChangeChannel(payload, callbacks)
141
+ .then((value) => jsonResponse(client, payload, value))
142
+ .catch((err) => {
143
+ console.log(err.message);
144
+ });
145
+ } else if (action === 'skipChannels') {
146
+ return SkipChannel(payload, callbacks)
147
+ .then((value) => jsonResponse(client, payload, value))
148
+ .catch((err) => {
149
+ console.log(err.message);
150
+ });
151
+ } else if (action === 'setBands') {
152
+ return Bands(payload, callbacks)
153
+ .then((value) => jsonResponse(client, payload, value))
154
+ .catch((err) => {
155
+ console.log(err.message);
156
+ });
157
+ } else if (action === 'adjustBands') {
158
+ return AdjustBands(payload, callbacks)
159
+ .then((value) => jsonResponse(client, payload, value))
160
+ .catch((err) => {
161
+ console.log(err.message);
162
+ });
163
+ } else if (action === 'resetBands') {
164
+ return BandReset(payload, callbacks)
165
+ .then((value) => jsonResponse(client, payload, value))
166
+ .catch((err) => {
167
+ console.log(err.message);
168
+ });
169
+ } else if (action === 'setMode') {
170
+ return Mode(payload, callbacks)
171
+ .then((value) => jsonResponse(client, payload, value))
172
+ .catch((err) => {
173
+ console.log(err.message);
174
+ });
175
+ } else if (action === 'setLockState') {
176
+ return Lock(payload, callbacks)
177
+ .then((value) => jsonResponse(client, payload, value))
178
+ .catch((err) => {
179
+ console.log(err.message);
180
+ });
181
+ } else if (action === 'setMute') {
182
+ return Mute(payload, callbacks)
183
+ .then((value) => jsonResponse(client, payload, value))
184
+ .catch((err) => {
185
+ console.log(err.message);
186
+ });
187
+ } else if (action === 'setToggleState') {
188
+ return ToggleState(payload, callbacks)
189
+ .then((value) => jsonResponse(client, payload, value))
190
+ .catch((err) => {
191
+ console.log(err.message);
192
+ });
193
+ }
194
+ return {};
195
+ })
196
+ .catch((err) => {
197
+ console.log(err.message);
198
+ });
199
+ module.exports = handlePayload;
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright (c) 2019 Sinric. All rights reserved.
3
+ * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
4
+ *
5
+ * This file is part of the Sinric Pro (https://github.com/sinricpro/)
6
+ */
7
+
8
+ const ToggleState = (payload, callbacks) => {
9
+ const resp = callbacks.setToggleState(payload.deviceId, { instanceId: payload.instanceId, value: payload.value.state });
10
+ return new Promise((resolve, reject) => {
11
+ if (resp) resolve(payload);
12
+ else reject(new Error('Toggle State Error'));
13
+ });
14
+ };
15
+
16
+ module.exports = {
17
+ ToggleState
18
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sinricpro",
3
- "version": "2.4.1",
3
+ "version": "2.5.1",
4
4
  "description": "Sinric Pro Nodejs SDK",
5
5
  "main": "index.js",
6
6
  "repository": {