meedan/check-bot

View on GitHub
server.js

Summary

Maintainability
A
0 mins
Test Coverage
const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const util = require('util');

const app = express();
const port = process.env.SERVER_PORT || 8585;
const functions = ['index', 'buttons', 'google-image-search', 'slash', 'slash-response'];

function generateCallback(response) {
  const callback = function(value, resp) {
    console.log('Callback: ' + util.inspect(value));
    if (resp) {
      response.send(resp);
    }
  };
  return callback;
}

app.use(express.json());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

functions.forEach(function(name) {
  app.post('/' + name, function(request, response){
    const lambda = require('./' + name).handler;
    const data = request.body;
    const headers = request.headers;
    if (headers['x-slack-retry-num'] && headers['x-slack-retry-reason'] === 'http_timeout') {
      // Ignore
    }
    else {
      console.log(util.inspect(headers, true, 7, true));
      console.log(util.inspect(data, true, 7, true));
      lambda({ body: data, headers }, { source: 'local' }, generateCallback(response));
      console.log('--------------------------------------------------------------------------------------');
    }
  });
});

console.log('Starting server on port ' + port);
app.listen(port);