Implemented API for deleting a device.

This commit is contained in:
Zaid Abdulla committed 2014-08-16 14:14:38 +03:00
1 parent 76b67d9f54
commit faf1e49eb9
2 files changed
+29

No files matched your search

+13
View File
@@ -230,8 +230,21 @@ insertTasks = (tasks, aliases, callback) ->
) )
deleteDevice = (deviceId, callback) ->
db.tasksCollection.remove({'device' : deviceId}, (err, removed) ->
return callback(err) if err
db.devicesCollection.remove({'_id' : deviceId}, (err, removed) ->
return callback(err) if err
db.redisClient.del("#{deviceId}_presets_hash", "#{deviceId}_inform_hash", (err) ->
callback(err)
)
)
)
exports.addAliases = addAliases exports.addAliases = addAliases
exports.sanitizeTask = sanitizeTask exports.sanitizeTask = sanitizeTask
exports.connectionRequest = connectionRequest exports.connectionRequest = connectionRequest
exports.watchTask = watchTask exports.watchTask = watchTask
exports.insertTasks = insertTasks exports.insertTasks = insertTasks
exports.deleteDevice = deleteDevice
+16
View File
@@ -58,6 +58,7 @@ FILES_REGEX = /^\/files\/([a-zA-Z0-9\%\!\*\'\(\)\;\:\@\&\=\+\$\,\?\#\[\]\-\_\.\~
PING_REGEX = /^\/ping\/([a-zA-Z0-9\-\_\.]+)\/?$/ PING_REGEX = /^\/ping\/([a-zA-Z0-9\-\_\.]+)\/?$/
QUERY_REGEX = /^\/([a-zA-Z0-9_]+s)\/?$/ QUERY_REGEX = /^\/([a-zA-Z0-9_]+s)\/?$/
DEVICE_PRESET_REGEX = /^\/devices\/([a-zA-Z0-9\-\_\%]+)\/preset\/?$/ DEVICE_PRESET_REGEX = /^\/devices\/([a-zA-Z0-9\-\_\%]+)\/preset\/?$/
DELETE_DEVICE_REGEX = /^\/devices\/([a-zA-Z0-9\-\_\%]+)\/?$/
listener = (request, response) -> listener = (request, response) ->
@@ -309,6 +310,21 @@ listener = (request, response) ->
response.writeHead(200, {'Content-Type' : 'text/plain', 'Cache-Control' : 'no-cache'}) response.writeHead(200, {'Content-Type' : 'text/plain', 'Cache-Control' : 'no-cache'})
response.end(stdout) response.end(stdout)
) )
else if DELETE_DEVICE_REGEX.test(urlParts.pathname)
if request.method isnt 'DELETE'
response.writeHead(405, {'Allow' : 'DELETE'})
response.end('405 Method Not Allowed')
return
deviceId = DELETE_DEVICE_REGEX.exec(urlParts.pathname)[1]
apiFunctions.deleteDevice(deviceId, (err) ->
if err
response.writeHead(500)
response.end(err.message)
return
response.writeHead(200)
response.end()
)
else if QUERY_REGEX.test(urlParts.pathname) else if QUERY_REGEX.test(urlParts.pathname)
collectionName = QUERY_REGEX.exec(urlParts.pathname)[1] collectionName = QUERY_REGEX.exec(urlParts.pathname)[1]
if request.method not in ['GET', 'HEAD'] if request.method not in ['GET', 'HEAD']