Files
noisedash/server/routes/profiles.js
Kevin Thomas c0043e7a29 Refactor
2021-08-03 22:52:47 -07:00

148 lines
3.7 KiB
JavaScript

const express = require('express')
const db = require('../db')
const router = express.Router()
router.post('/profiles', function (req, res, next) {
if (!req.user) {
return res.sendStatus(401)
}
console.log(req.body)
db.run(`INSERT INTO profiles (
name,
user,
timer_enabled,
duration,
volume,
noise_color,
filter_enabled,
filter_type,
filter_cutoff,
lfo_filter_cutoff_enabled,
lfo_filter_cutoff_frequency,
lfo_filter_cutoff_low,
lfo_filter_cutoff_high,
tremolo_enabled,
tremolo_frequency,
tremolo_depth)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
req.body.name,
req.user.id,
req.body.isTimerEnabled,
req.body.duration,
req.body.volume,
req.body.noiseColor,
req.body.isFilterEnabled,
req.body.filterType,
req.body.filterCutoff,
req.body.isLFOFilterCutoffEnabled,
req.body.lfoFilterCutoffFrequency,
req.body.lfoFilterCutoffLow,
req.body.lfoFilterCutoffHigh,
req.body.isTremoloEnabled,
req.body.tremoloFrequency,
req.body.tremoloDepth
],
function (err) {
if (err) {
console.log(err)
return res.sendStatus(500)
}
res.sendStatus(200)
}
)
})
router.get('/profiles', function (req, res, next) {
if (!req.user) {
return res.sendStatus(401)
}
const profiles = []
db.all('SELECT 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)
})
console.log('PROFILES: ')
res.json({ profiles: profiles })
})
})
router.get('/profiles/:profileId', function (req, res, next) {
if (!req.user) {
return res.sendStatus(401)
}
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
}
db.get(`SELECT
name,
timer_enabled as isTimerEnabled,
duration,
volume,
noise_color as noiseColor,
filter_enabled as isFilterEnabled,
filter_type as filterType,
filter_cutoff as filterCutoff,
lfo_filter_cutoff_enabled as isLFOFilterCutoffEnabled,
lfo_filter_cutoff_frequency as lfoFilterCutoffFrequency,
lfo_filter_cutoff_low as lfoFilterCutoffLow,
lfo_filter_cutoff_high as lfoFilterCutoffHigh,
tremolo_enabled as isTremoloEnabled,
tremolo_frequency as tremoloFrequency,
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)
}
profile.name = row.name
profile.isTimerEnabled = row.isTimerEnabled
profile.duration = row.duration
profile.volume = row.volume
profile.noiseColor = row.noiseColor
profile.isFilterEnabled = row.isFilterEnabled
profile.filterType = row.filterType
profile.isLFOFilterCutoffEnabled = row.isLFOFilterCutoffEnabled
profile.lfoFilterCutoffFrequency = row.lfoFilterCutoffFrequency
profile.lfoFilterCutoffLow = row.lfoFilterCutoffLow
profile.lfoFilterCutoffHigh = row.lfoFilterCutoffHigh
profile.isTremoloEnabled = row.isTremoloEnabled
profile.tremoloFrequency = row.tremoloFrequency
profile.tremoloDepth = row.tremoloDepth
console.log('PROFILES: ')
res.json({ profile: profile })
})
})
module.exports = router