mirror of
https://github.com/kaythomas0/noisedash.git
synced 2025-11-11 19:06:20 +00:00
77 lines
1.6 KiB
JavaScript
77 lines
1.6 KiB
JavaScript
const express = require('express')
|
|
const config = require('config')
|
|
const multer = require('multer')
|
|
const storage = multer.diskStorage({
|
|
destination: config.get('Server.sampleUploadPath'),
|
|
filename: (req, file, cb) => {
|
|
cb(null, req.user.id + '_' + req.body.name)
|
|
}
|
|
})
|
|
const upload = multer({ storage: storage })
|
|
const db = require('../db')
|
|
const router = express.Router()
|
|
|
|
router.post('/samples', upload.single('sample'), (req, res, next) => {
|
|
if (!req.user) {
|
|
return res.sendStatus(401)
|
|
}
|
|
|
|
db.serialize(() => {
|
|
db.get('SELECT can_upload FROM users WHERE id = ?', [req.user.id], (err, row) => {
|
|
if (err) {
|
|
return res.sendStatus(500)
|
|
}
|
|
|
|
if (row.can_upload === 0) {
|
|
return res.sendStatus(401)
|
|
}
|
|
})
|
|
|
|
db.run('INSERT INTO samples (name, user) VALUES (?, ?)', [
|
|
req.body.name,
|
|
req.user.id
|
|
],
|
|
(err) => {
|
|
if (err) {
|
|
console.log(err)
|
|
if (err.code === 'SQLITE_CONSTRAINT') {
|
|
return res.sendStatus(409)
|
|
} else {
|
|
return res.sendStatus(500)
|
|
}
|
|
} else {
|
|
return res.sendStatus(200)
|
|
}
|
|
})
|
|
})
|
|
})
|
|
|
|
router.get('/samples', (req, res) => {
|
|
if (!req.user) {
|
|
return res.sendStatus(401)
|
|
}
|
|
|
|
const samples = []
|
|
|
|
db.all('SELECT id, name FROM samples WHERE user = ?', [req.user.id], (err, rows) => {
|
|
if (err) {
|
|
console.log(err)
|
|
return res.sendStatus(500)
|
|
}
|
|
|
|
rows.forEach(row => {
|
|
const sample = {}
|
|
|
|
sample.id = row.id
|
|
sample.name = row.name
|
|
sample.user = req.user.id
|
|
|
|
samples.push(sample)
|
|
})
|
|
|
|
res.json({ samples: samples })
|
|
})
|
|
})
|
|
|
|
module.exports = router
|