72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
const allowed_settings = {
|
|
ACCR: ['boolean'],
|
|
}
|
|
export const setup = function (router, con, server) {
|
|
router.get('/api/settings', function (req, res) {
|
|
res.json(res.locals.settings)
|
|
|
|
/* #swagger.security = [{
|
|
"appTokenAuthHeader": []
|
|
}] */
|
|
})
|
|
router.post('/api/settings', function (req, res) {
|
|
if (!req.body.setting) {
|
|
res.status(410)
|
|
res.json({ error: 'no setting to change' })
|
|
return
|
|
}
|
|
if (typeof req.body.setting !== 'string') {
|
|
res.status(411)
|
|
res.json({ error: 'no setting to change' })
|
|
return
|
|
}
|
|
let types = allowed_settings[req.body.setting]
|
|
let allowed = false
|
|
let got = typeof req.body.value
|
|
for (let index = 0; index < types.length; index++) {
|
|
if (types[index] === got) {
|
|
allowed = true
|
|
break
|
|
}
|
|
}
|
|
if (!allowed) {
|
|
console.log(
|
|
5,
|
|
'incorrect type given, received, expected',
|
|
typeof req.body.value,
|
|
allowed_settings[req.body.setting]
|
|
)
|
|
res.status(412)
|
|
res.json({ error: 'no new setting value given' })
|
|
return
|
|
}
|
|
let setting_to_change = req.body.setting
|
|
let setting_new_value = req.body.value
|
|
res.locals.settings[setting_to_change] = setting_new_value
|
|
console.log(
|
|
5,
|
|
'changing settings',
|
|
setting_to_change,
|
|
setting_new_value,
|
|
res.locals.settings
|
|
)
|
|
let sql = 'update ipost.users set User_Settings=? where User_Name=?'
|
|
let values = [JSON.stringify(res.locals.settings), res.locals.username]
|
|
con.query(sql, values, function (err, result) {
|
|
if (err) {
|
|
res.status(500)
|
|
res.json({ status: 'error', code: err })
|
|
return
|
|
}
|
|
res.json({ status: 'success' })
|
|
})
|
|
|
|
/* #swagger.security = [{
|
|
"appTokenAuthHeader": []
|
|
}] */
|
|
})
|
|
}
|
|
export default {
|
|
setup,
|
|
}
|