import express from 'express' ; import { removeComment } from '@server/lib/video-comment' ; import { bulkRemoveCommentsOfValidator } from '@server/middlewares/validators/bulk' ; import { VideoCommentModel } from '@server/models/video/video-comment' ; import { HttpStatusCode } from '@shared/models' ; import { BulkRemoveCommentsOfBody } from '@shared/models/bulk/bulk-remove-comments-of-body.model' ; import { asyncMiddleware , authenticate } from '../../middlewares' ; const bulkRouter = express . Router ( ) ; bulkRouter . post ( '/remove-comments-of' , authenticate , asyncMiddleware ( bulkRemoveCommentsOfValidator ) , asyncMiddleware ( bulkRemoveCommentsOf ) ) ; export { bulkRouter } ; async function bulkRemoveCommentsOf ( req , res ) { const account = res . locals . account ; const body = req . body as BulkRemoveCommentsOfBody ; const user = res . locals . oauth . token . User ; const filter = body . scope === 'my-videos' ? { onVideosOfAccount : user . Account } : { } ; const comments = await VideoCommentModel . listForBulkDelete ( account , filter ) ; res . status ( HttpStatusCode . NO_CONTENT_204 ) . end ( ) ; for ( const comment of comments ) { await removeComment ( comment , req , res ) ; } }