forked from external-repos/noisedash
Add delete user function, fix profile loading
This commit is contained in:
@@ -14,7 +14,7 @@ router.get('/auth', function (req, res) {
|
||||
}
|
||||
})
|
||||
|
||||
router.get('/logout', function (req, res, next) {
|
||||
router.get('/logout', function (req, res) {
|
||||
req.logout()
|
||||
res.sendStatus(200)
|
||||
})
|
||||
|
||||
@@ -2,13 +2,11 @@ const express = require('express')
|
||||
const db = require('../db')
|
||||
const router = express.Router()
|
||||
|
||||
router.post('/profiles', function (req, res, next) {
|
||||
router.post('/profiles', function (req, res) {
|
||||
if (!req.user) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
console.log(req.body)
|
||||
|
||||
db.run(`INSERT INTO profiles (
|
||||
name,
|
||||
user,
|
||||
@@ -46,7 +44,6 @@ router.post('/profiles', function (req, res, next) {
|
||||
],
|
||||
function (err) {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
@@ -55,52 +52,37 @@ router.post('/profiles', function (req, res, next) {
|
||||
)
|
||||
})
|
||||
|
||||
router.get('/profiles', function (req, res, next) {
|
||||
router.get('/profiles', function (req, res) {
|
||||
if (!req.user) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
const profiles = []
|
||||
|
||||
db.all('SELECT name FROM profiles WHERE user = ?', [req.user.id], (err, rows) => {
|
||||
db.all('SELECT id, name FROM profiles WHERE user = ?', [req.user.id], (err, rows) => {
|
||||
if (err) {
|
||||
console.log('Error getting profiles')
|
||||
console.log(err)
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
rows.forEach((row) => {
|
||||
profiles.push(row.name)
|
||||
console.log(row.name)
|
||||
const profile = {}
|
||||
|
||||
profile.id = row.id
|
||||
profile.text = row.name
|
||||
|
||||
profiles.push(profile)
|
||||
})
|
||||
|
||||
console.log('PROFILES: ')
|
||||
res.json({ profiles: profiles })
|
||||
})
|
||||
})
|
||||
|
||||
router.get('/profiles/:profileId', function (req, res, next) {
|
||||
router.get('/profiles/:profileId', function (req, res) {
|
||||
if (!req.user) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
// TODO: I'm guessing there's a better way to marshal this data
|
||||
const profile = {
|
||||
name: null,
|
||||
isTimerEnabled: null,
|
||||
duration: null,
|
||||
volume: null,
|
||||
noiseColor: null,
|
||||
isFilterEnabled: null,
|
||||
filterType: null,
|
||||
isLFOFilterCutoffEnabled: null,
|
||||
lfoFilterCutoffFrequency: null,
|
||||
lfoFilterCutoffLow: null,
|
||||
lfoFilterCutoffHigh: null,
|
||||
isTremoloEnabled: null,
|
||||
tremoloFrequency: null,
|
||||
tremoloDepth: null
|
||||
}
|
||||
const profile = {}
|
||||
|
||||
db.get(`SELECT
|
||||
name,
|
||||
@@ -120,11 +102,10 @@ router.get('/profiles/:profileId', function (req, res, next) {
|
||||
tremolo_depth as tremoloDepth
|
||||
FROM profiles WHERE id = ?`, [req.params.profileId], (err, row) => {
|
||||
if (err) {
|
||||
console.log('Error getting profile')
|
||||
console.log(err)
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
// TODO: Should return 'true' or 'false' rather than 1 or 0 for bool values
|
||||
profile.name = row.name
|
||||
profile.isTimerEnabled = row.isTimerEnabled
|
||||
profile.duration = row.duration
|
||||
@@ -140,7 +121,6 @@ router.get('/profiles/:profileId', function (req, res, next) {
|
||||
profile.tremoloFrequency = row.tremoloFrequency
|
||||
profile.tremoloDepth = row.tremoloDepth
|
||||
|
||||
console.log('PROFILES: ')
|
||||
res.json({ profile: profile })
|
||||
})
|
||||
})
|
||||
|
||||
@@ -3,28 +3,22 @@ const crypto = require('crypto')
|
||||
const db = require('../db')
|
||||
const router = express.Router()
|
||||
|
||||
router.get('/users', function (req, res, next) {
|
||||
router.get('/users', function (req, res) {
|
||||
if (!req.user) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
// TODO: I'm guessing there's a better way to marshal this data
|
||||
const users = []
|
||||
|
||||
db.all('SELECT username, name, is_admin as isAdmin FROM users', (err, rows) => {
|
||||
db.all('SELECT id, username, name, is_admin as isAdmin FROM users', (err, rows) => {
|
||||
if (err) {
|
||||
console.log('Error getting profiles')
|
||||
console.log(err)
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
rows.forEach((row) => {
|
||||
const user = {
|
||||
username: null,
|
||||
name: null,
|
||||
isAdmin: null
|
||||
}
|
||||
const user = {}
|
||||
|
||||
user.id = row.id
|
||||
user.username = row.username
|
||||
user.name = row.name
|
||||
user.isAdmin = row.isAdmin === 1
|
||||
@@ -36,11 +30,10 @@ router.get('/users', function (req, res, next) {
|
||||
})
|
||||
})
|
||||
|
||||
router.post('/users', function (req, res, next) {
|
||||
router.post('/users', function (req, res) {
|
||||
const salt = crypto.randomBytes(16)
|
||||
crypto.pbkdf2(req.body.password, salt, 10000, 32, 'sha256', function (err, hashedPassword) {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
res.sendStatus(500)
|
||||
}
|
||||
|
||||
@@ -52,7 +45,6 @@ router.post('/users', function (req, res, next) {
|
||||
req.body.isAdmin
|
||||
], function (err) {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
res.sendStatus(500)
|
||||
}
|
||||
|
||||
@@ -63,7 +55,6 @@ router.post('/users', function (req, res, next) {
|
||||
}
|
||||
req.login(user, function (err) {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
res.sendStatus(500)
|
||||
}
|
||||
})
|
||||
@@ -72,19 +63,49 @@ router.post('/users', function (req, res, next) {
|
||||
res.sendStatus(200)
|
||||
})
|
||||
|
||||
router.put('/users', function (req, res, next) {
|
||||
router.patch('/users/:userId', function (req, res) {
|
||||
if (!req.user) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
db.run('UPDATE users SET is_admin = ? WHERE username = ?', [req.body.isAdmin, req.body.username], (err) => {
|
||||
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.log('Error getting profiles')
|
||||
console.log(err)
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
console.log(`Row(s) updated: ${this.changes}`)
|
||||
if (row.is_admin === 0) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
db.run('UPDATE users SET is_admin = ? WHERE id = ?', [req.body.isAdmin, req.params.userId], (err) => {
|
||||
if (err) {
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
res.sendStatus(200)
|
||||
})
|
||||
|
||||
router.delete('/users/:userId', function (req, res) {
|
||||
if (!req.user) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], (err, row) => {
|
||||
if (err) {
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
|
||||
if (row.is_admin === 0) {
|
||||
return res.sendStatus(401)
|
||||
}
|
||||
|
||||
db.run('DELETE FROM users WHERE id = ?', [req.params.userId], (err) => {
|
||||
if (err) {
|
||||
return res.sendStatus(500)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
res.sendStatus(200)
|
||||
|
||||
Reference in New Issue
Block a user