kopia lustrzana https://github.com/manuelkasper/sotlas-api
43 wiersze
947 B
JavaScript
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()
|
|
})
|
|
}
|
|
})
|