Settings resource; oauth2 app authorization model; UI cleanup

This commit is contained in:
garrettmills
2020-05-17 21:13:38 -05:00
parent d558f21375
commit 2b2e7d2ebe
19 changed files with 393 additions and 2 deletions

View File

@@ -0,0 +1,47 @@
const { Controller } = require('libflitter')
class SettingsController extends Controller {
static get services() {
return [...super.services, 'models']
}
async get_settings(req, res, next) {
const Setting = this.models.get('Setting')
const settings = await Setting.find()
const data = []
for ( const setting of settings ) {
data.push(await setting.to_api())
}
return res.api(data)
}
async get_setting(req, res, next) {
const Setting = this.models.get('Setting')
const setting = await Setting.findOne({ key: req.params.key })
if ( !setting )
return res.status(404)
.message('No setting exists with that key.')
.api()
return res.api(await setting.to_api())
}
async update_setting(req, res, next) {
const Setting = this.models.get('Setting')
const setting = await Setting.findOne({ key: req.params.key })
if ( !setting )
return res.status(404)
.message('No setting exists with that key.')
.api()
setting.set(req.body.value)
await setting.save()
return res.api()
}
}
module.exports = exports = SettingsController