github.com/kaleido-io/firefly@v0.0.0-20210622132723-8b4b6aacb971/kat/src/routers/settings.ts (about)

     1  // Copyright © 2021 Kaleido, Inc.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  import { Router } from 'express';
    16  import * as settings from '../lib/settings';
    17  import RequestError from '../lib/request-handlers';
    18  
    19  const router = Router();
    20  
    21  router.get('/', async (_req, res, next) => {
    22    try {
    23      res.send(settings.settings);
    24    } catch (err) {
    25      next(err);
    26    }
    27  });
    28  
    29  router.put('/', async (req, res, next) => {
    30    try {
    31      if (req.body.key === undefined || req.body.value === undefined) {
    32        throw new RequestError('Invalid setting key/value', 400);
    33      }
    34      await settings.updateSettings(req.body.key, req.body.value);
    35      res.send({ status: 'success' });
    36    } catch (err) {
    37      next(err);
    38    }
    39  });
    40  
    41  export default router;