Return task object including fault details in case of fault. Return reason for connection request failure.
This commit is contained in:
1 parent
907d13606c
commit
2cf31935bc
2 files changed
+29
-10
No files matched your search
@@ -130,15 +130,19 @@ connectionRequest = (deviceId, callback) ->
|
|||||||
|
|
||||||
watchTask = (taskId, timeout, callback) ->
|
watchTask = (taskId, timeout, callback) ->
|
||||||
setTimeout( () ->
|
setTimeout( () ->
|
||||||
db.tasksCollection.findOne({_id : taskId}, {'_id' : 1}, (err, task) ->
|
db.tasksCollection.findOne({_id : taskId}, {'_id' : 1, 'fault' : 1}, (err, task) ->
|
||||||
|
return callback(err) if err
|
||||||
|
|
||||||
if task
|
if task
|
||||||
timeout -= 500
|
timeout -= 500
|
||||||
if timeout < 0
|
if task.fault?
|
||||||
callback(new Error('Timeout'))
|
callback(null, 'fault')
|
||||||
|
else if timeout <= 0
|
||||||
|
callback(null, 'timeout')
|
||||||
else
|
else
|
||||||
watchTask(taskId, timeout, callback)
|
watchTask(taskId, timeout, callback)
|
||||||
else
|
else
|
||||||
callback(err)
|
callback(null, 'completed')
|
||||||
)
|
)
|
||||||
, 500)
|
, 500)
|
||||||
|
|
||||||
|
|||||||
+21
-6
@@ -200,16 +200,31 @@ listener = (request, response) ->
|
|||||||
if urlParts.query.connection_request?
|
if urlParts.query.connection_request?
|
||||||
apiFunctions.connectionRequest(deviceId, (err) ->
|
apiFunctions.connectionRequest(deviceId, (err) ->
|
||||||
if err
|
if err
|
||||||
response.writeHead(202, {'Content-Type' : 'application/json'})
|
response.writeHead(202, err.message, {'Content-Type' : 'application/json'})
|
||||||
response.end(JSON.stringify(task))
|
response.end(JSON.stringify(task))
|
||||||
else
|
else
|
||||||
apiFunctions.watchTask(task._id, config.get('DEVICE_ONLINE_THRESHOLD', deviceId), (err) ->
|
apiFunctions.watchTask(task._id, config.get('DEVICE_ONLINE_THRESHOLD', deviceId), (err, status) ->
|
||||||
if err
|
if err
|
||||||
response.writeHead(202, {'Content-Type' : 'application/json'})
|
response.writeHead(500)
|
||||||
response.end(JSON.stringify(task))
|
response.end(errorToString(err))
|
||||||
return
|
return
|
||||||
response.writeHead(200, {'Content-Type' : 'application/json'})
|
|
||||||
response.end(JSON.stringify(task))
|
if status is 'timeout'
|
||||||
|
response.writeHead(202, 'Task queued but not processed', {'Content-Type' : 'application/json'})
|
||||||
|
response.end(JSON.stringify(task))
|
||||||
|
else if status is 'fault'
|
||||||
|
db.tasksCollection.findOne({_id : task._id}, (err, task) ->
|
||||||
|
if err
|
||||||
|
response.writeHead(500)
|
||||||
|
response.end(errorToString(err))
|
||||||
|
return
|
||||||
|
|
||||||
|
response.writeHead(202, 'Task faulted', {'Content-Type' : 'application/json'})
|
||||||
|
response.end(JSON.stringify(task))
|
||||||
|
)
|
||||||
|
else
|
||||||
|
response.writeHead(200, {'Content-Type' : 'application/json'})
|
||||||
|
response.end(JSON.stringify(task))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in new issue
Block a user