| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- const express = require('express');
- const validator = require('../../lib/validator');
- const jwtdecode = require('../../lib/express/jwt-decode');
- const internalSetting = require('../../internal/setting');
- const apiValidator = require('../../lib/validator/api');
- let router = express.Router({
- caseSensitive: true,
- strict: true,
- mergeParams: true
- });
- /**
- * /api/settings
- */
- router
- .route('/')
- .options((req, res) => {
- res.sendStatus(204);
- })
- .all(jwtdecode())
- /**
- * GET /api/settings
- *
- * Retrieve all settings
- */
- .get((req, res, next) => {
- internalSetting.getAll(res.locals.access)
- .then((rows) => {
- res.status(200)
- .send(rows);
- })
- .catch(next);
- });
- /**
- * Specific setting
- *
- * /api/settings/something
- */
- router
- .route('/:setting_id')
- .options((req, res) => {
- res.sendStatus(204);
- })
- .all(jwtdecode())
- /**
- * GET /settings/something
- *
- * Retrieve a specific setting
- */
- .get((req, res, next) => {
- validator({
- required: ['setting_id'],
- additionalProperties: false,
- properties: {
- setting_id: {
- $ref: 'definitions#/definitions/setting_id'
- }
- }
- }, {
- setting_id: req.params.setting_id
- })
- .then((data) => {
- return internalSetting.get(res.locals.access, {
- id: data.setting_id
- });
- })
- .then((row) => {
- res.status(200)
- .send(row);
- })
- .catch(next);
- })
- /**
- * PUT /api/settings/something
- *
- * Update and existing setting
- */
- .put((req, res, next) => {
- apiValidator({$ref: 'endpoints/settings#/links/1/schema'}, req.body)
- .then((payload) => {
- payload.id = req.params.setting_id;
- return internalSetting.update(res.locals.access, payload);
- })
- .then((result) => {
- res.status(200)
- .send(result);
- })
- .catch(next);
- });
- module.exports = router;
|