Commit f05687679c5c546c61fd215a08985ac9a23be756
1 parent
15037cba
Exists in
exchange
and in
1 other branch
Change download approach
Showing
3 changed files
with
25 additions
and
4 deletions
Show diff stats
translate-api/app.js
@@ -15,7 +15,7 @@ var express = require('express'); | @@ -15,7 +15,7 @@ var express = require('express'); | ||
15 | var bodyParser = require('body-parser'); | 15 | var bodyParser = require('body-parser'); |
16 | 16 | ||
17 | var db = require('./config/db'); | 17 | var db = require('./config/db'); |
18 | -var settings = require('./config/settings'); | 18 | +// var settings = require('./config/settings'); |
19 | 19 | ||
20 | var bundle = require('./routes/bundle'); | 20 | var bundle = require('./routes/bundle'); |
21 | var translate = require('./routes/translate'); | 21 | var translate = require('./routes/translate'); |
@@ -32,7 +32,7 @@ app.use(bodyParser.urlencoded({ extended: true })); | @@ -32,7 +32,7 @@ app.use(bodyParser.urlencoded({ extended: true })); | ||
32 | /** | 32 | /** |
33 | * Public directory. | 33 | * Public directory. |
34 | */ | 34 | */ |
35 | -app.use('/video', express.static(settings.contentsPath)); | 35 | +// app.use('/video', express.static(settings.contentsPath)); |
36 | 36 | ||
37 | /** | 37 | /** |
38 | * Allow cross origin requests. | 38 | * Allow cross origin requests. |
translate-api/controllers/video.js
@@ -8,10 +8,13 @@ | @@ -8,10 +8,13 @@ | ||
8 | /** | 8 | /** |
9 | * Required libs. | 9 | * Required libs. |
10 | */ | 10 | */ |
11 | -var shortid = require('shortid') | 11 | +var fs = require('fs') |
12 | + , path = require('path') | ||
13 | + , shortid = require('shortid') | ||
12 | , Video = require('../models/video') | 14 | , Video = require('../models/video') |
13 | , amqp = require('../helpers/amqpManager') | 15 | , amqp = require('../helpers/amqpManager') |
14 | - , error = require('../helpers/error'); | 16 | + , error = require('../helpers/error') |
17 | + , settings = require('../config/settings'); | ||
15 | 18 | ||
16 | exports.create = function(req, res, next) { | 19 | exports.create = function(req, res, next) { |
17 | if (!req.body.gloss) | 20 | if (!req.body.gloss) |
@@ -60,6 +63,23 @@ exports.create = function(req, res, next) { | @@ -60,6 +63,23 @@ exports.create = function(req, res, next) { | ||
60 | }); | 63 | }); |
61 | }; | 64 | }; |
62 | 65 | ||
66 | +exports.download = function(req, res, next) { | ||
67 | + if (!req.params.file) | ||
68 | + return error.badRequest('File not specified.', next); | ||
69 | + | ||
70 | + var videoFile = path.join(settings.contentsPath, req.params.file); | ||
71 | + res.download(videoFile, function(err) { | ||
72 | + if (err) | ||
73 | + return error.notFound('Can\'t find any content.', next); | ||
74 | + | ||
75 | + fs.unlink(videoFile, function(err) { | ||
76 | + if (err) | ||
77 | + return console.error('Can\'t remove ' + videoFile); | ||
78 | + console.log(videoFile + ' removed.'); | ||
79 | + }); | ||
80 | + }); | ||
81 | +}; | ||
82 | + | ||
63 | exports.status = function(req, res, next) { | 83 | exports.status = function(req, res, next) { |
64 | // Receive param id | 84 | // Receive param id |
65 | var contentID = req.params.id; | 85 | var contentID = req.params.id; |
translate-api/routes/video.js
@@ -12,6 +12,7 @@ var express = require('express') | @@ -12,6 +12,7 @@ var express = require('express') | ||
12 | */ | 12 | */ |
13 | router | 13 | router |
14 | .post('/', videoController.create) | 14 | .post('/', videoController.create) |
15 | + .get('/:file', videoController.download) | ||
15 | .get('/status/:id', videoController.status) | 16 | .get('/status/:id', videoController.status) |
16 | 17 | ||
17 | module.exports = router; | 18 | module.exports = router; |