|
1 | | -const express = require('express'); |
| 1 | +const express = require('express') |
2 | 2 |
|
3 | | -const controllers = require('../controllers'); |
| 3 | +const { blogpost } = require('../controllers') |
4 | 4 |
|
5 | | -const router = express.Router(); |
6 | | -const { |
7 | | - auth, |
8 | | - home, |
9 | | - publication, |
10 | | -} = controllers; |
| 5 | +const router = express.Router() |
11 | 6 |
|
12 | | -/** |
13 | | - * Handles controller execution and responds to user (API version). |
14 | | - * This way controllers are not attached to the API. |
15 | | - * Web socket has a similar handler implementation. |
16 | | - * @param promise Controller Promise. |
17 | | - * @param params (req) => [params, ...]. |
18 | | - */ |
19 | | -const controllerHandler = (promise, params) => async (req, res, next) => { |
20 | | - const boundParams = params ? params(req, res, next) : []; |
21 | | - try { |
22 | | - const result = await promise(...boundParams); |
23 | | - return res.json(result || { message: 'OK' }); |
24 | | - } catch (error) { |
25 | | - return res.status(500) && next(error); |
26 | | - } |
27 | | -}; |
28 | | -const c = controllerHandler; |
| 7 | +router.post('/blogpost', blogpost.postBlogpost) |
29 | 8 |
|
30 | | -/** |
31 | | - * Auth. |
32 | | - */ |
33 | | -router.post('/signin', c(auth.signin, (req, res, next) => [req, res, next])); |
34 | | -router.post('/signup', c(auth.signup, (req, res, next) => [req, res, next])); |
35 | | - |
36 | | -/** |
37 | | - * Home. |
38 | | - */ |
39 | | -router.get('/', c(home.hello)); |
40 | | -router.get('/greet/:name', c(home.getGreeting, req => [req.params.name])); |
41 | | -router.post('/greet/', c(home.postGreeting, req => [req.body.name])); |
42 | | - |
43 | | -/** |
44 | | - * Publications. |
45 | | - */ |
46 | | -router.get('/publications', c(publication.getPublications)); |
47 | | -router.post('/publications', c(publication.postPublication, req => [req.user, req.body.content])); |
48 | | - |
49 | | -/** |
50 | | - * Error-handler. |
51 | | - */ |
52 | | -router.use((err, req, res, _next) => { |
53 | | - // Expected errors always throw ServerError. |
54 | | - // Unexpected errors will either throw unexpected stuff or crash the application. |
55 | | - if (Object.prototype.isPrototypeOf.call(ServerError.prototype, err)) { |
56 | | - return res.status(err.status || 500).json({ error: err.message }); |
57 | | - } |
58 | | - |
59 | | - log.error('~~~ Unexpected error exception start ~~~'); |
60 | | - log.error(req); |
61 | | - log.error(err); |
62 | | - log.error('~~~ Unexpected error exception end ~~~'); |
63 | | - |
64 | | - |
65 | | - return res.status(500).json({ error: '⁽ƈ ͡ (ुŏ̥̥̥̥םŏ̥̥̥̥) ु' }); |
66 | | -}); |
67 | | - |
68 | | -module.exports = router; |
| 9 | +module.exports = router |
0 commit comments