From eae99545031d64f25c3ca20b793fef7d912bc357 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 25 Feb 2013 11:04:47 -0500 Subject: [PATCH] refactored --- lib/client.js | 4 +- lib/server/rest.js | 155 ++++++++++++++++++++++++++------------------- lib/util.js | 8 +-- 3 files changed, 96 insertions(+), 71 deletions(-) diff --git a/lib/client.js b/lib/client.js index 18e9edc0..0215c4f1 100644 --- a/lib/client.js +++ b/lib/client.js @@ -115,7 +115,7 @@ CloudCmd._editFileName = function(pParent){ if (lA && lA.textContent !== '..'){ lA.contentEditable = true; - KeyBinding.unSet(); + KeyBinding && KeyBinding.unSet(); /* setting event handler onclick * if user clicks somewhere keyBinded @@ -126,7 +126,7 @@ CloudCmd._editFileName = function(pParent){ if (lA && lA.textContent !== '..') lA.contentEditable = false; - KeyBinding.set(); + KeyBinding && KeyBinding.set(); }); } }; diff --git a/lib/server/rest.js b/lib/server/rest.js index 6e6d16f5..71803252 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -70,16 +70,15 @@ */ function getData(pParams){ var lResult, - lCmd = pParams.command, - lMethod = pParams.method; - + lCmd = pParams.command, + lMethod = pParams.method; + pParams.name = lCmd + if( Util.isContainStr(lCmd, CloudFunc.FS) ) lResult = onFS({ request : pParams.request, response: pParams.response, method : lMethod, - name : lCmd, - body : pParams.body }); if(lCmd[0] === '/'){ @@ -94,7 +93,10 @@ break; case 'PUT': - lResult = onPUT(pParams); + getBody(pParams.request, function(pBody){ + pParams.body = pBody; + onPUT(pParams); + }); break; } @@ -183,29 +185,35 @@ * @param pParams {command, method, body, requrest, response} */ function onGET(pParams){ - var lCmd = pParams.command; - - switch(lCmd){ - case '': - pParams.data = { - info: 'Cloud Commander API v1' - }; - send(pParams); - break; - - case 'kill': - pParams.data = { - mesage: 'Cloud Commander was killed' - }; - send(pParams); - break; - default: - pParams.data = { - error: 'command not found' - }; - send(pParams); - break; + var lRet = main.checkParams(pParams); + if(lRet){ + var p = pParams, + lCmd = p.command; + + switch(lCmd){ + case '': + p.data = { + info: 'Cloud Commander API v1' + }; + send(p); + break; + + case 'kill': + p.data = { + mesage: 'Cloud Commander was killed' + }; + send(p); + break; + default: + p.data = { + error: 'command not found' + }; + send(p); + break; + } } + + return lRet; } /** @@ -214,50 +222,67 @@ * @param pParams {command, method, body, requrest, response} */ function onPUT(pParams){ - var lResult = {error: 'command not found'}, - lCmd = pParams.command, - lBody = pParams.body, - lRes = pParams.response, - lReq = pParams.request; - - switch(lCmd){ - case 'auth': - getBody(lReq, function(pBody){ - main.auth(pBody, function(pTocken){ + var lRet = main.checkParams(pParams, ['body']); + if(lRet){ + var p = pParams, + lCmd = p.command, + lFiles = Util.stringifyJSON(p.body); + + switch(lCmd){ + case 'auth': + main.auth(p.body, function(pTocken){ send({ - response: lRes, + response: p.response, data: pTocken }); }); - }); - break; - - case 'read': - console.log(lBody); - var lFiles = lBody; - - if( Util.isString(lFiles) ){ - pParams.name = lFiles; - main.sendFile(pParams); - - } - break; + break; - case 'cmd': - main.child_process.exec(lCmd, function(pError, pStdout, pStderr){ - var lError = pError || pStderr; - if(!lError){ - pParams.data = pStdout; - main.sendResponse(pParams); + case 'cmd': + main.child_process.exec(p.body, function(pError, pStdout, pStderr){ + var lError = pError || pStderr; + if(!lError) + main.sendResponse(pParams, pStdout); + else + main.sendError(pParams, lError); + }); + break; + case 'mv': + if(lFiles) + fs.rename(lFiles.from, lFiles.to, function(pError){ + if(!pError) + main.sendResponse(pParams); + else + main.sendError(pParams, pError); + }); + break; + + case 'cp': + if(lFiles){ + var lReadStream = fs.createReadStream(lFiles.from), + lWriteStream = fs.createWriteStream(lFiles.to), + lError = function(pError){ + main.sendError(pParams, pError); + }; + + + lWriteStream.on('error', lError); + lReadStream.on('error', lError); + + lWriteStream.on('end', function(){ + main.sendResponse(pParams, 'copied: ' + p.name); + }); + + lReadStream.pipe(lWriteStream); } - else - main.sendError(pParams, lError); - }); - break; - } + break; + default: + send(pParams); + break; + } + } - - return lResult; + return lRet; } /** diff --git a/lib/util.js b/lib/util.js index 6069af3a..c30d07a8 100644 --- a/lib/util.js +++ b/lib/util.js @@ -93,9 +93,9 @@ Util = exports || {}; * @param pTrueArr */ Util.checkObj = function(pObj, pPropArr, pTrueArr){ - var lRet = Util.isObject(pObj), + var lRet, i, n; - if( lRet ){ + if( pObj ){ lRet = Util.isArray(pPropArr); if(lRet){ n = pPropArr.length; @@ -125,9 +125,9 @@ Util = exports || {}; * @param pTrueArr */ Util.checkObjTrue = function(pObj, pTrueArr){ - var lRet = Util.isObject(pObj), + var lRet, i, n; - if( lRet ){ + if( pObj ){ lRet = Util.isArray(pTrueArr); if(lRet){ n = pTrueArr.length;