Exemplo n.º 1
0
 /**
  * getting data on method and command
  * 
  * @param params {name, method, body, requrest, response}
  */
 function sendData(params, callback) {
     var p       = params,
         isFS    = Util.isContainStrAtBegin(p.name, CloudFunc.FS),
         isMD    = Util.isContainStrAtBegin(p.name, '/markdown');
     
     if (isFS)
         onFS(params, callback);
     else if (isMD)
         markdown(p.name, p.request, function(error, data) {
             callback(error, {notLog: true}, data);
         });
     else
         switch(p.request.method) {
         case 'GET':
             onGET(params, callback);
             break;
             
         case 'PUT':
             pipe.getBody(p.request, function(error, body) {
                 if (error)
                     callback(error);
                 else
                     onPUT(p.name, body, callback);
             });
             break;
         }
 }
Exemplo n.º 2
0
 module.exports  = function(name, request, callback) {
     var query,
         method = request.method;
     
     name    = mellow.convertPath(name);
     
     switch(method) {
         case 'GET':
             name    = Util.rmStrOnce(name, '/markdown');
             query   = ponse.getQuery(request);
             
             if (query === 'relative')
                 name = DIR_ROOT + name;
             
             fs.readFile(name, 'utf8', function(error, data) {
                 if (error)
                     callback(error);
                 else
                     parse(data, callback);
             });
             break;
         
         case 'PUT':
             
             pipe.getBody(request, function(error, data) {
                 if (error)
                     Util.exec(callback, error);
                 else
                     parse(data, callback);
             });
             break;
     }
 };
Exemplo n.º 3
0
 flop.read(name, 'size raw', function(error, size) {
     var MAX_SIZE = CloudFunc.MAX_FILE_SIZE;
     
     if (!error)
         if (size < MAX_SIZE)
             pipe.getBody(readStream, function(error, patch) {
                 if (error)
                     callback(error);
                 else
                     patchFile(name, patch, callback);
             });
         else
             error = 'File is to big. '          +
                     'Could not patch files '    +
                     'bigger then' + MAX_SIZE;
     
     if (error)
         callback(error);
 });
Exemplo n.º 4
0
 function onFS(params, callback) {
     var path,
         p               = params,
         query           = ponse.getQuery(p.request),
         optionsDefauls  = {
             gzip: false, 
             name:'.txt'
         };
         
     p.name  = Util.rmStrOnce(p.name, CloudFunc.FS) || '/';
     path    = mellow.convertPath(p.name);
     
     switch (p.request.method) {
     case 'PUT':
         Fs.put(query, path, p.request, function(error, data) {
             callback(error, optionsDefauls, data);
         });
         break;
     
     case 'GET':
         Fs.get(query, path, function(error, data) {
             var str, 
                 options = {},
                 isFile  = error && error.code === 'ENOTDIR',
                 isStr   = Util.type.string(data),
                 params  = {
                     gzip: true,
                     name: path,
                     request: p.request,
                     response: p.response,
                 };
             
             if (isFile) {
                 fs.realpath(path, function(error, path) {
                     if (!error)
                         params.name = path;
                     
                     params.gzip = false;
                     ponse.sendFile(params);
                 });
             } else {
                 if (!error) {
                     data.path   = format.addSlashToEnd(p.name);
                     
                     options     = {
                         name    : p.name + '.json',
                         query   : query,
                         notLog  : true
                     };
                     
                     if (isStr)
                         str = data;
                     else
                         str = Util.json.stringify(data);
                 }
                 
                 callback(error, options, str);
             }
         });
         break;
     
     case 'DELETE':
         pipe.getBody(p.request, function(error, body) {
             var files;
             
             if (error) {
                 callback(error);
             } else {
                 files   = Util.json.parse(body);
                 
                 Fs.delete(query, path, files, function(error) {
                     var names, msg;
                     
                     if (!error) {
                         if (files && files.length)
                             names = files;
                         else
                             names = p.name;
                         
                         msg = formatMsg('delete', names);
                     }
                     
                     callback(error, optionsDefauls, msg);
                 });
             }
         });
         break;
     }
 }