openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
123 lines (97 loc) • 5.88 kB
JavaScript
var Q, audits, authentication, bodyParser, certificateAuthority, channels, clients, config, contactGroups, cors, heartbeat, keystore, koa, mediators, metrics, route, router, serverRestart, statsd, tasks, transactions, users, visualizer;
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');
transactions = require('./api/transactions');
channels = require('./api/channels');
tasks = require('./api/tasks');
contactGroups = require('./api/contactGroups');
visualizer = require('./api/visualizer');
Q = require('q');
mediators = require('./api/mediators');
metrics = require('./api/metrics');
keystore = require('./api/keystore');
serverRestart = require('./api/restart');
audits = require('./api/audits');
statsd = require('./api/statsd');
config = require('./config/config');
heartbeat = require('./api/heartbeat');
certificateAuthority = require('./api/certificateAuthority');
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('/new-user/:token', users.getNewUser));
app.use(route.put('/new-user/:token', users.updateNewUser));
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('/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.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('/visualizer/events/:receivedTime', visualizer.getLatestEvents));
app.use(route.get('/visualizer/sync', visualizer.sync));
app.use(route.get('/metrics', config.statsd.enabled ? statsd.retrieveTransactionCountPerHour : metrics.getGlobalLoadTimeMetrics));
app.use(route.get('/metrics/status', config.statsd.enabled ? statsd.fetchGlobalStatusMetrics : metrics.getGlobalStatusMetrics));
app.use(route.get('/metrics/:type/:channelId', config.statsd.enabled ? statsd.retrieveChannelMetrics : metrics.getChannelMetrics));
app.use(route.get('/metrics/load-time', config.statsd.enabled ? statsd.retrieveAverageLoadTimePerHour : metrics.getGlobalLoadTimeMetrics));
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.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.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));
return done(app);
};
//# sourceMappingURL=koaApi.js.map