UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

175 lines (131 loc) 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupApp = setupApp; var _koa = _interopRequireDefault(require("koa")); var _koaRoute = _interopRequireDefault(require("koa-route")); var _kcors = _interopRequireDefault(require("kcors")); var _koaBodyparser = _interopRequireDefault(require("koa-bodyparser")); var authentication = _interopRequireWildcard(require("./api/authentication")); var users = _interopRequireWildcard(require("./api/users")); var clients = _interopRequireWildcard(require("./api/clients")); var roles = _interopRequireWildcard(require("./api/roles")); var transactions = _interopRequireWildcard(require("./api/transactions")); var channels = _interopRequireWildcard(require("./api/channels")); var tasks = _interopRequireWildcard(require("./api/tasks")); var contactGroups = _interopRequireWildcard(require("./api/contactGroups")); var events = _interopRequireWildcard(require("./api/events")); var mediators = _interopRequireWildcard(require("./api/mediators")); var metrics = _interopRequireWildcard(require("./api/metrics")); var keystore = _interopRequireWildcard(require("./api/keystore")); var serverRestart = _interopRequireWildcard(require("./api/restart")); var audits = _interopRequireWildcard(require("./api/audits")); var _config = require("./config"); var heartbeat = _interopRequireWildcard(require("./api/heartbeat")); var certificateAuthority = _interopRequireWildcard(require("./api/certificateAuthority")); var logs = _interopRequireWildcard(require("./api/logs")); var metadata = _interopRequireWildcard(require("./api/metadata")); var visualizers = _interopRequireWildcard(require("./api/visualizers")); var about = _interopRequireWildcard(require("./api/about")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function setupApp(done) { // Create an instance of the koa-server and add a body-parser const app = new _koa.default(); app.use((0, _kcors.default)({ allowMethods: 'GET,HEAD,PUT,POST,DELETE' })); const limitMB = _config.config.api.maxPayloadSizeMB || 16; app.use((0, _koaBodyparser.default)({ jsonLimit: limitMB * 1024 * 1024 })); // Expose uptime server stats route before the auth middleware so that it is publicly accessible app.use(_koaRoute.default.get('/heartbeat', heartbeat.getHeartbeat)); // Expose the set-user-password route before the auth middleware so that it is publicly accessible app.use(_koaRoute.default.get('/password-reset-request/:email', users.userPasswordResetRequest)); app.use(_koaRoute.default.get('/token/:token', users.getUserByToken)); app.use(_koaRoute.default.put('/token/:token', users.updateUserByToken)); // Expose the authenticate route before the auth middleware so that it is publicly accessible app.use(_koaRoute.default.get('/authenticate/:username', users.authenticate)); // Authenticate the API request app.use(authentication.authenticate); // Define the api routes app.use(_koaRoute.default.get('/users', users.getUsers)); app.use(_koaRoute.default.get('/users/:email', users.getUser)); app.use(_koaRoute.default.post('/users', users.addUser)); app.use(_koaRoute.default.put('/users/:email', users.updateUser)); app.use(_koaRoute.default.delete('/users/:email', users.removeUser)); app.use(_koaRoute.default.get('/clients', clients.getClients)); app.use(_koaRoute.default.get('/clients/:clientId', clients.getClient)); app.use(_koaRoute.default.post('/clients', clients.addClient)); app.use(_koaRoute.default.get('/clients/domain/:clientDomain', clients.findClientByDomain)); app.use(_koaRoute.default.put('/clients/:clientId', clients.updateClient)); app.use(_koaRoute.default.delete('/clients/:clientId', clients.removeClient)); app.use(_koaRoute.default.get('/clients/:clientId/:property', clients.getClient)); app.use(_koaRoute.default.get('/roles', roles.getRoles)); app.use(_koaRoute.default.post('/roles', roles.addRole)); app.use(_koaRoute.default.get('/roles/:name', roles.getRole)); app.use(_koaRoute.default.put('/roles/:name', roles.updateRole)); app.use(_koaRoute.default.delete('/roles/:name', roles.deleteRole)); app.use(_koaRoute.default.get('/transactions', transactions.getTransactions)); app.use(_koaRoute.default.post('/transactions', transactions.addTransaction)); app.use(_koaRoute.default.get('/transactions/:transactionId', transactions.getTransactionById)); app.use(_koaRoute.default.get('/transactions/clients/:clientId', transactions.findTransactionByClientId)); app.use(_koaRoute.default.put('/transactions/:transactionId', transactions.updateTransaction)); app.use(_koaRoute.default.delete('/transactions/:transactionId', transactions.removeTransaction)); app.use(_koaRoute.default.get('/groups', contactGroups.getContactGroups)); app.use(_koaRoute.default.get('/groups/:contactGroupId', contactGroups.getContactGroup)); app.use(_koaRoute.default.post('/groups', contactGroups.addContactGroup)); app.use(_koaRoute.default.put('/groups/:contactGroupId', contactGroups.updateContactGroup)); app.use(_koaRoute.default.delete('/groups/:contactGroupId', contactGroups.removeContactGroup)); app.use(_koaRoute.default.get('/channels', channels.getChannels)); app.use(_koaRoute.default.post('/channels', channels.addChannel)); app.use(_koaRoute.default.get('/channels/:channelId', channels.getChannel)); app.use(_koaRoute.default.get('/channels/:channelId/audits', channels.getChannelAudits)); app.use(_koaRoute.default.post('/channels/:channelId/trigger', channels.triggerChannel)); app.use(_koaRoute.default.put('/channels/:channelId', channels.updateChannel)); app.use(_koaRoute.default.delete('/channels/:channelId', channels.removeChannel)); app.use(_koaRoute.default.get('/tasks', tasks.getTasks)); app.use(_koaRoute.default.post('/tasks', tasks.addTask)); app.use(_koaRoute.default.get('/tasks/:taskId', tasks.getTask)); app.use(_koaRoute.default.put('/tasks/:taskId', tasks.updateTask)); app.use(_koaRoute.default.delete('/tasks/:taskId', tasks.removeTask)); app.use(_koaRoute.default.get('/metrics', ctx => metrics.getMetrics(ctx, false))); app.use(_koaRoute.default.get('/metrics/channels', ctx => metrics.getMetrics(ctx, true))); app.use(_koaRoute.default.get('/metrics/channels/:channelID', (ctx, channelID) => metrics.getMetrics(ctx, true, null, channelID))); app.use(_koaRoute.default.get('/metrics/timeseries/:timeSeries', (ctx, timeseries) => metrics.getMetrics(ctx, false, timeseries))); app.use(_koaRoute.default.get('/metrics/timeseries/:timeSeries/channels', (ctx, timeseries) => metrics.getMetrics(ctx, true, timeseries))); app.use(_koaRoute.default.get('/metrics/timeseries/:timeSeries/channels/:channelID', (ctx, timeseries, channelID) => metrics.getMetrics(ctx, true, timeseries, channelID))); app.use(_koaRoute.default.get('/mediators', mediators.getAllMediators)); app.use(_koaRoute.default.get('/mediators/:uuid', mediators.getMediator)); app.use(_koaRoute.default.post('/mediators', mediators.addMediator)); app.use(_koaRoute.default.delete('/mediators/:urn', mediators.removeMediator)); app.use(_koaRoute.default.post('/mediators/:urn/heartbeat', mediators.heartbeat)); app.use(_koaRoute.default.put('/mediators/:urn/config', mediators.setConfig)); app.use(_koaRoute.default.post('/mediators/:urn/channels', mediators.loadDefaultChannels)); app.use(_koaRoute.default.get('/keystore/cert', keystore.getServerCert)); app.use(_koaRoute.default.post('/keystore/cert', keystore.setServerCert)); app.use(_koaRoute.default.get('/keystore/ca', keystore.getCACerts)); app.use(_koaRoute.default.get('/keystore/ca/:certId', keystore.getCACert)); app.use(_koaRoute.default.delete('/keystore/ca/:certId', keystore.removeCACert)); app.use(_koaRoute.default.post('/keystore/key', keystore.setServerKey)); app.use(_koaRoute.default.post('/keystore/ca/cert', keystore.addTrustedCert)); app.use(_koaRoute.default.get('/keystore/validity', keystore.verifyServerKeys)); app.use(_koaRoute.default.post('/keystore/passphrase', keystore.setServerPassphrase)); // Metadata endpoints app.use(_koaRoute.default.get('/metadata', metadata.getMetadata)); app.use(_koaRoute.default.post('/metadata/validate', metadata.validateMetadata)); app.use(_koaRoute.default.post('/metadata', metadata.importMetadata)); // Server restart endpoint app.use(_koaRoute.default.post('/restart', serverRestart.restart)); // AuditRecord endpoint app.use(_koaRoute.default.post('/audits', audits.addAudit)); app.use(_koaRoute.default.get('/audits', audits.getAudits)); app.use(_koaRoute.default.get('/audits/:auditId', audits.getAuditById)); app.use(_koaRoute.default.get('/audits-filter-options', audits.getAuditsFilterOptions)); // Ceritficates endpoint app.use(_koaRoute.default.post('/certificates', certificateAuthority.generateCert)); // Logs endpoint app.use(_koaRoute.default.get('/logs', logs.getLogs)); // Events endpoint app.use(_koaRoute.default.get('/events/:receivedTime', events.getLatestEvents)); // Version endpoint app.use(_koaRoute.default.get('/about', about.getAboutInformation)); // Visualizer endpoint app.use(_koaRoute.default.get('/visualizers', visualizers.getVisualizers)); app.use(_koaRoute.default.get('/visualizers/:visualizerId', visualizers.getVisualizer)); app.use(_koaRoute.default.post('/visualizers', visualizers.addVisualizer)); app.use(_koaRoute.default.put('/visualizers/:visualizerId', visualizers.updateVisualizer)); app.use(_koaRoute.default.delete('/visualizers/:visualizerId', visualizers.removeVisualizer)); // Return the result return done(app); } //# sourceMappingURL=koaApi.js.map