backend: Refactor middleware imports for consistency and clarity

This commit is contained in:
juancarmore 2025-04-12 12:58:23 +02:00
parent 9ccda10c6e
commit 79afa0cd03
6 changed files with 10 additions and 36 deletions

View File

@ -3,6 +3,8 @@ export * from './room.middleware.js';
export * from './participant.middleware.js'; export * from './participant.middleware.js';
export * from './recording.middleware.js'; export * from './recording.middleware.js';
export * from './content-type.middleware.js'; export * from './content-type.middleware.js';
export * from './request-validators/auth-validator.middleware.js';
export * from './request-validators/participant-validator.middleware.js'; export * from './request-validators/participant-validator.middleware.js';
export * from './request-validators/preferences-validator.middleware.js';
export * from './request-validators/room-validator.middleware.js'; export * from './request-validators/room-validator.middleware.js';
export * from './request-validators/recording-validator.middleware.js'; export * from './request-validators/recording-validator.middleware.js';

View File

@ -8,10 +8,6 @@ const ParticipantTokenRequestSchema: z.ZodType<TokenOptions> = z.object({
secret: z.string().nonempty('Secret is required') secret: z.string().nonempty('Secret is required')
}); });
const DeleteParticipantSchema = z.object({
roomId: z.string().trim().min(1, 'Room ID is required')
});
export const validateParticipantTokenRequest = (req: Request, res: Response, next: NextFunction) => { export const validateParticipantTokenRequest = (req: Request, res: Response, next: NextFunction) => {
const { success, error, data } = ParticipantTokenRequestSchema.safeParse(req.body); const { success, error, data } = ParticipantTokenRequestSchema.safeParse(req.body);
@ -23,17 +19,6 @@ export const validateParticipantTokenRequest = (req: Request, res: Response, nex
next(); next();
}; };
export const validateParticipantDeletionRequest = (req: Request, res: Response, next: NextFunction) => {
const { success, error, data } = DeleteParticipantSchema.safeParse(req.query);
if (!success) {
return rejectRequest(res, error);
}
req.query = data!;
next();
};
const rejectRequest = (res: Response, error: z.ZodError) => { const rejectRequest = (res: Response, error: z.ZodError) => {
const errors = error.errors.map((error) => ({ const errors = error.errors.map((error) => ({
field: error.path.join('.'), field: error.path.join('.'),

View File

@ -1,8 +1,7 @@
import { Router } from 'express'; import { Router } from 'express';
import bodyParser from 'body-parser'; import bodyParser from 'body-parser';
import * as authCtrl from '../controllers/auth.controller.js'; import * as authCtrl from '../controllers/auth.controller.js';
import { loginLimiter, tokenAndRoleValidator, withAuth } from '../middlewares/auth.middleware.js'; import { validateLoginRequest, loginLimiter, tokenAndRoleValidator, withAuth } from '../middlewares/index.js';
import { validateLoginRequest } from '../middlewares/request-validators/auth-validator.middleware.js';
import { UserRole } from '@typings-ce'; import { UserRole } from '@typings-ce';
export const authRouter = Router(); export const authRouter = Router();

View File

@ -3,12 +3,13 @@ import bodyParser from 'body-parser';
import * as appearancePrefCtrl from '../controllers/global-preferences/appearance-preferences.controller.js'; import * as appearancePrefCtrl from '../controllers/global-preferences/appearance-preferences.controller.js';
import * as webhookPrefCtrl from '../controllers/global-preferences/webhook-preferences.controller.js'; import * as webhookPrefCtrl from '../controllers/global-preferences/webhook-preferences.controller.js';
import * as securityPrefCtrl from '../controllers/global-preferences/security-preferences.controller.js'; import * as securityPrefCtrl from '../controllers/global-preferences/security-preferences.controller.js';
import { withAuth, tokenAndRoleValidator } from '../middlewares/auth.middleware.js';
import { UserRole } from '@typings-ce';
import { import {
validateSecurityPreferences, validateSecurityPreferences,
validateWebhookPreferences validateWebhookPreferences,
} from '../middlewares/request-validators/preferences-validator.middleware.js'; withAuth,
tokenAndRoleValidator
} from '../middlewares/index.js';
import { UserRole } from '@typings-ce';
export const preferencesRouter = Router(); export const preferencesRouter = Router();
preferencesRouter.use(bodyParser.urlencoded({ extended: true })); preferencesRouter.use(bodyParser.urlencoded({ extended: true }));
@ -46,4 +47,4 @@ preferencesRouter.get(
'/appearance', '/appearance',
withAuth(tokenAndRoleValidator(UserRole.ADMIN)), withAuth(tokenAndRoleValidator(UserRole.ADMIN)),
appearancePrefCtrl.getAppearancePreferences appearancePrefCtrl.getAppearancePreferences
); );

View File

@ -1,12 +1,7 @@
import { Router } from 'express'; import { Router } from 'express';
import bodyParser from 'body-parser'; import bodyParser from 'body-parser';
import * as participantCtrl from '../controllers/participant.controller.js'; import * as participantCtrl from '../controllers/participant.controller.js';
import { import { validateParticipantTokenRequest, configureTokenAuth } from '../middlewares/index.js';
validateParticipantDeletionRequest,
validateParticipantTokenRequest
} from '../middlewares/request-validators/participant-validator.middleware.js';
import { configureTokenAuth, withModeratorPermissions } from '../middlewares/participant.middleware.js';
import { participantTokenValidator, withAuth } from '../middlewares/auth.middleware.js';
export const internalParticipantRouter = Router(); export const internalParticipantRouter = Router();
internalParticipantRouter.use(bodyParser.urlencoded({ extended: true })); internalParticipantRouter.use(bodyParser.urlencoded({ extended: true }));
@ -25,10 +20,3 @@ internalParticipantRouter.post(
configureTokenAuth, configureTokenAuth,
participantCtrl.refreshParticipantToken participantCtrl.refreshParticipantToken
); );
internalParticipantRouter.delete(
'/:participantName',
withAuth(participantTokenValidator),
validateParticipantDeletionRequest,
withModeratorPermissions,
participantCtrl.deleteParticipant
);

View File

@ -16,7 +16,6 @@ import {
withValidRoomId, withValidRoomId,
withValidRoomDeleteRequest withValidRoomDeleteRequest
} from '../middlewares/index.js'; } from '../middlewares/index.js';
import { UserRole } from '@typings-ce'; import { UserRole } from '@typings-ce';
export const roomRouter = Router(); export const roomRouter = Router();