all middlewares provider

This commit is contained in:
counterweight 2025-03-06 01:01:12 +01:00
parent 3623ff11cb
commit 1dca924b83
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
3 changed files with 59 additions and 41 deletions

View file

@ -3,12 +3,18 @@ const express = require('express');
function buildDependencies() {
const dependencies = {};
const middlewares = require('./middlewares');
dependencies.middlewares = middlewares;
const constants = require('./constants');
const services = require('./services');
const errors = require('./errors');
const MiddlewaresProvider = require('./middlewares');
const middlewares = new MiddlewaresProvider({
constants,
sessionService: services.sessionService,
profileService: services.profileService,
}).provide();
dependencies.middlewares = middlewares;
const WebRoutesProvider = require('./routes/webRoutes');
const webRoutesProvider = new WebRoutesProvider({
express,

View file

@ -1,5 +1,5 @@
class AttachPublicKeyMiddlewareProvider {
constructor(sessionService) {
constructor({ sessionService }) {
this.sessionService = sessionService;
}

View file

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