Skip to content

Commit

Permalink
Add MQTT topic to create device (#743)
Browse files Browse the repository at this point in the history
  • Loading branch information
Pierre-Gilles authored Apr 14, 2020
1 parent a3b0e54 commit 8196d4f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
6 changes: 4 additions & 2 deletions server/services/mqtt/lib/handler/handleGladysMessage.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ const logger = require('../../../../utils/logger');
*/
function handleGladysMessage(topic, message) {
const parsedTopic = topic.split('/');
// Topic = gladys/master/device/:device_external_id/feature/:device_feature_external_id/state
if (topic.startsWith('gladys/master/device/')) {
if (topic === 'gladys/master/device/create') {
this.gladys.event.emit(EVENTS.DEVICE.NEW, JSON.parse(message));
} else if (topic.startsWith('gladys/master/device/')) {
// Topic = gladys/master/device/:device_external_id/feature/:device_feature_external_id/state
if (!parsedTopic[5]) {
throw new BadParameters('Device feature external_id is required');
}
Expand Down
6 changes: 6 additions & 0 deletions server/test/services/mqtt/lib/handleNewMessage.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ describe('Mqtt handle message', () => {
assert.notCalled(gladys.event.emit);
});

it('should create device', () => {
mqttHandler.handleNewMessage('gladys/master/device/create', '{}');

assert.calledWith(gladys.event.emit, EVENTS.DEVICE.NEW, {});
});

it('should update device state', () => {
mqttHandler.handleNewMessage(
'gladys/master/device/my_device_external_id/feature/my_feature_external_id/state',
Expand Down

0 comments on commit 8196d4f

Please sign in to comment.