70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
var express = require('express');
|
|
var router = express.Router();
|
|
var multer = require('multer');
|
|
var fs = require('fs');
|
|
|
|
var tmpStorage = process.env['HOME'] + '/webapps/ofbstatic/media/sermons/tmp/';
|
|
var finalStorage = process.env['HOME'] + '/webapps/ofbstatic/media/sermons/';
|
|
console.log("Temp",tmpStorage);
|
|
console.log("Final",finalStorage);
|
|
var storage = multer.diskStorage({
|
|
destination: function (req, file, cb) {
|
|
if (req.hostname.startsWith('localhost')){
|
|
tmpStorage = '/home/me/Music/Sermons/tmp/';
|
|
finalStorage = '/home/me/Music/Sermons/';
|
|
}
|
|
cb(null, tmpStorage);
|
|
},
|
|
filename: function (req, file, cb) {
|
|
cb(null, file.originalname);
|
|
}
|
|
})
|
|
var upload = multer({ storage:storage });
|
|
var auth = require('../../authentication/login')
|
|
|
|
function removeFile(filename){
|
|
if (filename == null)
|
|
return;
|
|
|
|
filepath = tmpStorage + filename;
|
|
fs.unlinkSync(filepath);
|
|
}
|
|
|
|
//Invoked for all requests
|
|
router.use(upload.single('file'),function(req,res,next){
|
|
var filename = req.file ? req.file.filename : null;
|
|
|
|
if (!req.signedCookies.tokenUser || !req.signedCookies.tokenId || !req.signedCookies.tokenValue){
|
|
removeFile(filename);
|
|
res.status(400).json({"status":400,"message":"invalid token cookie. token needs a userId, id, and value"});
|
|
return;
|
|
}
|
|
|
|
var token = {};
|
|
token.userId = req.signedCookies.tokenUser;
|
|
token.id = req.signedCookies.tokenId;
|
|
token.value = req.signedCookies.tokenValue;
|
|
|
|
auth.verifyToken(token,function(error,isValid){
|
|
if (error){
|
|
removeFile(filename);
|
|
res.status(400).json({"status":400,"message":"error validating token"});
|
|
return;
|
|
} else {
|
|
if (!isValid){
|
|
removeFile(filename);
|
|
res.status(400).json({"status":400,"message":"invalid token"});
|
|
return;
|
|
}
|
|
}
|
|
});
|
|
|
|
if (req.file){
|
|
req.body.file = req.file.originalname;
|
|
req.body.finalPath = finalStorage + req.file.filename;
|
|
req.body.tmpPath = req.file.destination + req.file.filename;
|
|
}
|
|
next();
|
|
});
|
|
|
|
module.exports = router; |