1 | cors = require 'cors'
|
2 | morgan = require 'morgan'
|
3 | MessageController = require './src/message-controller'
|
4 | express = require 'express'
|
5 | bodyParser = require 'body-parser'
|
6 | errorHandler = require 'errorhandler'
|
7 | meshbluHealthcheck = require 'express-meshblu-healthcheck'
|
8 | debug = (require 'debug')('octoblu-flow-canary:express')
|
9 | expressVersion = require 'express-package-version'
|
10 | compression = require 'compression'
|
11 | OctobluRaven = require 'octoblu-raven'
|
12 |
|
13 | cage = new MessageController
|
14 | PORT = process.env.PORT ? 80
|
15 | octobluRaven = new OctobluRaven
|
16 | octobluRaven.patchGlobal()
|
17 |
|
18 | app = express()
|
19 | app.use compression()
|
20 | app.use octobluRaven.express().handleErrors()
|
21 | app.use meshbluHealthcheck()
|
22 | app.use expressVersion(format: '{"version": "%s"}')
|
23 | app.use cors()
|
24 | skip = (request, response) =>
|
25 | return response.statusCode < 400
|
26 | app.use morgan 'dev', {immediate: false, skip}
|
27 | app.use errorHandler()
|
28 | app.use bodyParser.urlencoded limit: '50mb', extended : true
|
29 | app.use bodyParser.json limit : '50mb'
|
30 |
|
31 | app.post '/message', cage.postMessage
|
32 | app.get '/passing', cage.getPassing
|
33 | app.get '/stats', cage.getStats
|
34 |
|
35 | server = app.listen PORT, ->
|
36 | host = server.address().address
|
37 | port = server.address().port
|
38 |
|
39 | debug "Server running on #{host}:#{port}"
|
40 |
|
41 | process.on 'SIGTERM', =>
|
42 | console.log 'SIGTERM caught, exiting'
|
43 | process.exit 0
|