diff --git a/lib/server/rest.js b/lib/server/rest.js index d0aa89b4..96cefe63 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -36,7 +36,10 @@ }); if(lData) - send(lRes, lData); + send({ + response : lRes, + data : lData + }); }); } @@ -50,9 +53,18 @@ * @param pRes * @param pData */ - function send(pRes, pData){ - pRes.writeHead(OK, Header); - pRes.end( JSON.stringify(pData) ); + function send(pParams){ + var lRes = pParams.response, + lData = pParams.data, + lEndListener = pParams.endListener; + + lRes.writeHead(OK, Header); + lRes.end( JSON.stringify(lData) ); + + if(lEndListener) + lRes.on('end', function(){ + Util.exec(lEndListener); + }); } /** @@ -105,7 +117,13 @@ break; case 'kill': - process.exit(); + pParams.data = { + mesage: 'Cloud Commander was killed' + }; + + pParams.endListener = Util.retExec(process.exit); + + send(pParams); break; } @@ -126,10 +144,13 @@ switch(lCmd){ case 'auth': main.auth(lBody, function(pTocken){ - send(lRes, pTocken); + send({ + response: lRes, + data: pTocken + }); }); - lResult = false; + lResult = false; break; case 'read':