aboutsummaryrefslogtreecommitdiff
path: root/src/web
diff options
context:
space:
mode:
Diffstat (limited to 'src/web')
-rw-r--r--src/web/DillerWeb.js26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/web/DillerWeb.js b/src/web/DillerWeb.js
index bcb15d4..3f1d107 100644
--- a/src/web/DillerWeb.js
+++ b/src/web/DillerWeb.js
@@ -20,8 +20,11 @@ function DillerWeb(tx, config) {
function genericErrorHandler(res) {
return function (data) {
+ if (typeof data === 'string') {
+ data = {message: data}
+ }
log.warn('fail', data);
- return res.status(500).json({message: 'fail', data: data})
+ return res.status(500).json(data);
}
}
@@ -58,25 +61,24 @@ function DillerWeb(tx, config) {
var body = req.body;
+ var p;
if (!body.attribute) {
res.status(400).json({message: 'Required keys: "attribute" and "value".'});
} else if (body.attribute == 'name' || body.attribute == 'description') {
var attributes = {};
attributes[body.attribute] = body.value;
- return diller.updateDeviceAttributes(deviceId, attributes)
- .then(function () {
- return pg.batch([
- dao.deviceById(deviceId),
- dao.devicePropertiesByDeviceId(deviceId)]
- );
- })
- .then(function (data) {
- res.json(deviceResponse(data));
- }, genericErrorHandler(res));
+ p = diller.updateDeviceAttributes(deviceId, attributes);
} else {
- res.status(400).json({message: 'Unsupported attribute: ' + body.attribute});
+ p = Promise.reject('Unsupported attribute: ' + body.attribute);
}
+
+ return p.then(function () {
+ return pg.batch([
+ dao.deviceById(deviceId),
+ dao.devicePropertiesByDeviceId(deviceId)]
+ );
+ });
}).then(function (data) {
var device = data[0];
device.properties = data[1];