class MiddlewaresProvider { constructor({ constants, sessionService, profileService }) { this.constants = constants; this.sessionService = sessionService; this.profileService = profileService; } provide() { const AttachPublicKeyMiddlewareProvider = require('./attachPublicKeyMiddleware'); const attachPublicKeyMiddleware = new AttachPublicKeyMiddlewareProvider({ sessionService: this.sessionService, }).provide(); const CreateSessionMiddlewareProvider = require('./createSessionMiddleware'); const createSessionMiddleware = new CreateSessionMiddlewareProvider({ constants: this.constants, sessionService: this.sessionService, }).provide(); const RejectIfNotAuthorizedMiddleware = require('./rejectIfNotAuthorizedMiddleware'); const rejectIfNotAuthorizedMiddleware = new RejectIfNotAuthorizedMiddleware( { sessionService: this.sessionService, } ).provide(); const RedirectHomeIfAuthorized = require('./redirectHomeIfAuthorized'); const redirectHomeIfAuthorized = new RedirectHomeIfAuthorized({ sessionService: this.sessionService, }).provide(); const RedirectIfNotAuthorizedMiddleware = require('./redirectIfNotAuthorizedMiddleware'); const redirectIfNotAuthorizedMiddleware = new RedirectIfNotAuthorizedMiddleware({ sessionService: this.sessionService, }).provide(); const RedirectIfMissingProfileDetailsMiddleware = require('./redirectIfMissingProfileDetailsMiddleware'); const redirectIfMissingProfileDetailsMiddleware = new RedirectIfMissingProfileDetailsMiddleware({ profileService: this.profileService, }).provide(); return { redirectIfNotAuthorizedMiddleware, attachPublicKeyMiddleware, redirectIfMissingProfileDetailsMiddleware, redirectHomeIfAuthorized, rejectIfNotAuthorizedMiddleware, createSessionMiddleware, }; } } module.exports = MiddlewaresProvider;