agusnavce
9/25/2018 - 3:14 PM

app.js

var express = require('express');
const morgan = require('morgan');
const cors = require('cors');
const bodyParser = require('body-parser');
const { documentClient } = require('./utils/aws');
const { DynamoDBCRI } = require('dynamodb-cri');

var employeeRouter = require('./routes/employee');
var customerRouter = require('./routes/customer');
var orderRouter = require('./routes/order');

var app = express();

// Configure Morgan
app.use(morgan('short'));

// App config
app.use(bodyParser.json({ limit: '50mb' }));

// Configure CORS
app.use(cors());
app.options('*', cors()); // include before other routes

// DynamoDBModel configuration
app.use((req, res, next) => {
  DynamoDBCRI.config({
    documentClient,
    tenant: req.get('tenant'),
    indexName: 'gsik',
    tableName: `dynamodb-cri`
  });
  next();
});

app.use('/customer', customerRouter);
app.use('/order', orderRouter);
app.use('/employee', employeeRouter);

// error handler
app.use(function(err, req, res, next) {
  console.log(err.stack);

  if (err.consoleMessage !== undefined) console.log(err.consoleMessage);

  res.status(400).json({
    message: err.message,
    name: err.name
  });
});

module.exports = app;