From 130809800e6e3fa33e5fc207dd6e1d963231f2a9 Mon Sep 17 00:00:00 2001 From: Johannes Zellner Date: Tue, 1 Mar 2016 13:14:45 +0100 Subject: Send more folder listing details --- src/files.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/files.js b/src/files.js index 2214449..520127d 100644 --- a/src/files.js +++ b/src/files.js @@ -1,6 +1,7 @@ 'use strict'; -var fs = require('fs'), +var async = require('async'), + fs = require('fs'), path = require('path'), rm = require('del'), debug = require('debug')('files'), @@ -74,10 +75,28 @@ function get(req, res, next) { debug('get', absoluteFilePath); + if (!result.isDirectory() && !result.isFile()) return next(new HttpError(500, 'unsupported type')); 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')); + async.map(fs.readdirSync(absoluteFilePath), function (filePath, callback) { + fs.stat(path.join(absoluteFilePath, filePath), function (error, result) { + if (error) return callback(error); + + callback(null, { + isDirectory: result.isDirectory(), + isFile: result.isFile(), + atime: result.atime, + mtime: result.mtime, + ctime: result.ctime, + birthtime: result.birthtime, + size: result.size, + filePath: filePath + }); + }); + }, function (error, results) { + if (error) return next(new HttpError(500, error)); + res.status(222).send({ entries: results }); + }); }); } -- cgit v1.2.3