123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import express from 'express'
- import Config from '../models/config'
- const config = express.Router()
- config.post('/:key', async (req, res, next) => {
- const { key } = req.params
- const { value, description } = req.body
- if (!value) {
- const error = Error('Parameter value is mandatory.')
- error.statusCode = 400
- next(error)
- }
- try {
- const configPair = new Config({ key, value, description })
- await configPair.save()
- res.json(configPair)
- } catch (error) {
- error.statusCode = 400
- next(error)
- }
- })
- config.get('/:key?', async (req, res) => {
- const { key } = req.params
- const config = key ? await Config.findOne({ key }) : await Config.find().select({ key: 1, value: 1, description: 1 })
- res.json({ config })
- })
- config.put('/:key', async (req, res) => {
- const { key } = req.params
- const { value, description } = req.body
- if (!value) {
- const error = Error('Parameter value is mandatory.')
- error.statusCode = 400
- next(error)
- }
- const config = await Config.findOneAndUpdate({ key }, { value, description })
- if (!config) {
- const error = Error('Key not found.')
- error.statusCode = 404
- next(error)
- }
- res.json({...config, value, description})
- })
- config.delete('/:key', async (req, res, next) => {
- const { key } = req.params
- const deleted = await Config.findOneAndRemove({ key })
- if (deleted) {
- res.json({ key })
- } else {
- const error = Error('Key not found.')
- error.statusCode = 404
- next(error)
- }
- })
- export async function listConfigs () {
- return await Config.find()
- }
- export default config
|