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;