aboutsummaryrefslogtreecommitdiffstats
path: root/src/app.coffee
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2014-08-08 11:33:43 -0700
committerAdam Soltys <[email protected]>2014-08-08 11:33:43 -0700
commit2cc86381a6f79cd729048b34a72b70562a7b0ace (patch)
treec42dda997719ce544a4dea2bf15937d293ebfd59 /src/app.coffee
parent3082e274b70a93fdac8a9a63934252ed914fe406 (diff)
parent6d5c3a56067b96bb5d97cca4a80bacbf78395b2c (diff)
downloadcoinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.tar.gz
coinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.zip
Merge branch 'code_reorg'
Diffstat (limited to 'src/app.coffee')
-rw-r--r--src/app.coffee69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/app.coffee b/src/app.coffee
new file mode 100644
index 00000000..538dfa05
--- /dev/null
+++ b/src/app.coffee
@@ -0,0 +1,69 @@
+express = require('express')
+bodyParser = require('body-parser')
+cookieParser = require('cookie-parser')
+path = require('path')
+passport = require('./passport')
+config = require('./config')
+
+calculator = require("./routes/calculator")
+sessions = require("./routes/sessions")(passport)
+transactions = require("./routes/transactions")
+users = require("./routes/users")(sessions)
+
+session = require('express-session')
+RedisStore = require('connect-redis')(session)
+sessionStore = new RedisStore(require('./redis').host, ttl: 172800)
+
+
+app = express()
+app.enable('trust proxy')
+app.engine('html', require('hogan-express'))
+app.set('view engine', 'html')
+app.set('views', __dirname + '/views')
+app.use(express.static(__dirname + '/public'))
+app.use(bodyParser.urlencoded({ extended: true}))
+app.use(bodyParser.json())
+app.use(bodyParser.json({ type: 'application/vnd.api+json' }))
+app.use(cookieParser(config.secret))
+app.use(session(resave: true, saveUninitialized: true, secret: config.secret, store: sessionStore, cookie: { maxAge: 1209600000 }, key: 'vanbtc.sid'))
+app.use(passport.initialize())
+app.use(passport.session())
+
+authorize = (req, res, next) ->
+ if req.params.user is req.user?.username or
+ req.user?.username is 'admin'
+ return next()
+ res.redirect('/login')
+
+app.get('/', sessions.new)
+app.get('/register', users.new)
+app.get('/ticker', calculator.ticker)
+app.get('/sweep', calculator.sweep)
+
+app.get('/login', sessions.new)
+app.post('/login', sessions.create)
+app.get('/logout', sessions.destroy)
+
+app.get('/users/new', users.new)
+app.post('/users', users.create)
+
+app.get('/:user/edit', authorize, users.edit)
+app.post('/:user', authorize, users.update)
+
+app.get('/:user/transactions.json', authorize, transactions.json)
+app.post('/:user/transactions', authorize, transactions.create)
+app.get('/:user/report', authorize, transactions.index)
+
+app.get('/:user.json', authorize, users.json)
+app.get('/:user', authorize, users.show)
+
+app.use(require('connect-assets')(src: 'public', servePath: '/'))
+
+app.use((err, req, res, next) ->
+ res.status(500)
+ res.send('An error occurred');
+ console.error(err.stack)
+ res.end()
+)
+
+app.listen(3000)