Optimized new device detection
This commit is contained in:
1 parent
89a114434a
commit
813bd836f5
1 file changed
+24
-13
+24
-13
@@ -70,8 +70,27 @@ updateDevice = (deviceId, actions, callback) ->
|
|||||||
updates["#{path}_timestamp"] = now
|
updates["#{path}_timestamp"] = now
|
||||||
|
|
||||||
if Object.keys(updates).length > 0
|
if Object.keys(updates).length > 0
|
||||||
devicesCollection.update({'_id' : deviceId}, {'$set' : updates}, {upsert: true, safe: true}, (err) ->
|
devicesCollection.update({'_id' : deviceId}, {'$set' : updates}, {safe: true}, (err, count) ->
|
||||||
callback(err) if callback?
|
if (err)
|
||||||
|
callback(err) if callback?
|
||||||
|
return
|
||||||
|
|
||||||
|
if count == 0
|
||||||
|
util.log("#{deviceId}: new device detected")
|
||||||
|
updates['_id'] = deviceId
|
||||||
|
devicesCollection.save(updates, {safe: true}, (err) ->
|
||||||
|
if err?
|
||||||
|
callback(err) if callback?
|
||||||
|
return
|
||||||
|
|
||||||
|
task = {device : deviceId, name : 'init', timestamp : mongo.Timestamp()}
|
||||||
|
tasksCollection.save(task, (err) ->
|
||||||
|
util.log("#{deviceId}: Added init task #{task._id}")
|
||||||
|
callback(err) if callback?
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
callback() if callback?
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
callback() if callback?
|
callback() if callback?
|
||||||
@@ -189,18 +208,10 @@ else
|
|||||||
cookies.DeviceId = deviceId = common.getDeviceId(reqParams.deviceId)
|
cookies.DeviceId = deviceId = common.getDeviceId(reqParams.deviceId)
|
||||||
if config.DEBUG
|
if config.DEBUG
|
||||||
util.log("#{deviceId}: inform (#{reqParams.eventCodes}); retry count #{reqParams.retryCount}")
|
util.log("#{deviceId}: inform (#{reqParams.eventCodes}); retry count #{reqParams.retryCount}")
|
||||||
devicesCollection.count({'_id' : deviceId}, (err, count) ->
|
|
||||||
if not count
|
|
||||||
util.log("#{deviceId}: new device detected")
|
|
||||||
task = {device : deviceId, name : 'init', timestamp : mongo.Timestamp()}
|
|
||||||
tasksCollection.save(task, (err) ->
|
|
||||||
util.log("#{deviceId}: Added init task #{task._id}")
|
|
||||||
)
|
|
||||||
|
|
||||||
updateDevice(deviceId, {'inform' : true, 'parameterValues' : reqParams.informParameterValues}, (err) ->
|
updateDevice(deviceId, {'inform' : true, 'parameterValues' : reqParams.informParameterValues}, (err) ->
|
||||||
res = tr069.response(reqParams.sessionId, resParams, cookies)
|
res = tr069.response(reqParams.sessionId, resParams, cookies)
|
||||||
writeResponse response, res
|
writeResponse response, res
|
||||||
)
|
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user