diff options
| author | Adam Soltys <[email protected]> | 2014-08-08 11:33:43 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2014-08-08 11:33:43 -0700 |
| commit | 2cc86381a6f79cd729048b34a72b70562a7b0ace (patch) | |
| tree | c42dda997719ce544a4dea2bf15937d293ebfd59 /src/app.coffee | |
| parent | 3082e274b70a93fdac8a9a63934252ed914fe406 (diff) | |
| parent | 6d5c3a56067b96bb5d97cca4a80bacbf78395b2c (diff) | |
| download | coinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.tar.gz coinos-server-2cc86381a6f79cd729048b34a72b70562a7b0ace.zip | |
Merge branch 'code_reorg'
Diffstat (limited to 'src/app.coffee')
| -rw-r--r-- | src/app.coffee | 69 |
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) |
