From 7c751e3a2f481ba4f5faa677dc6c52b6e3269182 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 19 Feb 2014 07:07:54 -0500 Subject: [PATCH] refactor(rest) onDelete --- lib/server/rest.js | 65 +++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index 2ea3bfc5..1f821d91 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -206,12 +206,14 @@ break; case 'DELETE': - onDelete(params, lQuery, function(error, msg, callback) { - checkSendError(error, params, function() { - if (callback) - Util.exec(callback); - else - sendMsg(params, 'delete', msg); + getBody(p.request, function(body) { + onDelete(p.name, body, lQuery, function(error, msg, callback) { + checkSendError(error, params, function() { + if (callback) + Util.exec(callback); + else + sendMsg(params, 'delete', msg); + }); }); }); break; @@ -221,29 +223,33 @@ return ret; } - function onDelete(params, query, callback) { - var rmFile = fs.unlink.bind(fs), + function onDelete(name, body, query, callback) { + var i, n, onStat, + files = Util.parseJSON(body), + assync = 0, + rmFile = fs.unlink.bind(fs), rmDir = fse.remove.bind(fse), - p = params; + func = Util.retExec(callback); - if (query === 'dir') - rmDir(p.name, function(error) { - Util.exec(callback, error, p.name); - }); - else if (query === 'files') - getBody(p.request, function(body) { - var i, name, - files = Util.parseJSON(body), - n = files.length, - dir = p.name, - log = Util.log.bind(Util), - assync = 0; + switch(query) { + default: + rmFile(name, func); + break; + + case 'dir': + rmDir(name, func); + break; + + case 'files': + n = files && files.length, + dir = name; - function onStat(name, error, stat) { + onStat = function(name, error, stat) { + log = Util.log.bind(Util); ++assync; if (error) - Util.exec(callback, error); + func(error); else { if (stat.isDirectory()) rmDir(name, log); @@ -252,22 +258,17 @@ rmFile(name, log); if (assync === n) - Util.exec(callback, null, body); + func(null, body); } - } + }; for (i = 0; i < n; i ++) { name = dir + files[i]; - Util.log(name); - fs.stat(name, onStat.bind(null, name)); } - }); - else - rmFile(p.name, function(error) { - Util.exec(callback, error, p.name); - }); + break; + } } function onFSGet(query, name, callback) {