sotlas-api/tracks_router.js

43 wiersze
947 B
JavaScript

const express = require('express')
const multer = require('multer')
const config = require('./config')
const tracks = require('./tracks')
const jwt = require('express-jwt')
const jwksRsa = require('jwks-rsa')
let upload = multer({dest: config.tracks.uploadPath})
let router = express.Router()
module.exports = router
let jwtCallback = jwt({
secret: jwksRsa.expressJwtSecret({
cache: true,
rateLimit: true,
jwksRequestsPerMinute: 5,
jwksUri: config.sso.jwksUri
})
})
router.post('/upload', jwtCallback, upload.single('track'), (req, res) => {
res.cacheControl = {
noCache: true
}
if (!req.user.callsign) {
res.status(401).send('Missing callsign in SSO token').end()
return
}
if (req.file) {
tracks.importTrack(req.file.path, req.user.callsign)
.then(track => {
res.json(track)
})
.catch(err => {
console.error(err)
res.status(500).end()
})
}
})