From 80fdaf064562aff968f4c9cea1cf220bc12a70da Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 7 May 2020 14:58:24 +0200 Subject: Add moderation helpers to plugins --- server/controllers/api/users/my-history.ts | 2 +- server/controllers/api/videos/abuse.ts | 2 +- server/controllers/api/videos/blacklist.ts | 60 +++++------------------------- server/controllers/api/videos/comment.ts | 2 +- server/controllers/api/videos/ownership.ts | 2 +- 5 files changed, 14 insertions(+), 54 deletions(-) (limited to 'server/controllers/api') diff --git a/server/controllers/api/users/my-history.ts b/server/controllers/api/users/my-history.ts index 4da1f3496..77a15e5fc 100644 --- a/server/controllers/api/users/my-history.ts +++ b/server/controllers/api/users/my-history.ts @@ -9,7 +9,7 @@ import { } from '../../../middlewares' import { getFormattedObjects } from '../../../helpers/utils' import { UserVideoHistoryModel } from '../../../models/account/user-video-history' -import { sequelizeTypescript } from '../../../initializers' +import { sequelizeTypescript } from '../../../initializers/database' const myVideosHistoryRouter = express.Router() diff --git a/server/controllers/api/videos/abuse.ts b/server/controllers/api/videos/abuse.ts index 3fe7f7e51..bce50aefb 100644 --- a/server/controllers/api/videos/abuse.ts +++ b/server/controllers/api/videos/abuse.ts @@ -2,7 +2,7 @@ import * as express from 'express' import { UserRight, VideoAbuseCreate, VideoAbuseState } from '../../../../shared' import { logger } from '../../../helpers/logger' import { getFormattedObjects } from '../../../helpers/utils' -import { sequelizeTypescript } from '../../../initializers' +import { sequelizeTypescript } from '../../../initializers/database' import { asyncMiddleware, asyncRetryTransactionMiddleware, diff --git a/server/controllers/api/videos/blacklist.ts b/server/controllers/api/videos/blacklist.ts index abd09387c..3b25ceea2 100644 --- a/server/controllers/api/videos/blacklist.ts +++ b/server/controllers/api/videos/blacklist.ts @@ -1,7 +1,9 @@ import * as express from 'express' -import { UserRight, VideoBlacklistCreate, VideoBlacklistType } from '../../../../shared' +import { blacklistVideo, unblacklistVideo } from '@server/lib/video-blacklist' +import { UserRight, VideoBlacklistCreate } from '../../../../shared' import { logger } from '../../../helpers/logger' import { getFormattedObjects } from '../../../helpers/utils' +import { sequelizeTypescript } from '../../../initializers/database' import { asyncMiddleware, authenticate, @@ -16,11 +18,6 @@ import { videosBlacklistUpdateValidator } from '../../../middlewares' import { VideoBlacklistModel } from '../../../models/video/video-blacklist' -import { sequelizeTypescript } from '../../../initializers' -import { Notifier } from '../../../lib/notifier' -import { sendDeleteVideo } from '../../../lib/activitypub/send' -import { federateVideoIfNeeded } from '../../../lib/activitypub/videos' -import { MVideoBlacklistVideo } from '@server/typings/models' const blacklistRouter = express.Router() @@ -28,7 +25,7 @@ blacklistRouter.post('/:videoId/blacklist', authenticate, ensureUserHasRight(UserRight.MANAGE_VIDEO_BLACKLIST), asyncMiddleware(videosBlacklistAddValidator), - asyncMiddleware(addVideoToBlacklist) + asyncMiddleware(addVideoToBlacklistController) ) blacklistRouter.get('/blacklist', @@ -64,29 +61,15 @@ export { // --------------------------------------------------------------------------- -async function addVideoToBlacklist (req: express.Request, res: express.Response) { +async function addVideoToBlacklistController (req: express.Request, res: express.Response) { const videoInstance = res.locals.videoAll const body: VideoBlacklistCreate = req.body - const toCreate = { - videoId: videoInstance.id, - unfederated: body.unfederate === true, - reason: body.reason, - type: VideoBlacklistType.MANUAL - } - - const blacklist: MVideoBlacklistVideo = await VideoBlacklistModel.create(toCreate) - blacklist.Video = videoInstance - - if (body.unfederate === true) { - await sendDeleteVideo(videoInstance, undefined) - } - - Notifier.Instance.notifyOnVideoBlacklist(blacklist) + await blacklistVideo(videoInstance, body) logger.info('Video %s blacklisted.', videoInstance.uuid) - return res.type('json').status(204).end() + return res.type('json').sendStatus(204) } async function updateVideoBlacklistController (req: express.Request, res: express.Response) { @@ -98,7 +81,7 @@ async function updateVideoBlacklistController (req: express.Request, res: expres return videoBlacklist.save({ transaction: t }) }) - return res.type('json').status(204).end() + return res.type('json').sendStatus(204) } async function listBlacklist (req: express.Request, res: express.Response) { @@ -117,32 +100,9 @@ async function removeVideoFromBlacklistController (req: express.Request, res: ex const videoBlacklist = res.locals.videoBlacklist const video = res.locals.videoAll - const videoBlacklistType = await sequelizeTypescript.transaction(async t => { - const unfederated = videoBlacklist.unfederated - const videoBlacklistType = videoBlacklist.type - - await videoBlacklist.destroy({ transaction: t }) - video.VideoBlacklist = undefined - - // Re federate the video - if (unfederated === true) { - await federateVideoIfNeeded(video, true, t) - } - - return videoBlacklistType - }) - - Notifier.Instance.notifyOnVideoUnblacklist(video) - - if (videoBlacklistType === VideoBlacklistType.AUTO_BEFORE_PUBLISHED) { - Notifier.Instance.notifyOnVideoPublishedAfterRemovedFromAutoBlacklist(video) - - // Delete on object so new video notifications will send - delete video.VideoBlacklist - Notifier.Instance.notifyOnNewVideoIfNeeded(video) - } + await unblacklistVideo(videoBlacklist, video) logger.info('Video %s removed from blacklist.', video.uuid) - return res.type('json').status(204).end() + return res.type('json').sendStatus(204) } diff --git a/server/controllers/api/videos/comment.ts b/server/controllers/api/videos/comment.ts index 5f3fed5c0..5070bb3c0 100644 --- a/server/controllers/api/videos/comment.ts +++ b/server/controllers/api/videos/comment.ts @@ -4,7 +4,7 @@ import { ResultList } from '../../../../shared/models' import { VideoCommentCreate } from '../../../../shared/models/videos/video-comment.model' import { logger } from '../../../helpers/logger' import { getFormattedObjects } from '../../../helpers/utils' -import { sequelizeTypescript } from '../../../initializers' +import { sequelizeTypescript } from '../../../initializers/database' import { buildFormattedCommentTree, createVideoComment, markCommentAsDeleted } from '../../../lib/video-comment' import { asyncMiddleware, diff --git a/server/controllers/api/videos/ownership.ts b/server/controllers/api/videos/ownership.ts index 190036f85..540a49010 100644 --- a/server/controllers/api/videos/ownership.ts +++ b/server/controllers/api/videos/ownership.ts @@ -1,6 +1,6 @@ import * as express from 'express' import { logger } from '../../../helpers/logger' -import { sequelizeTypescript } from '../../../initializers' +import { sequelizeTypescript } from '../../../initializers/database' import { asyncMiddleware, asyncRetryTransactionMiddleware, -- cgit v1.2.3