mirror of
https://github.com/kaythomas0/noisedash.git
synced 2025-11-12 11:26:20 +00:00
Add db serialize functions
This commit is contained in:
@@ -35,8 +35,17 @@ module.exports = function () {
|
|||||||
db.run(`CREATE TABLE IF NOT EXISTS samples (
|
db.run(`CREATE TABLE IF NOT EXISTS samples (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
name TEXT UNIQUE,
|
name TEXT UNIQUE,
|
||||||
|
volume INTEGER,
|
||||||
user INTEGER,
|
user INTEGER,
|
||||||
FOREIGN KEY(user) REFERENCES users(id))`
|
FOREIGN KEY(user) REFERENCES users(id))`
|
||||||
)
|
)
|
||||||
|
|
||||||
|
db.run(`CREATE TABLE IF NOT EXISTS profiles_samples (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
profile INTEGER,
|
||||||
|
sample INTEGER,
|
||||||
|
FOREIGN KEY(profile) REFERENCES profiles(id),
|
||||||
|
FOREIGN KEY(sample) REFERENCES samples(id))`
|
||||||
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ router.get('/admin', function (req, res) {
|
|||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], (err, row) => {
|
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], function (err, row) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,49 +7,65 @@ router.post('/profiles', function (req, res) {
|
|||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.run(`INSERT INTO profiles (
|
let profileID = 0
|
||||||
name,
|
|
||||||
user,
|
db.serialize(function () {
|
||||||
timer_enabled,
|
db.run(`INSERT INTO profiles (
|
||||||
duration,
|
name,
|
||||||
volume,
|
user,
|
||||||
noise_color,
|
timer_enabled,
|
||||||
filter_enabled,
|
duration,
|
||||||
filter_type,
|
volume,
|
||||||
filter_cutoff,
|
noise_color,
|
||||||
lfo_filter_cutoff_enabled,
|
filter_enabled,
|
||||||
lfo_filter_cutoff_frequency,
|
filter_type,
|
||||||
lfo_filter_cutoff_low,
|
filter_cutoff,
|
||||||
lfo_filter_cutoff_high,
|
lfo_filter_cutoff_enabled,
|
||||||
tremolo_enabled,
|
lfo_filter_cutoff_frequency,
|
||||||
tremolo_frequency,
|
lfo_filter_cutoff_low,
|
||||||
tremolo_depth)
|
lfo_filter_cutoff_high,
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
tremolo_enabled,
|
||||||
req.body.name,
|
tremolo_frequency,
|
||||||
req.user.id,
|
tremolo_depth)
|
||||||
req.body.isTimerEnabled ? 1 : 0,
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
||||||
req.body.duration,
|
req.body.name,
|
||||||
req.body.volume,
|
req.user.id,
|
||||||
req.body.noiseColor,
|
req.body.isTimerEnabled ? 1 : 0,
|
||||||
req.body.isFilterEnabled ? 1 : 0,
|
req.body.duration,
|
||||||
req.body.filterType,
|
req.body.volume,
|
||||||
req.body.filterCutoff,
|
req.body.noiseColor,
|
||||||
req.body.isLFOFilterCutoffEnabled ? 1 : 0,
|
req.body.isFilterEnabled ? 1 : 0,
|
||||||
req.body.lfoFilterCutoffFrequency,
|
req.body.filterType,
|
||||||
req.body.lfoFilterCutoffLow,
|
req.body.filterCutoff,
|
||||||
req.body.lfoFilterCutoffHigh,
|
req.body.isLFOFilterCutoffEnabled ? 1 : 0,
|
||||||
req.body.isTremoloEnabled ? 1 : 0,
|
req.body.lfoFilterCutoffFrequency,
|
||||||
req.body.tremoloFrequency,
|
req.body.lfoFilterCutoffLow,
|
||||||
req.body.tremoloDepth
|
req.body.lfoFilterCutoffHigh,
|
||||||
],
|
req.body.isTremoloEnabled ? 1 : 0,
|
||||||
function (err) {
|
req.body.tremoloFrequency,
|
||||||
if (err) {
|
req.body.tremoloDepth
|
||||||
return res.sendStatus(500)
|
],
|
||||||
} else {
|
function (err) {
|
||||||
return res.sendStatus(200)
|
if (err) {
|
||||||
}
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
)
|
|
||||||
|
profileID = this.lastID
|
||||||
|
})
|
||||||
|
|
||||||
|
req.body.samples.forEach(s => {
|
||||||
|
db.run('INSERT INTO profiles_samples (profile, sample) VALUES (?, ?)', [
|
||||||
|
profileID,
|
||||||
|
s.id
|
||||||
|
],
|
||||||
|
function (err) {
|
||||||
|
if (err) {
|
||||||
|
return res.sendStatus(500)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return res.sendStatus(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
router.get('/profiles', function (req, res) {
|
router.get('/profiles', function (req, res) {
|
||||||
@@ -59,12 +75,12 @@ router.get('/profiles', function (req, res) {
|
|||||||
|
|
||||||
const profiles = []
|
const profiles = []
|
||||||
|
|
||||||
db.all('SELECT id, name FROM profiles WHERE user = ?', [req.user.id], (err, rows) => {
|
db.all('SELECT id, name FROM profiles WHERE user = ?', [req.user.id], function (err, rows) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
|
|
||||||
rows.forEach((row) => {
|
rows.forEach(row => {
|
||||||
const profile = {}
|
const profile = {}
|
||||||
|
|
||||||
profile.id = row.id
|
profile.id = row.id
|
||||||
@@ -101,7 +117,7 @@ router.get('/profiles/:profileId', function (req, res) {
|
|||||||
tremolo_enabled as isTremoloEnabled,
|
tremolo_enabled as isTremoloEnabled,
|
||||||
tremolo_frequency as tremoloFrequency,
|
tremolo_frequency as tremoloFrequency,
|
||||||
tremolo_depth as tremoloDepth
|
tremolo_depth as tremoloDepth
|
||||||
FROM profiles WHERE id = ?`, [req.params.profileId], (err, row) => {
|
FROM profiles WHERE id = ?`, [req.params.profileId], function (err, row) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
@@ -135,16 +151,18 @@ router.delete('/profiles/:profileId', function (req, res) {
|
|||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.get('SELECT user FROM profiles WHERE id = ?', [req.params.profileId], (err, row) => {
|
db.serialize(function () {
|
||||||
if (err) {
|
db.get('SELECT user FROM profiles WHERE id = ?', [req.params.profileId], function (err, row) {
|
||||||
return res.sendStatus(500)
|
if (err) {
|
||||||
}
|
return res.sendStatus(500)
|
||||||
|
}
|
||||||
|
|
||||||
if (row.user.toString() !== req.user.id) {
|
if (row.user.toString() !== req.user.id) {
|
||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
|
||||||
db.run('DELETE FROM profiles WHERE id = ?', [req.params.profileId], (err) => {
|
db.run('DELETE FROM profiles WHERE id = ?', [req.params.profileId], function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -16,8 +16,9 @@ router.post('/samples', upload.single('sample'), function (req, res, next) {
|
|||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.run('INSERT INTO samples (name, user) VALUES (?, ?)', [
|
db.run('INSERT INTO samples (name, volume, user) VALUES (?, ?, ?)', [
|
||||||
req.body.name,
|
req.body.name,
|
||||||
|
0,
|
||||||
req.user.id
|
req.user.id
|
||||||
],
|
],
|
||||||
function (err) {
|
function (err) {
|
||||||
@@ -36,16 +37,17 @@ router.get('/samples', function (req, res) {
|
|||||||
|
|
||||||
const samples = []
|
const samples = []
|
||||||
|
|
||||||
db.all('SELECT id, name FROM samples WHERE user = ?', [req.user.id], (err, rows) => {
|
db.all('SELECT id, name, volume FROM samples WHERE user = ?', [req.user.id], function (err, rows) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
|
|
||||||
rows.forEach((row) => {
|
rows.forEach(row => {
|
||||||
const sample = {}
|
const sample = {}
|
||||||
|
|
||||||
sample.id = row.id
|
sample.id = row.id
|
||||||
sample.name = row.name
|
sample.name = row.name
|
||||||
|
sample.volume = row.volume
|
||||||
|
|
||||||
samples.push(sample)
|
samples.push(sample)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ router.get('/users/current', function (req, res) {
|
|||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.get('SELECT is_admin as isAdmin, * FROM users WHERE id = ?', [req.user.id], (err, row) => {
|
db.get('SELECT is_admin as isAdmin, * FROM users WHERE id = ?', [req.user.id], function (err, row) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
@@ -31,12 +31,12 @@ router.get('/users', function (req, res) {
|
|||||||
|
|
||||||
const users = []
|
const users = []
|
||||||
|
|
||||||
db.all('SELECT id, username, name, is_admin as isAdmin FROM users', (err, rows) => {
|
db.all('SELECT id, username, name, is_admin as isAdmin FROM users', function (err, rows) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
|
|
||||||
rows.forEach((row) => {
|
rows.forEach(row => {
|
||||||
const user = {}
|
const user = {}
|
||||||
|
|
||||||
user.id = row.id
|
user.id = row.id
|
||||||
@@ -94,16 +94,18 @@ router.patch('/users/:userId', function (req, res) {
|
|||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], (err, row) => {
|
db.serialize(function () {
|
||||||
if (err) {
|
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], function (err, row) {
|
||||||
return res.sendStatus(500)
|
if (err) {
|
||||||
}
|
return res.sendStatus(500)
|
||||||
|
}
|
||||||
|
|
||||||
if (row.is_admin === 0) {
|
if (row.is_admin === 0) {
|
||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
|
||||||
db.run('UPDATE users SET is_admin = ? WHERE id = ?', [req.body.isAdmin ? 1 : 0, req.params.userId], (err) => {
|
db.run('UPDATE users SET is_admin = ? WHERE id = ?', [req.body.isAdmin ? 1 : 0, req.params.userId], function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
} else {
|
} else {
|
||||||
@@ -118,16 +120,18 @@ router.delete('/users/:userId', function (req, res) {
|
|||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], (err, row) => {
|
db.serialize(function () {
|
||||||
if (err) {
|
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], function (err, row) {
|
||||||
return res.sendStatus(500)
|
if (err) {
|
||||||
}
|
return res.sendStatus(500)
|
||||||
|
}
|
||||||
|
|
||||||
if (row.is_admin === 0) {
|
if (row.is_admin === 0) {
|
||||||
return res.sendStatus(401)
|
return res.sendStatus(401)
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
|
||||||
db.run('DELETE FROM users WHERE id = ?', [req.params.userId], (err) => {
|
db.run('DELETE FROM users WHERE id = ?', [req.params.userId], function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -189,7 +189,8 @@ export default {
|
|||||||
lfoFilterCutoffHigh: this.lfoFilterCutoffRange[1],
|
lfoFilterCutoffHigh: this.lfoFilterCutoffRange[1],
|
||||||
isTremoloEnabled: this.isTremoloEnabled,
|
isTremoloEnabled: this.isTremoloEnabled,
|
||||||
tremoloFrequency: this.tremoloFrequency,
|
tremoloFrequency: this.tremoloFrequency,
|
||||||
tremoloDepth: this.tremoloDepth
|
tremoloDepth: this.tremoloDepth,
|
||||||
|
samples: this.samples
|
||||||
})
|
})
|
||||||
.catch(function (error) {
|
.catch(function (error) {
|
||||||
console.error(error.response)
|
console.error(error.response)
|
||||||
@@ -240,13 +241,15 @@ export default {
|
|||||||
.then(response => {
|
.then(response => {
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
this.samples = response.data.samples
|
this.samples = response.data.samples
|
||||||
this.samples.forEach((s) => {
|
this.samples.forEach(s => {
|
||||||
this.players.add(s.id, '/samples/' + s.name).toDestination()
|
if (!this.players.has(s.id)) {
|
||||||
|
this.players.add(s.id, '/samples/' + s.name).toDestination()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(function (error) {
|
.catch(function (error) {
|
||||||
console.error(error.response)
|
console.error(error)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
uploadSample () {
|
uploadSample () {
|
||||||
@@ -260,6 +263,11 @@ export default {
|
|||||||
'Content-Type': 'multipart/form-data'
|
'Content-Type': 'multipart/form-data'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.then(response => {
|
||||||
|
if (response.status === 200) {
|
||||||
|
this.getSamples()
|
||||||
|
}
|
||||||
|
})
|
||||||
.catch(function (error) {
|
.catch(function (error) {
|
||||||
console.error(error.response)
|
console.error(error.response)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user