]> git.immae.eu Git - perso/Immae/Projets/Nodejs/Surfer.git/blobdiff - src/files.js
Use 222 status code to indicate folder listing and use stdout only for data
[perso/Immae/Projets/Nodejs/Surfer.git] / src / files.js
index 48f91a816574808cea9939c2ee4006cb5354066d..d12782d8c001f5fceefe1b151b1214ce3f13dd94 100644 (file)
@@ -2,8 +2,7 @@
 
 var fs = require('fs'),
     path = require('path'),
-    ejs = require('ejs'),
-    rimraf = require('rimraf'),
+    rm = require('del'),
     debug = require('debug')('files'),
     mkdirp = require('mkdirp'),
     HttpError = require('connect-lastmile').HttpError,
@@ -54,12 +53,8 @@ function copyFile(source, target, cb) {
     });
 }
 
-function render(view, options) {
-    return ejs.render(fs.readFileSync(view, 'utf8'), options);
-}
-
 function getAbsolutePath(filePath) {
-    var absoluteFilePath = path.resolve(gBasePath, filePath);
+    var absoluteFilePath = path.resolve(path.join(gBasePath, filePath));
 
     if (absoluteFilePath.indexOf(gBasePath) !== 0) return null;
     return absoluteFilePath;
@@ -75,8 +70,8 @@ function get(req, res, next) {
 
         debug('get', absoluteFilePath);
 
-        if (result.isFile()) return res.sendfile(absoluteFilePath);
-        if (result.isDirectory()) return res.status(200).send({ entries: fs.readdirSync(absoluteFilePath) });
+        if (result.isFile()) return res.sendFile(absoluteFilePath);
+        if (result.isDirectory()) return res.status(222).send({ entries: fs.readdirSync(absoluteFilePath) });
 
         return next(new HttpError(500, 'unsupported type'));
     });
@@ -116,9 +111,9 @@ function del(req, res, next) {
     fs.stat(absoluteFilePath, function (error, result) {
         if (error) return next(new HttpError(404, error));
 
-        rimraf(absoluteFilePath, function (error) {
+        rm(absoluteFilePath, function (error, result) {
             if (error) return next(new HttpError(500, 'Unable to remove'));
-            next(new HttpSuccess(200, {}));
+            next(new HttpSuccess(200, { entries: result }));
         });
     });
 }