summaryrefslogtreecommitdiff
path: root/bucky/app/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'bucky/app/index.js')
-rw-r--r--bucky/app/index.js124
1 files changed, 37 insertions, 87 deletions
diff --git a/bucky/app/index.js b/bucky/app/index.js
index e8e8cbc..efdaf02 100644
--- a/bucky/app/index.js
+++ b/bucky/app/index.js
@@ -1,91 +1,41 @@
-require('dotenv').load();
-var fs = require('fs')
-var app, express = require('express');
-var http = require('http');
-var https = require('https');
-var bodyParser = require('body-parser')
-var cookieParser = require('cookie-parser')
-var csurf = require('csurf')
-var path = require('path')
-var multiparty = require('multiparty')
-var ejs = require('ejs')
-var favicon = require('serve-favicon')
-var passport = require('passport')
-var sessionstore = require('sessionstore')
-var session = require('express-session')
-var MongoStore = require('connect-mongo')(session);
-var upload = require('../util/upload')
+var api = require('./api')
-var app, server
+var apis = {}
-var federate = require('../util/federate')
-var auth = require('../util/auth.js')
-var middleware = require('../util/middleware.js')
-var api = require('./api.js')
-var pages = require('./pages.js')
-
-var site = module.exports = {}
-site.init = function(){
- app = express()
- app.enable('trust proxy');
- app.set('port', process.env.PORT || 5000)
- app.use(favicon(__dirname + '../../../public/favicon.ico'))
- app.use(bodyParser.json({limit: '50mb'}))
- app.use(cookieParser())
- app.use(session({
- secret: 'argonauts',
- proxy: true,
- key: 'bucky.sid',
- cookie: {
- secure: process.env.NODE_ENV === 'production',
- domain: '.' + process.env.HOST_NAME,
- maxAge: 43200000000,
- },
- store: new MongoStore({
- url: 'mongodb://localhost/buckySessionDb'
-// type: 'mongodb',
-// host: 'localhost',
-// port: 27017,
-// dbName: 'buckySessionDb',
-// collectionName: 'sessions',
-// timeout: 10000,
- }),
- resave: true,
- saveUninitialized: false,
- }))
-
- upload.init()
- // federate.route(app)
-
-// app.use(csurf({
-// cookie: true,
-// value: (req) => { req.headers['csrf-token'] }
-// }))
- app.disable('x-powered-by')
-
- auth.init()
- app.use(express.query())
- app.use(passport.initialize())
- app.use(passport.session())
-
- server = http.createServer(app).listen(process.env.PORT || 5000, function () {
- console.log('Bucky listening at http://' + process.env.HOST_NAME + ':%s', server.address().port)
- })
-
- app.all('*', middleware.ensureLocals)
-
- api.route(app)
- pages.route(app)
- auth.route(app)
+var xpress = {
+ get: () => { this.match('get', arguments) },
+ post: () => { this.match('post', arguments) },
+ put: () => { this.match('put', arguments) },
+ delete: () => { this.match('delete', arguments) },
+ match: (type, args) => {
+ var uri = args[0]
+ var cbs = args.slice(1)
+ apis[type] = apis[type] || {}
+ apis[type][uri] = cbs
+ },
+}
- app.set('view engine', 'ejs')
- app.set('views', path.join(__dirname, '../../views'))
- app.use(express.static(path.join(__dirname, '../../public')))
-
- // rebuild javascript after restarting server
- if (process.env.NODE_ENV === 'production') {
- require('../bin/build-scripts')
- }
+var router = module.exports = {
+ get: (uri) => { router.match('get', uri) },
+ put: (uri) => { router.match('put', uri) },
+ post: (uri) => { router.match('post', uri) },
+ delete: (uri) => { router.match('delete', uri) },
+ match: (type, uri) => {
+ return (req, res, next) => {
+ var fns = apis[type][uri]
+ req.isAuthenticated = () => true
+ res.json = (data) => { next && next(data) }
+ var promises = fns.map(fn => {
+ return new Promise((resolve, reject) => {
+ newRes = { ...res }
+ fn(req, newRes, () => {
+ res = newRes
+ resolve(req, res)
+ })
+ })
+ })
+ return Promise.all(promises)
+ }
+ },
}
-site.api = require('./api')
-site.pages = require('./pages')
+