Blame view

lib/http-command-server/index.js 1.15 KB
56758af44   Adhidarma Hadiwinoto   http-command-serv...
1
2
3
4
5
6
  'use strict';
  
  const express = require('express');
  
  const config = require('komodo-sdk/config');
  const logger = require('komodo-sdk/logger');
3ec3e9eb3   Adhidarma Hadiwinoto   HTTP command serv...
7
  const routerInfo = require('./router-info');
56758af44   Adhidarma Hadiwinoto   http-command-serv...
8
  const routerSMS = require('./router-sms');
c5ce14d55   Adhidarma Hadiwinoto   Uji coba ussd
9
  const routerUSSD = require('./router-ussd');
56758af44   Adhidarma Hadiwinoto   http-command-serv...
10
11
12
13
  
  const app = express();
  
  function middlewareCustomLog(req, res, next) {
26921e0c2   Adhidarma Hadiwinoto   404 on favicon re...
14
15
16
17
      if (req.url.indexOf('/favicon.ico') === 0) {
          res.sendStatus(404);
          return;
      }
56758af44   Adhidarma Hadiwinoto   http-command-serv...
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
      logger.info('Incoming request on HTTP command server', { ip: req.ip, url: req.url });
      next();
  }
  
  function middlewareCheckApikey(req, res, next) {
      if (!req.query.apikey || (req.query.apikey !== config.http_command_server.apikey)) {
          res.json({
              status: 'NOT-OK',
              error: 'INVALID_APIKEY',
              message: 'Invalid apikey',
          });
      } else {
          next();
      }
  }
  
  app.use(middlewareCustomLog);
  app.use(middlewareCheckApikey);
3ec3e9eb3   Adhidarma Hadiwinoto   HTTP command serv...
36
37
  
  app.use('/info', routerInfo);
56758af44   Adhidarma Hadiwinoto   http-command-serv...
38
  app.use('/sms', routerSMS);
c5ce14d55   Adhidarma Hadiwinoto   Uji coba ussd
39
  app.use('/ussd', routerUSSD);
56758af44   Adhidarma Hadiwinoto   http-command-serv...
40
41
42
43
  
  app.listen(config.http_command_server.listen_port, () => {
      logger.info(`HTTP command server listeing on port ${config.http_command_server.listen_port}`);
  });