Skip to content

Commit 6e73f97

Browse files
authored
Merge pull request #153 from Kibibit/feature-add-download-api
[Feature] Add download file api
2 parents b83c033 + 8d5cd37 commit 6e73f97

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

app/models/downloadService.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
var console = require('./consoleService')('DOWNLOAD', ['inverse']);
2+
3+
var downloadService = {};
4+
5+
downloadService.get = function(req, res) {
6+
try {
7+
var fileFullPath = req.params.file_id;
8+
res.download(fileFullPath);
9+
} catch (err) {
10+
console.error('Couldn\'t send file to client');
11+
}
12+
};
13+
14+
module.exports = downloadService;

app/models/fileService.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ fileService.get = function(req, res) {
3838
};
3939
res.json(file);
4040
} else if (isFileOfType('font')) {
41-
res.download(fileFullPath); // Set disposition and send it.
41+
var file = {
42+
mimeType: mimeType,
43+
path: fileFullPath
44+
};
45+
res.json(file);
4246
} else {
4347
fs.readFile(fileFullPath, 'utf8', function(err, data) {
4448
if (err) {

app/routes/api.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ module.exports = function(app, express) {
33
var fileService = require('../models/fileService.js'),
44
folderService = require('../models/folderService.js'),
55
userHomeDirectoryService =
6-
require('../models/userHomeDirectoryService.js');
6+
require('../models/userHomeDirectoryService.js'),
7+
downloadService = require('../models/downloadService.js');
78

89
var apiRouter = express.Router();
910

@@ -40,6 +41,9 @@ module.exports = function(app, express) {
4041
// hard delete the directory content with this id. This means all the files inside are deleted recursively
4142
.delete(folderService.deleteExtraArg);
4243

44+
apiRouter.route('/download/:file_id')
45+
.get(downloadService.get);
46+
4347
apiRouter.route('/userHomeDirectory/')
4448
.get(userHomeDirectoryService.get);
4549

0 commit comments

Comments
 (0)