X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fuser-notifications.ts;h=8d70dcdd29a83ec3b2e617aab4e0ee55cba410bf;hb=cb0eda5602a21d1626a7face32de6153ed07b5f9;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..8d70dcdd2 100644 --- a/server/middlewares/validators/user-notifications.ts +++ b/server/middlewares/validators/user-notifications.ts @@ -1,24 +1,49 @@ -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 { 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) => { + if (areValidationErrors(req, res)) return + + return next() + } +] const updateNotificationSettingsValidator = [ body('newVideoFromSubscription') - .custom(isUserNotificationSettingValid).withMessage('Should have a valid new video from subscription notification setting'), + .custom(isUserNotificationSettingValid), 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'), + .custom(isUserNotificationSettingValid), + body('abuseAsModerator') + .custom(isUserNotificationSettingValid), + body('videoAutoBlacklistAsModerator') + .custom(isUserNotificationSettingValid), body('blacklistOnMyVideo') - .custom(isUserNotificationSettingValid).withMessage('Should have a valid new blacklist on my video notification setting'), + .custom(isUserNotificationSettingValid), + body('myVideoImportFinished') + .custom(isUserNotificationSettingValid), + body('myVideoPublished') + .custom(isUserNotificationSettingValid), + body('commentMention') + .custom(isUserNotificationSettingValid), + body('newFollow') + .custom(isUserNotificationSettingValid), + body('newUserRegistration') + .custom(isUserNotificationSettingValid), + body('newInstanceFollower') + .custom(isUserNotificationSettingValid), + body('autoInstanceFollowing') + .custom(isUserNotificationSettingValid), (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking updateNotificationSettingsValidator parameters', { parameters: req.body }) - if (areValidationErrors(req, res)) return return next() @@ -27,11 +52,10 @@ 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 array of notification ids'), (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking markAsReadUserNotificationsValidator parameters', { parameters: req.body }) - if (areValidationErrors(req, res)) return return next() @@ -41,6 +65,7 @@ const markAsReadUserNotificationsValidator = [ // --------------------------------------------------------------------------- export { + listUserNotificationsValidator, updateNotificationSettingsValidator, markAsReadUserNotificationsValidator }