const MODULE_NAME = 'APISERVER'; const express = require('express'); const config = require('komodo-sdk/config'); const logger = require('tektrans-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`); }