Bug fixes related to calculation of preset hash expiary.

This commit is contained in:
Zaid Abdulla committed 2013-11-04 00:41:14 +03:00
1 parent 993472e2ca
commit 8414f463ad
2 files changed
+6 -6

No files matched your search

+1 -1
View File
@@ -218,7 +218,7 @@ assertPresets = (currentRequest) ->
presets.getDevicePreset(currentRequest.deviceId, allPresets, allObjects, (devicePreset) -> presets.getDevicePreset(currentRequest.deviceId, allPresets, allObjects, (devicePreset) ->
presets.processDevicePreset(currentRequest.deviceId, devicePreset, (taskList, addTags, deleteTags, expiry) -> presets.processDevicePreset(currentRequest.deviceId, devicePreset, (taskList, addTags, deleteTags, expiry) ->
db.redisClient.setex("#{currentRequest.deviceId}_presets_hash", Math.ceil(expiry - config.PRESETS_TIME_PADDING), presetsHash, (err, res) -> db.redisClient.setex("#{currentRequest.deviceId}_presets_hash", Math.floor(Math.max(1, expiry - config.PRESETS_TIME_PADDING)), presetsHash, (err, res) ->
throw err if err throw err if err
) )
+5 -5
View File
@@ -148,7 +148,7 @@ exports.getDevicePreset = (deviceId, presets, objects, callback) ->
devicePreset.customCommands ?= {} devicePreset.customCommands ?= {}
devicePreset.customCommands[filename] ?= {} devicePreset.customCommands[filename] ?= {}
devicePreset.customCommands[filename].preset ?= {} devicePreset.customCommands[filename].preset ?= {}
devicePreset.customCommands[filename].preset.expiry = parseInt(c.expiry) devicePreset.customCommands[filename].preset.expiry = parseInt(c.age)
devicePreset.customCommands[filename].preset.expiryCommand = c.command devicePreset.customCommands[filename].preset.expiryCommand = c.command
continue if not deviceCustomCommands[filename]? or commandName not in deviceCustomCommands[filename] continue if not deviceCustomCommands[filename]? or commandName not in deviceCustomCommands[filename]
if cmd = common.getParamValueFromPath(device, "_customCommands.#{filename}") if cmd = common.getParamValueFromPath(device, "_customCommands.#{filename}")
@@ -186,8 +186,8 @@ exports.processDevicePreset = (deviceId, devicePreset, callback) ->
if presetValue? and currentValue != (presetValue = common.matchType(currentValue, presetValue)) if presetValue? and currentValue != (presetValue = common.matchType(currentValue, presetValue))
setParameterValues.push([parameterPath, presetValue, parameterDetails.current._type]) setParameterValues.push([parameterPath, presetValue, parameterDetails.current._type])
else if parameterDetails.preset.expiry? else if parameterDetails.preset.expiry?
diff = (now - (parameterDetails.current._timestamp ? 0)) / 1000 diff = parameterDetails.preset.expiry - (now - (parameterDetails.current._timestamp ? 0)) / 1000
if diff >= expiry if diff <= config.PRESETS_TIME_PADDING
if parameterDetails.current._value? if parameterDetails.current._value?
getParameterValues.push(parameterPath) getParameterValues.push(parameterPath)
else else
@@ -232,8 +232,8 @@ exports.processDevicePreset = (deviceId, devicePreset, callback) ->
if commandDetails.preset.value? and currentValue != presetValue if commandDetails.preset.value? and currentValue != presetValue
taskList.push({device : deviceId, name : 'customCommand', command : commandDetails.preset.valueCommand}) taskList.push({device : deviceId, name : 'customCommand', command : commandDetails.preset.valueCommand})
else if commandDetails.preset.expiry? else if commandDetails.preset.expiry?
diff = (now - (commandDetails.current._timestamp ? 0)) / 1000 diff = commandDetails.preset.expiry - (now - (commandDetails.current._timestamp ? 0)) / 1000
if diff <= 0 if diff <= config.PRESETS_TIME_PADDING
taskList.push({device : deviceId, name : 'customCommand', command : commandDetails.preset.expiryCommand}) taskList.push({device : deviceId, name : 'customCommand', command : commandDetails.preset.expiryCommand})
else else
expiry = Math.min(expiry, diff) expiry = Math.min(expiry, diff)