index.js
1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
const MODULE_NAME = 'APISERVER';
const express = require('express');
const config = require('komodo-sdk/config');
const logger = require('komodo-sdk/logger');
const validApikey = require('./valid-apikey');
const middlewareCommon = require('../middlewares/common');
const routerMatrix = require('./routers/matrix');
const app = express();
app.use((req, res, next) => {
res.locals.httpgetx_subsystem = MODULE_NAME;
next();
});
const apikeyChecker = (req, res, next) => {
if (validApikey(req.params.apikey)) {
next();
} else {
res.status(403).end('Invalid APIKEY');
}
};
app.use(middlewareCommon);
app.use('/apikey/:apikey', apikeyChecker);
app.use('/apikey/:apikey/matrix', routerMatrix);
app.use((req, res) => {
const { xid } = res.locals;
res.status(404).end(`KOMODO-HTTP-GET-X CENTER (APISERVER).\n404: Method not found.\n\nXID: ${xid}.\n`);
});
const listenPort = config.listener && config.listener.apiserver && config.listener.apiserver.port;
if (
listenPort
&& config.listener && config.listener.apiserver && config.listener.apiserver.apikey
) {
app.listen(listenPort, () => {
logger.info(`${MODULE_NAME} FAEE1E47: Listening`, { port: listenPort });
});
} else {
logger.info(`${MODULE_NAME}: Disabled because of missing configuration`);
}