import * as express from 'express'
-import { VideoBlacklist, UserRight, VideoBlacklistCreate, VideoBlacklistType } from '../../../../shared'
+import { UserRight, VideoBlacklistCreate, VideoBlacklistType } from '../../../../shared'
import { logger } from '../../../helpers/logger'
import { getFormattedObjects } from '../../../helpers/utils'
import {
setBlacklistSort,
setDefaultPagination,
videosBlacklistAddValidator,
+ videosBlacklistFiltersValidator,
videosBlacklistRemoveValidator,
- videosBlacklistUpdateValidator,
- videosBlacklistFiltersValidator
+ 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'
+import { federateVideoIfNeeded } from '../../../lib/activitypub/videos'
+import { MVideoBlacklistVideo } from '@server/typings/models'
const blacklistRouter = express.Router()
// ---------------------------------------------------------------------------
async function addVideoToBlacklist (req: express.Request, res: express.Response) {
- const videoInstance = res.locals.video
+ const videoInstance = res.locals.videoAll
const body: VideoBlacklistCreate = req.body
const toCreate = {
type: VideoBlacklistType.MANUAL
}
- const blacklist = await VideoBlacklistModel.create(toCreate)
+ const blacklist: MVideoBlacklistVideo = await VideoBlacklistModel.create(toCreate)
blacklist.Video = videoInstance
if (body.unfederate === true) {
Notifier.Instance.notifyOnVideoBlacklist(blacklist)
- logger.info('Video %s blacklisted.', res.locals.video.uuid)
+ logger.info('Video %s blacklisted.', videoInstance.uuid)
return res.type('json').status(204).end()
}
return res.type('json').status(204).end()
}
-async function listBlacklist (req: express.Request, res: express.Response, next: express.NextFunction) {
- const resultList = await VideoBlacklistModel.listForApi(req.query.start, req.query.count, req.query.sort, req.query.type)
+async function listBlacklist (req: express.Request, res: express.Response) {
+ const resultList = await VideoBlacklistModel.listForApi({
+ start: req.query.start,
+ count: req.query.count,
+ sort: req.query.sort,
+ search: req.query.search,
+ type: req.query.type
+ })
- return res.json(getFormattedObjects<VideoBlacklist, VideoBlacklistModel>(resultList.data, resultList.total))
+ return res.json(getFormattedObjects(resultList.data, resultList.total))
}
-async function removeVideoFromBlacklistController (req: express.Request, res: express.Response, next: express.NextFunction) {
+async function removeVideoFromBlacklistController (req: express.Request, res: express.Response) {
const videoBlacklist = res.locals.videoBlacklist
- const video = res.locals.video
+ 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) {
// Delete on object so new video notifications will send
delete video.VideoBlacklist
- Notifier.Instance.notifyOnNewVideo(video)
+ Notifier.Instance.notifyOnNewVideoIfNeeded(video)
}
- logger.info('Video %s removed from blacklist.', res.locals.video.uuid)
+ logger.info('Video %s removed from blacklist.', video.uuid)
return res.type('json').status(204).end()
}