1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.createRouter = undefined;
|
7 |
|
8 | var _bodyParser = require('body-parser');
|
9 |
|
10 | var _bodyParser2 = _interopRequireDefault(_bodyParser);
|
11 |
|
12 | var _express = require('express');
|
13 |
|
14 | var _log = require('./log');
|
15 |
|
16 | var _log2 = _interopRequireDefault(_log);
|
17 |
|
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19 |
|
20 | function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
21 |
|
22 | const jsonParser = _bodyParser2.default.json();
|
23 |
|
24 | const createRouter = exports.createRouter = (handlers, context) => {
|
25 | (0, _log2.default)('create router with handlers: %s', Object.keys(handlers).join(', '));
|
26 |
|
27 | const router = new _express.Router();
|
28 |
|
29 | router.use(jsonParser);
|
30 |
|
31 | if (handlers.enable) {
|
32 | router.post('/enable', (req, res) => {
|
33 | handlers.enable(req.body || {}, context);
|
34 | res.sendStatus(200);
|
35 | });
|
36 | }
|
37 |
|
38 | if (handlers.disable) {
|
39 | router.post('/disable', (req, res) => {
|
40 | handlers.disable(req.body || {}, context);
|
41 | res.sendStatus(200);
|
42 | });
|
43 | }
|
44 |
|
45 | if (handlers.conversation_added) {
|
46 | router.post('/conversation_added', (req, res) => {
|
47 | handlers.conversation_added(req.body || {}, context);
|
48 | res.sendStatus(200);
|
49 | });
|
50 | }
|
51 |
|
52 | if (handlers.conversation_removed) {
|
53 | router.post('/conversation_removed', (req, res) => {
|
54 | handlers.conversation_removed(req.body || {}, context);
|
55 | res.sendStatus(200);
|
56 | });
|
57 | }
|
58 |
|
59 | if (handlers.edit_subscription) {
|
60 | router.post('/edit_subscription', (req, res) => {
|
61 | handlers.edit_subscription(req.body || {}, context);
|
62 | res.sendStatus(200);
|
63 | });
|
64 | }
|
65 |
|
66 | if (handlers.delete_subscription) {
|
67 | router.post('/delete_subscription', (req, res) => {
|
68 | handlers.delete_subscription(req.body || {}, context);
|
69 | res.sendStatus(200);
|
70 | });
|
71 | }
|
72 |
|
73 | if (handlers.post) {
|
74 | router.post('/post', (() => {
|
75 | var _ref = _asyncToGenerator(function* (req, res) {
|
76 | const params = req.body || {};
|
77 | if (!params.user_id) {
|
78 | return res.status(400).send('Missing user_id');
|
79 | }
|
80 | if (!params.data) {
|
81 | return res.status(400).send('Missing data');
|
82 | }
|
83 | if (!params.context) {
|
84 | return res.status(400).send('Missing context');
|
85 | }
|
86 | try {
|
87 | const postResult = handlers.post(params, context);
|
88 | const payload = postResult.then ? yield postResult : postResult;
|
89 | if (payload) {
|
90 | res.send(payload);
|
91 | } else {
|
92 | res.send({ success: true });
|
93 | }
|
94 | } catch (err) {
|
95 | (0, _log2.default)('error handling post request', params, err);
|
96 | res.sendStatus(500);
|
97 | }
|
98 | });
|
99 |
|
100 | return function (_x, _x2) {
|
101 | return _ref.apply(this, arguments);
|
102 | };
|
103 | })());
|
104 | }
|
105 |
|
106 | return router;
|
107 | }; |
\ | No newline at end of file |