api: Handle views directory better, and disable obsver1 download

This commit is contained in:
Paul Bienkowski 2021-05-01 13:29:25 +02:00
parent c32a475b96
commit 31af59819e
2 changed files with 7 additions and 22 deletions

View file

@ -17,7 +17,7 @@ const app = express();
app.use(cors());
// Express configuration
app.set('views', './views');
app.set('views', path.join(__dirname, '..', 'views'));
app.set('view engine', 'pug');
// Normal express config defaults

View file

@ -389,30 +389,15 @@ router.get(
// download the original file
router.get(
'/:track/download',
'/:track/download/original.csv',
auth.optional,
wrapRoute(async (req, res) => {
if (req.track.isVisibleToPrivate(req.user)) {
return res.download(req.track.fullOriginalFilePath)
} else if (req.track.isVisibleTo(req.user)) {
await req.track.populate('publicTrackData').execPopulate()
if (!req.track.publicTrackData) {
if (!req.track.isVisibleToPrivate(req.user)) {
return res.sendStatus(403);
}
const body = buildObsver1(req.track.publicTrackData.points)
const fileName = req.track.slug + '_public.csv'
res.set({
'Content-Disposition': 'attachment; filename=' + JSON.stringify(fileName),
'Content-Type': 'text/csv',
});
return res.end(body)
} else {
return res.sendStatus(403);
}
}),
);
return res.download(req.track.getOriginalFilePath(), req.track.originalFileName)
})
)
module.exports = router;