backend: Refactor middleware imports for consistency and clarity
This commit is contained in:
parent
9ccda10c6e
commit
79afa0cd03
@ -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';
|
||||||
|
|||||||
@ -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('.'),
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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
|
|
||||||
);
|
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user