@trusthab/composable-resources
Version:
migrating https://github.com/knetikmedia/hab-api/tree/integration/app/resources/composable
58 lines (49 loc) • 1.31 kB
JavaScript
const composer = require('../mixin_loader');
module.exports = (App) => {
const { underscore } = require('inflected');
class DeviceAudioDetectorResource {
static mixins() {
return [
'DeviceBase'
];
}
static fields() {
return {
smoke: {
type: 'boolean',
or: ['null'],
path: 'additional_properties.smoke.value'
},
carbon_monoxide: {
type: 'boolean',
or: ['null'],
path: 'additional_properties.carbon_monoxide.value'
},
burglar: {
type: 'boolean',
or: ['null'],
path: 'additional_properties.burglar.value'
}
};
}
static knetikCloudMethods() {
const methods = require('./device_base')(App).knetikCloudMethods();
return {
...methods,
search: {
index: 'devices',
template: 'hab',
paramsBuilder: (params) => {
const { filter } = params;
const default_filters = 'device_type:audio_detector';
params.filter = filter
? `${filter}|${default_filters}`
: default_filters;
return params;
}
}
};
}
}
return composer(DeviceAudioDetectorResource, App);
};