X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fuser-notifications.ts;h=4a7577d32ec6ad5bd25a103b22b3112be26fa779;hb=5d2fd66ab4a75281dab6363ba9131adee7be3a2b;hp=8202f307e5ebfee4170137dc052fd8e9338bf472;hpb=cef534ed53e4518fe0acf581bfe880788d42fc36;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/user-notifications.ts b/server/middlewares/validators/user-notifications.ts index 8202f307e..4a7577d32 100644 --- a/server/middlewares/validators/user-notifications.ts +++ b/server/middlewares/validators/user-notifications.ts @@ -1,20 +1,50 @@ -import * as express from 'express' -import 'express-validator' -import { body } from 'express-validator/check' -import { logger } from '../../helpers/logger' -import { areValidationErrors } from './utils' +import express from 'express' +import { body, query } from 'express-validator' +import { isNotEmptyIntArray, toBooleanOrNull } from '../../helpers/custom-validators/misc' import { isUserNotificationSettingValid } from '../../helpers/custom-validators/user-notifications' -import { isIntArray } from '../../helpers/custom-validators/misc' +import { logger } from '../../helpers/logger' +import { areValidationErrors } from './shared' + +const listUserNotificationsValidator = [ + query('unread') + .optional() + .customSanitizer(toBooleanOrNull) + .isBoolean().withMessage('Should have a valid unread boolean'), + + (req: express.Request, res: express.Response, next: express.NextFunction) => { + logger.debug('Checking listUserNotificationsValidator parameters', { parameters: req.query }) + + if (areValidationErrors(req, res)) return + + return next() + } +] const updateNotificationSettingsValidator = [ body('newVideoFromSubscription') .custom(isUserNotificationSettingValid).withMessage('Should have a valid new video from subscription notification setting'), body('newCommentOnMyVideo') .custom(isUserNotificationSettingValid).withMessage('Should have a valid new comment on my video notification setting'), - body('videoAbuseAsModerator') - .custom(isUserNotificationSettingValid).withMessage('Should have a valid new video abuse as moderator notification setting'), + body('abuseAsModerator') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid abuse as moderator notification setting'), + body('videoAutoBlacklistAsModerator') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid video auto blacklist notification setting'), body('blacklistOnMyVideo') .custom(isUserNotificationSettingValid).withMessage('Should have a valid new blacklist on my video notification setting'), + body('myVideoImportFinished') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid video import finished video notification setting'), + body('myVideoPublished') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid video published notification setting'), + body('commentMention') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid comment mention notification setting'), + body('newFollow') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid new follow notification setting'), + body('newUserRegistration') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid new user registration notification setting'), + body('newInstanceFollower') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid new instance follower notification setting'), + body('autoInstanceFollowing') + .custom(isUserNotificationSettingValid).withMessage('Should have a valid new instance following notification setting'), (req: express.Request, res: express.Response, next: express.NextFunction) => { logger.debug('Checking updateNotificationSettingsValidator parameters', { parameters: req.body }) @@ -27,7 +57,8 @@ const updateNotificationSettingsValidator = [ const markAsReadUserNotificationsValidator = [ body('ids') - .custom(isIntArray).withMessage('Should have a valid notification ids to mark as read'), + .optional() + .custom(isNotEmptyIntArray).withMessage('Should have a valid notification ids to mark as read'), (req: express.Request, res: express.Response, next: express.NextFunction) => { logger.debug('Checking markAsReadUserNotificationsValidator parameters', { parameters: req.body }) @@ -41,6 +72,7 @@ const markAsReadUserNotificationsValidator = [ // --------------------------------------------------------------------------- export { + listUserNotificationsValidator, updateNotificationSettingsValidator, markAsReadUserNotificationsValidator }