/// <reference path="../../typings/tsd.d.ts" />
var Express = require('express');
var DFiles = require('./Files');
var Dollyjs;
(function (Dollyjs) {
/**
* @class Miidleware
* Set up the middleware settings
*/
var Middleware = (function () {
/**
* @constructs Middleware
* @param app
* @param bodyParser
* @param cookieParser
* @param sessionParser
*/
function Middleware(app, bodyParser, cookieParser, sessionParser, passport, passportHttp, dollyPref) {
this._APP = app;
this.setConfigurarion(bodyParser, cookieParser, sessionParser, passport, passportHttp, dollyPref);
}
Object.defineProperty(Middleware.prototype, "APP", {
/**
* @returns {any}
*/
get: function () {
return this._APP;
},
/**
* @param value
*/
set: function (value) {
this._APP = value;
},
enumerable: true,
configurable: true
});
/**
* Configure the middleware
* @param bodyParser
* @param cookieParser
* @param sessionParser
* @private
*/
Middleware.prototype.setConfigurarion = function (bodyParser, cookieParser, sessionParser, passport, passportHttp, dollyPref) {
this._APP.use(bodyParser.urlencoded({ extended: true }));
this._APP.use(bodyParser.json());
this._APP.use(cookieParser());
this._APP.use(sessionParser({
secret: dollyPref.sessionSecret,
resave: false,
saveUninitialized: false,
cookie: { secure: false }
}));
// Setup passport
this._APP.use(passport.initialize());
this._APP.use(passport.session());
// ensure Authenticated
var ensureAuthenticatedCallback = function (req, res, next) {
if (req.isAuthenticated()) {
next();
}
else {
res.send(403);
}
};
var passportSerializeSetup = function (user, done) {
done(null, user.id);
};
passport.serializeUser(passportSerializeSetup);
var passportDesirializeSetup = function (id, done) {
done(null, { id: id });
};
passport.deserializeUser(passportDesirializeSetup);
var passportHttpBasicCallback = function (username, password, done) {
dollyPref.userAuth(username, password, done);
};
passport.use(new passportHttp.BasicStrategy(passportHttpBasicCallback));
dollyPref.loadMiddleware(this._APP);
this._APP.use("/", Express.static((DFiles.Files.pathFiles()).publicFolder));
this._APP.use("/bower_components", Express.static((DFiles.Files.pathFiles()).assetsFolder));
this._APP.set('views', (DFiles.Files.pathFiles()).viewFolder);
this._APP.set('view engine', dollyPref.viewEngine);
this._APP.get('/', function (req, res) {
res.render(dollyPref.defaultViewFile);
});
};
return Middleware;
})();
Dollyjs.Middleware = Middleware;
})(Dollyjs || (Dollyjs = {}));
module.exports = Dollyjs;
//# sourceMappingURL=Middleware.js.map