openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
175 lines (131 loc) • 10.7 kB
JavaScript
;
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