main.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const express = require('express');
  2. const pjson = require('../../package.json');
  3. const error = require('../../lib/error');
  4. const internalNginx = require('../../internal/nginx');
  5. let router = express.Router({
  6. caseSensitive: true,
  7. strict: true,
  8. mergeParams: true
  9. });
  10. /**
  11. * Health Check
  12. * GET /api
  13. */
  14. router.get('/', (req, res/*, next*/) => {
  15. let version = pjson.version.split('-').shift().split('.');
  16. res.status(200).send({
  17. status: 'OK',
  18. version: {
  19. major: parseInt(version.shift(), 10),
  20. minor: parseInt(version.shift(), 10),
  21. revision: parseInt(version.shift(), 10)
  22. }
  23. });
  24. });
  25. router.use('/schema', require('./schema'));
  26. router.use('/tokens', require('./tokens'));
  27. router.use('/users', require('./users'));
  28. router.use('/audit-log', require('./audit-log'));
  29. router.use('/reports', require('./reports'));
  30. router.use('/settings', require('./settings'));
  31. router.use('/nginx/proxy-hosts', require('./nginx/proxy_hosts'));
  32. router.use('/nginx/redirection-hosts', require('./nginx/redirection_hosts'));
  33. router.use('/nginx/dead-hosts', require('./nginx/dead_hosts'));
  34. router.use('/nginx/ssl-passthrough-hosts', require('./nginx/ssl_passthrough_hosts'));
  35. router.use('/nginx/streams', require('./nginx/streams'));
  36. router.use('/nginx/access-lists', require('./nginx/access_lists'));
  37. router.use('/nginx/certificates', require('./nginx/certificates'));
  38. router.get('/ssl-passthrough-enabled', (req, res/*, next*/) => {
  39. res.status(200).send({
  40. status: 'OK',
  41. ssl_passthrough_enabled: internalNginx.sslPassthroughEnabled()
  42. });
  43. });
  44. /**
  45. * API 404 for all other routes
  46. *
  47. * ALL /api/*
  48. */
  49. router.all(/(.+)/, function (req, res, next) {
  50. req.params.page = req.params['0'];
  51. next(new error.ItemNotFoundError(req.params.page));
  52. });
  53. module.exports = router;