66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
// @flow
|
|
import bodyParser from 'koa-bodyparser';
|
|
import Koa from 'koa';
|
|
import Router from 'koa-router';
|
|
|
|
import auth from './auth';
|
|
import events from './events';
|
|
import users from './users';
|
|
import collections from './collections';
|
|
import documents from './documents';
|
|
import views from './views';
|
|
import hooks from './hooks';
|
|
import apiKeys from './apiKeys';
|
|
import shares from './shares';
|
|
import groups from './groups';
|
|
import team from './team';
|
|
import integrations from './integrations';
|
|
import notificationSettings from './notificationSettings';
|
|
import utils from './utils';
|
|
import attachments from './attachments';
|
|
|
|
import { NotFoundError } from '../errors';
|
|
import errorHandling from '../middlewares/errorHandling';
|
|
import validation from '../middlewares/validation';
|
|
import methodOverride from '../middlewares/methodOverride';
|
|
import cache from './middlewares/cache';
|
|
import apiWrapper from './middlewares/apiWrapper';
|
|
|
|
const api = new Koa();
|
|
const router = new Router();
|
|
|
|
// middlewares
|
|
api.use(errorHandling());
|
|
api.use(bodyParser());
|
|
api.use(methodOverride());
|
|
api.use(cache());
|
|
api.use(validation());
|
|
api.use(apiWrapper());
|
|
|
|
// routes
|
|
router.use('/', auth.routes());
|
|
router.use('/', events.routes());
|
|
router.use('/', users.routes());
|
|
router.use('/', collections.routes());
|
|
router.use('/', documents.routes());
|
|
router.use('/', views.routes());
|
|
router.use('/', hooks.routes());
|
|
router.use('/', apiKeys.routes());
|
|
router.use('/', shares.routes());
|
|
router.use('/', team.routes());
|
|
router.use('/', integrations.routes());
|
|
router.use('/', notificationSettings.routes());
|
|
router.use('/', attachments.routes());
|
|
router.use('/', utils.routes());
|
|
router.use('/', groups.routes());
|
|
|
|
router.post('*', ctx => {
|
|
ctx.throw(new NotFoundError('Endpoint not found'));
|
|
});
|
|
|
|
// Router is embedded in a Koa application wrapper, because koa-router does not
|
|
// allow middleware to catch any routes which were not explicitly defined.
|
|
api.use(router.routes());
|
|
|
|
export default api;
|