openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
162 lines (132 loc) • 7.47 kB
JavaScript
var Q, about, audits, authentication, bodyParser, certificateAuthority, channels, clients, config, contactGroups, cors, events, heartbeat, keystore, koa, logs, mediators, metadata, metrics, roles, route, router, serverRestart, tasks, transactions, users, visualizers;
koa = require('koa');
route = require('koa-route');
cors = require('koa-cors');
router = require('./middleware/router');
bodyParser = require('koa-body-parser');
authentication = require('./api/authentication');
users = require('./api/users');
clients = require('./api/clients');
roles = require('./api/roles');
transactions = require('./api/transactions');
channels = require('./api/channels');
tasks = require('./api/tasks');
contactGroups = require('./api/contactGroups');
events = require('./api/events');
Q = require('q');
mediators = require('./api/mediators');
metrics = require('./api/metrics');
keystore = require('./api/keystore');
serverRestart = require('./api/restart');
audits = require('./api/audits');
config = require('./config/config');
heartbeat = require('./api/heartbeat');
certificateAuthority = require('./api/certificateAuthority');
logs = require('./api/logs');
metadata = require('./api/metadata');
visualizers = require('./api/visualizers');
about = require('./api/about');
exports.setupApp = function(done) {
var app;
app = koa();
app.use(cors());
app.use(bodyParser());
app.use(route.get('/heartbeat', heartbeat.getHeartbeat));
app.use(route.get('/password-reset-request/:email', users.userPasswordResetRequest));
app.use(route.get('/token/:token', users.getUserByToken));
app.use(route.put('/token/:token', users.updateUserByToken));
app.use(route.get('/authenticate/:username', users.authenticate));
app.use(authentication.authenticate);
app.use(route.get('/users', users.getUsers));
app.use(route.get('/users/:email', users.getUser));
app.use(route.post('/users', users.addUser));
app.use(route.put('/users/:email', users.updateUser));
app.use(route["delete"]('/users/:email', users.removeUser));
app.use(route.get('/clients', clients.getClients));
app.use(route.get('/clients/:clientId', clients.getClient));
app.use(route.post('/clients', clients.addClient));
app.use(route.get('/clients/domain/:clientDomain', clients.findClientByDomain));
app.use(route.put('/clients/:clientId', clients.updateClient));
app.use(route["delete"]('/clients/:clientId', clients.removeClient));
app.use(route.get('/clients/:clientId/:property', clients.getClient));
app.use(route.get('/roles', roles.getRoles));
app.use(route.post('/roles', roles.addRole));
app.use(route.get('/roles/:name', roles.getRole));
app.use(route.put('/roles/:name', roles.updateRole));
app.use(route["delete"]('/roles/:name', roles.deleteRole));
app.use(route.get('/transactions', transactions.getTransactions));
app.use(route.post('/transactions', transactions.addTransaction));
app.use(route.get('/transactions/:transactionId', transactions.getTransactionById));
app.use(route.get('/transactions/clients/:clientId', transactions.findTransactionByClientId));
app.use(route.put('/transactions/:transactionId', transactions.updateTransaction));
app.use(route["delete"]('/transactions/:transactionId', transactions.removeTransaction));
app.use(route.get('/groups', contactGroups.getContactGroups));
app.use(route.get('/groups/:contactGroupId', contactGroups.getContactGroup));
app.use(route.post('/groups', contactGroups.addContactGroup));
app.use(route.put('/groups/:contactGroupId', contactGroups.updateContactGroup));
app.use(route["delete"]('/groups/:contactGroupId', contactGroups.removeContactGroup));
app.use(route.get('/channels', channels.getChannels));
app.use(route.post('/channels', channels.addChannel));
app.use(route.get('/channels/:channelId', channels.getChannel));
app.use(route.post('/channels/:channelId/trigger', channels.triggerChannel));
app.use(route.put('/channels/:channelId', channels.updateChannel));
app.use(route["delete"]('/channels/:channelId', channels.removeChannel));
app.use(route.get('/tasks', tasks.getTasks));
app.use(route.post('/tasks', tasks.addTask));
app.use(route.get('/tasks/:taskId', tasks.getTask));
app.use(route.put('/tasks/:taskId', tasks.updateTask));
app.use(route["delete"]('/tasks/:taskId', tasks.removeTask));
app.use(route.get('/metrics', function() {
return metrics.getMetrics.call(this, false);
}));
app.use(route.get('/metrics/channels', function() {
return metrics.getMetrics.call(this, true);
}));
app.use(route.get('/metrics/channels/:channelID', function(channelID) {
return metrics.getMetrics.call(this, true, null, channelID);
}));
app.use(route.get('/metrics/timeseries/:timeSeries', function(timeSeries) {
return metrics.getMetrics.call(this, false, timeSeries);
}));
app.use(route.get('/metrics/timeseries/:timeSeries/channels', function(timeSeries) {
return metrics.getMetrics.call(this, true, timeSeries);
}));
app.use(route.get('/metrics/timeseries/:timeSeries/channels/:channelID', function(timeSeries, channelID) {
return metrics.getMetrics.call(this, true, timeSeries, channelID);
}));
app.use(route.get('/mediators', mediators.getAllMediators));
app.use(route.get('/mediators/:uuid', mediators.getMediator));
app.use(route.post('/mediators', mediators.addMediator));
app.use(route["delete"]('/mediators/:urn', mediators.removeMediator));
app.use(route.post('/mediators/:urn/heartbeat', mediators.heartbeat));
app.use(route.put('/mediators/:urn/config', mediators.setConfig));
app.use(route.post('/mediators/:urn/channels', mediators.loadDefaultChannels));
app.use(route.get('/keystore/cert', keystore.getServerCert));
app.use(route.post('/keystore/cert', keystore.setServerCert));
app.use(route.get('/keystore/ca', keystore.getCACerts));
app.use(route.get('/keystore/ca/:certId', keystore.getCACert));
app.use(route["delete"]('/keystore/ca/:certId', keystore.removeCACert));
app.use(route.post('/keystore/key', keystore.setServerKey));
app.use(route.post('/keystore/ca/cert', keystore.addTrustedCert));
app.use(route.get('/keystore/validity', keystore.verifyServerKeys));
app.use(route.post('/keystore/passphrase', keystore.setServerPassphrase));
app.use(route.get('/metadata', metadata.getMetadata));
app.use(route.post('/metadata/validate', metadata.validateMetadata));
app.use(route.post('/metadata', metadata.importMetadata));
app.use(route.post('/restart', serverRestart.restart));
app.use(route.post('/audits', audits.addAudit));
app.use(route.get('/audits', audits.getAudits));
app.use(route.get('/audits/:auditId', audits.getAuditById));
app.use(route.get('/audits-filter-options', audits.getAuditsFilterOptions));
app.use(route.post('/certificates', certificateAuthority.generateCert));
app.use(route.get('/logs', logs.getLogs));
app.use(route.get('/events/:receivedTime', events.getLatestEvents));
app.use(route.get('/about', about.getAboutInformation));
app.use(route.get('/visualizers', visualizers.getVisualizers));
app.use(route.get('/visualizers/:visualizerId', visualizers.getVisualizer));
app.use(route.post('/visualizers', visualizers.addVisualizer));
app.use(route.put('/visualizers/:visualizerId', visualizers.updateVisualizer));
app.use(route["delete"]('/visualizers/:visualizerId', visualizers.removeVisualizer));
return done(app);
};
//# sourceMappingURL=koaApi.js.map