From 5a7fb8e458662047b238dfc938f925c1dbb7e295 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 17 Apr 2014 03:45:23 -0400 Subject: [PATCH] refactor(rest) copyFiles --- lib/server/rest.js | 47 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index 18e0fc55..5cd5a83e 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -242,7 +242,7 @@ * @param pParams {command, method, body, requrest, response} */ function onPUT(params) { - var p, cmd, files, name, json, config, copyFiles, + var p, cmd, files, name, json, config, namesAll, func, ret = main.checkParams(params, ['body']); if (ret) { @@ -280,33 +280,20 @@ if (!Util.checkObjTrue(files, ['from', 'names', 'to'])) sendError(params, p.data); else { - files.namesAll = Util.slice(files.names); + namesAll = Util.slice(files.names); - copyFiles = function(files) { - var names = files.names, - namesAll = files.namesAll, - name = names.shift(), - from = files.from, - to = files.to; + func = function(error, files) { + var length = files.names.length; - fse.copy(from + name, to + name, function(error) { - var length = names.length; - - if (error) - sendError(params, error); - else if (!length) - sendMsg(params, 'copy', namesAll); - else - copyFiles({ - from : from, - to : to, - names : names, - namesAll: namesAll - }); - }); + if (error) + sendError(params, error); + else if (!length) + sendMsg(params, 'copy', namesAll); + else + copyFiles(files, func); }; - copyFiles(files); + copyFiles(files, func); } break; @@ -384,6 +371,18 @@ return ret; } + function copyFiles(files, callback) { + var names = files.names, + name = names.shift(), + from = files.from, + to = files.to, + func = Util.retExec(callback); + + fse.copy(from + name, to + name, function(error) { + func(error, files); + }); + } + function sendMsg(pParams, pMsg, pName, pStatus) { var msg = CloudFunc.formatMsg(pMsg, pName, pStatus); sendResponse(pParams, msg);