Compare View
Commits (3)
Changes
Showing 4 changed files Side-by-side Diff
.gitignore
api-server/index.js
... | ... | @@ -0,0 +1,41 @@ |
1 | +"use strict"; | |
2 | + | |
3 | +/** | |
4 | + * API Server | |
5 | + * | |
6 | + * @todo make it work | |
7 | + */ | |
8 | + | |
9 | +const express = require('express'); | |
10 | + | |
11 | +const config = require('../config'); | |
12 | +const logger = require('../logger'); | |
13 | +const matrix = require('../matrix'); | |
14 | +const routerConfig = require('./router-config'); | |
15 | + | |
16 | +const app = express(); | |
17 | + | |
18 | +function isConfigured() { | |
19 | + return Boolean(config && config.apiserver && config.apiserver.apikey && config.apiserver.port); | |
20 | +} | |
21 | + | |
22 | +function isValidApiKey(apikey) { | |
23 | + return isConfigured() && (config.apiserver.apikey === apikey); | |
24 | +} | |
25 | + | |
26 | +function needValidApikey(req, res, next) { | |
27 | + if (isValidApikey(req.params.apikey)) { | |
28 | + next(); | |
29 | + } | |
30 | + else { | |
31 | + res.end('INVALID_APIKEY'); | |
32 | + } | |
33 | +} | |
34 | + | |
35 | +isConfigured() && app.listen(config.push_server.advice.port, function () { | |
36 | + logger.info('API-SERVER listening', {port: config.push_server.advice.port}); | |
37 | +}); | |
38 | + | |
39 | + | |
40 | +app.use('/apikey/:apikey', needValidApikey); | |
41 | +app.use('/apikey/:apikey/config', routerConfig); |
api-server/router-config.js
... | ... | @@ -0,0 +1,23 @@ |
1 | +"use strict"; | |
2 | + | |
3 | +const express = require('express'); | |
4 | + | |
5 | +const config = require('../config'); | |
6 | +const logger = require('../logger'); | |
7 | +const matrix = require('../matrix'); | |
8 | + | |
9 | +const router = express.Router(); | |
10 | +module.exports = router; | |
11 | + | |
12 | +function getJsonConfig(req, res, next) { | |
13 | + res.json(config); | |
14 | +} | |
15 | + | |
16 | +function getConfigElement(req, res, next) { | |
17 | + const paths = req.path.split('.'); | |
18 | + res.json(paths); | |
19 | +} | |
20 | + | |
21 | +router.get('/', getJsonConfig); | |
22 | +router.post('/', getJsonConfig); | |
23 | +router.use('/get', getConfigElement); |