aboutsummaryrefslogtreecommitdiff
path: root/src/DillerDao.js
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2015-11-01 01:06:40 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2015-11-01 01:06:40 +0100
commitf7ff8a837bed336a14aa0442ed8286f3ef78f577 (patch)
treeb6fc65c5fed93383ef5c942a8f5855050fc062b5 /src/DillerDao.js
parent2173df227821aefe1cf9aee5d8165fa0a24961e9 (diff)
downloaddiller-server-f7ff8a837bed336a14aa0442ed8286f3ef78f577.tar.gz
diller-server-f7ff8a837bed336a14aa0442ed8286f3ef78f577.tar.bz2
diller-server-f7ff8a837bed336a14aa0442ed8286f3ef78f577.tar.xz
diller-server-f7ff8a837bed336a14aa0442ed8286f3ef78f577.zip
core:
o Adding updates of device property's name and description. web: o Ading editing of property name and description.
Diffstat (limited to 'src/DillerDao.js')
-rw-r--r--src/DillerDao.js28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/DillerDao.js b/src/DillerDao.js
index e7f6b54..63ad3c1 100644
--- a/src/DillerDao.js
+++ b/src/DillerDao.js
@@ -69,12 +69,27 @@ function DillerDao(tx) {
return tx.one('INSERT INTO device_property(id, device, key, created_timestamp) VALUES(DEFAULT, $1, $2, CURRENT_TIMESTAMP) RETURNING ' + propertyColumns, [deviceId, key]);
}
- function updatePropertyName(id, name) {
- return tx.none('UPDATE device_property SET name=$1 WHERE id=$2', [name, id]);
- }
+ function updateProperty(id, attributes) {
+ var values = [id];
+ var i = 2;
+ var fields = _(attributes).chain()
+ .map(function (value, attribute) {
+ if (attribute == 'name' || attribute == 'description') {
+ value = (value || '').trim();
+ values.push(value.length > 0 ? value : null);
+ return attribute + ' = $' + i++;
+ }
+ })
+ .collect()
+ .join(', ')
+ .value();
+
+ if (fields.length == 0) {
+ return Promise.resolve({});
+ }
- function updatePropertyDescription(id, description) {
- return tx.none('UPDATE device_property SET description=$1 WHERE id=$2', description, id);
+ var sql = 'UPDATE device_property SET ' + fields + ' WHERE id = $1 RETURNING *';
+ return tx.one(sql, values);
}
// -------------------------------------------------------------------------------------------------------------------
@@ -130,8 +145,7 @@ function DillerDao(tx) {
devicePropertyByDeviceIdAndKey: devicePropertyByDeviceIdAndKey,
devicePropertiesByDeviceId: devicePropertiesByDeviceId,
insertDeviceProperty: insertDeviceProperty,
- updatePropertyName: updatePropertyName,
- updatePropertyDescription: updatePropertyDescription,
+ updateProperty: updateProperty,
valuesByPropertyId: valuesByPropertyId,
insertValue: insertValue,