// Generated by CoffeeScript 1.3.3 var ONE_YEAR, app, customMiddleware, derby, express, expressApp, gzippo, http, path, publicPath, racer, root, server, serverError, store, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; http = require('http'); path = require('path'); express = require('express'); gzippo = require('gzippo'); derby = require('derby'); app = require('../app'); serverError = require('./serverError'); racer = require('derby/node_modules/racer'); racer.set('transports', ['xhr-polling']); expressApp = express(); server = http.createServer(expressApp); module.exports = server; derby.use(derby.logPlugin); derby.use(require('racer-db-mongo')); store = derby.createStore({ db: { type: 'Mongo', uri: process.env.NODE_DB_URI }, listen: server }); require('./queries')(store); ONE_YEAR = 1000 * 60 * 60 * 24 * 365; root = path.dirname(path.dirname(__dirname)); publicPath = path.join(root, 'public'); customMiddleware = function(req, res, next) { var acceptableUid, model, uidParam, _i, _results; model = req.getModel(); model.set('_mobileDevice', /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header('User-Agent'))); uidParam = req.url.split('/')[1]; acceptableUid = require('Guid').isGuid(uidParam) || (__indexOf.call((function() { _results = []; for (_i = 0; _i <= 40; _i++){ _results.push(_i); } return _results; }).apply(this), uidParam) >= 0); if (acceptableUid && model.session.userId !== uidParam) { model.fetch("users." + uidParam, function(err, user) { console.log({ uidParam: uidParam, split: req.url.split('/'), err: err, user: user }); if (!user.get('id')) { model.set('_userId', uidParam); return model.session.userId = uidParam; } }); } return next(); }; expressApp.use(express.favicon()).use(gzippo.staticGzip(publicPath, { maxAge: ONE_YEAR })).use(express.compress()).use(express.cookieParser()).use(store.sessionMiddleware({ secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE', cookie: { maxAge: ONE_YEAR } })).use(store.modelMiddleware()).use(customMiddleware).use(app.router()).use(expressApp.router).use(serverError(root)); expressApp.all('*', function(req) { throw "404: " + req.url; });