/** */ var OKTemplate = require('../../../app/node_modules/oktemplate') var passport = require('passport') var apn = require('./apn') var db = require('./db') passport.use(new DigestStrategy({qop: 'auth'}, function authenticate(username, done) { if (!process.env.OK_USER || !process.env.OK_PASS) { return done(new Error('No user or pass configured on server')) } else { return done(null, process.env.OK_USER, process.env.OK_PASS) } })) function OKPush (options) { if (!(this instanceof OKPush)) return new OKPush(options) options = options || {} if (!options.express) throw new Error('Express not provided to OKPush') if (!options.config) throw new Error('Configuration not provided to OKPush') if (!options.config.notifications) throw new Error('Notifications not defined in OKPush') var express = options.express var router = express.Router() var config = options.config var meta = options.meta var error = options.errorHandler // var okcms_db = options.db var templateProvider = this._templateProvider = new OKTemplate({ root: path.join(__dirname, './templates'), debug: meta.debug }) var templates = {} templates['index'] = templateProvider.getTemplate('index') apn.init() db.init() router.use('/admin/', passport.initialize()) router.all('/admin/(:path*)?', passport.authenticate('digest', { session: false })) // pass in admin middleware! router.get('/admin/', function (req, res) { var data = { meta: meta, notifications: config.notifications, } templates['index'].render(data).then(function(rendered) { res.send(rendered); }).fail(error(req, res, 500)) }) router.post('/send', function (req, res) { // add a key }) // should work without middleware router.post('/add', function (req, res) { // add a key }) this._router = router } OKExample.prototype.middleware = function () { return this._router } module.exports = OKExample