Source: config/Middleware.js

/// <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