1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | const bodyParser = require('body-parser');
|
7 | const processIncomingBlueprint = require('./controller');
|
8 | const registerMiddlewareRunner = require('./executeRoute');
|
9 | const { Router } = require('express');
|
10 |
|
11 | type subrequestsOptions = {
|
12 | host?: string,
|
13 | protocol?: string,
|
14 | };
|
15 |
|
16 | module.exports = (routePath?: string, options: subrequestsOptions = {}, app: *): express$Router => {
|
17 | registerMiddlewareRunner(app);
|
18 | const router = new Router();
|
19 |
|
20 | router.use(bodyParser.text({ type: '*/*' }));
|
21 |
|
22 |
|
23 |
|
24 |
|
25 | router.route(routePath || '/subrequests')
|
26 | .all((req: $Subtype<express$Request>, res: express$Response, next: express$NextFunction) => {
|
27 | req.subrequestsOptions = Object.assign({}, options, req.subrequestsOptions);
|
28 | next();
|
29 | })
|
30 | .post((req: $Subtype<express$Request>, res: express$Response) =>
|
31 | processIncomingBlueprint(req.body, req, res))
|
32 | .get((req: $Subtype<express$Request>, res: express$Response) =>
|
33 | processIncomingBlueprint(req.query.query, req, res));
|
34 |
|
35 | return router;
|
36 | };
|