1 | cors = require 'cors'
|
2 | morgan = require 'morgan'
|
3 | CanaryMessageController = require './src/canary-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 |
|
10 | cage = new CanaryMessageController
|
11 | PORT = process.env.PORT ? 80
|
12 |
|
13 | app = express()
|
14 | app.use meshbluHealthcheck()
|
15 | app.use cors()
|
16 | app.use morgan 'dev'
|
17 | app.use errorHandler()
|
18 | app.use bodyParser.urlencoded limit: '50mb', extended : true
|
19 | app.use bodyParser.json limit : '50mb'
|
20 |
|
21 | app.post '/message', cage.postMessage
|
22 | app.get '/passing', cage.getPassing
|
23 | app.get '/stats', cage.getStats
|
24 |
|
25 | startServer = (callback=->) =>
|
26 | server = app.listen PORT, ->
|
27 | host = server.address().address
|
28 | port = server.address().port
|
29 | debug "Server running on #{host}:#{port}"
|
30 | callback()
|
31 |
|
32 | cage.canary.startAllFlows =>
|
33 | startServer =>
|
34 | cage.canary.postTriggers()
|
35 |
|
36 | process.on 'SIGTERM', =>
|
37 | console.log 'SIGTERM caught, exiting'
|
38 | process.exit 0
|