import * as express from 'express'
import { body, param, query } from 'express-validator'
import {
+ areAbusePredefinedReasonsValid,
isAbuseFilterValid,
isAbuseMessageValid,
isAbuseModerationCommentValid,
- areAbusePredefinedReasonsValid,
isAbusePredefinedReasonValid,
isAbuseReasonValid,
isAbuseStateValid,
import { exists, isIdOrUUIDValid, isIdValid, toIntOrNull } from '@server/helpers/custom-validators/misc'
import { doesCommentIdExist } from '@server/helpers/custom-validators/video-comments'
import { logger } from '@server/helpers/logger'
-import { doesAbuseExist, doesAccountIdExist, doesVideoAbuseExist, doesVideoExist } from '@server/helpers/middlewares'
+import { doesAbuseExist, doesAccountIdExist, doesVideoExist } from '@server/helpers/middlewares'
import { AbuseMessageModel } from '@server/models/abuse/abuse-message'
import { AbuseCreate, UserRight } from '@shared/models'
import { areValidationErrors } from './utils'
const abuse = res.locals.abuse
if (abuse.ReporterAccount.isOwned() === false) {
return res.status(400).json({
- error: 'This abuse was created by a user of your instance.',
+ error: 'This abuse was created by a user of your instance.'
})
}
}
]
-// FIXME: deprecated in 2.3. Remove these validators
-
-const videoAbuseReportValidator = [
- param('videoId')
- .custom(isIdOrUUIDValid)
- .not()
- .isEmpty()
- .withMessage('Should have a valid videoId'),
- body('reason')
- .custom(isAbuseReasonValid)
- .withMessage('Should have a valid reason'),
- body('predefinedReasons')
- .optional()
- .custom(areAbusePredefinedReasonsValid)
- .withMessage('Should have a valid list of predefined reasons'),
- body('startAt')
- .optional()
- .customSanitizer(toIntOrNull)
- .custom(isAbuseTimestampValid)
- .withMessage('Should have valid starting time value'),
- body('endAt')
- .optional()
- .customSanitizer(toIntOrNull)
- .custom(isAbuseTimestampValid)
- .withMessage('Should have valid ending time value'),
-
- async (req: express.Request, res: express.Response, next: express.NextFunction) => {
- logger.debug('Checking videoAbuseReport parameters', { parameters: req.body })
-
- if (areValidationErrors(req, res)) return
- if (!await doesVideoExist(req.params.videoId, res)) return
-
- return next()
- }
-]
-
-const videoAbuseGetValidator = [
- param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid videoId'),
- param('id').custom(isIdValid).not().isEmpty().withMessage('Should have a valid id'),
-
- async (req: express.Request, res: express.Response, next: express.NextFunction) => {
- logger.debug('Checking videoAbuseGetValidator parameters', { parameters: req.body })
-
- if (areValidationErrors(req, res)) return
- if (!await doesVideoAbuseExist(req.params.id, req.params.videoId, res)) return
-
- return next()
- }
-]
-
-const videoAbuseUpdateValidator = [
- param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid videoId'),
- param('id').custom(isIdValid).not().isEmpty().withMessage('Should have a valid id'),
- body('state')
- .optional()
- .custom(isAbuseStateValid).withMessage('Should have a valid video abuse state'),
- body('moderationComment')
- .optional()
- .custom(isAbuseModerationCommentValid).withMessage('Should have a valid video moderation comment'),
-
- async (req: express.Request, res: express.Response, next: express.NextFunction) => {
- logger.debug('Checking videoAbuseUpdateValidator parameters', { parameters: req.body })
-
- if (areValidationErrors(req, res)) return
- if (!await doesVideoAbuseExist(req.params.id, req.params.videoId, res)) return
-
- return next()
- }
-]
-
-const videoAbuseListValidator = [
- query('id')
- .optional()
- .custom(isIdValid).withMessage('Should have a valid id'),
- query('predefinedReason')
- .optional()
- .custom(isAbusePredefinedReasonValid)
- .withMessage('Should have a valid predefinedReason'),
- query('search')
- .optional()
- .custom(exists).withMessage('Should have a valid search'),
- query('state')
- .optional()
- .custom(isAbuseStateValid).withMessage('Should have a valid video abuse state'),
- query('videoIs')
- .optional()
- .custom(isAbuseVideoIsValid).withMessage('Should have a valid "video is" attribute'),
- query('searchReporter')
- .optional()
- .custom(exists).withMessage('Should have a valid reporter search'),
- query('searchReportee')
- .optional()
- .custom(exists).withMessage('Should have a valid reportee search'),
- query('searchVideo')
- .optional()
- .custom(exists).withMessage('Should have a valid video search'),
- query('searchVideoChannel')
- .optional()
- .custom(exists).withMessage('Should have a valid video channel search'),
-
- (req: express.Request, res: express.Response, next: express.NextFunction) => {
- logger.debug('Checking videoAbuseListValidator parameters', { parameters: req.body })
-
- if (areValidationErrors(req, res)) return
-
- return next()
- }
-]
-
// ---------------------------------------------------------------------------
export {
abuseUpdateValidator,
deleteAbuseMessageValidator,
abuseListForUserValidator,
- getAbuseValidator,
- videoAbuseReportValidator,
- videoAbuseGetValidator,
- videoAbuseUpdateValidator,
- videoAbuseListValidator
+ getAbuseValidator
}