From d95d15598847c7f020aa056e7e6e0c02d2bbf732 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 1 Jul 2020 16:05:30 +0200 Subject: Use 3 tables to represent abuses --- shared/extra-utils/index.ts | 1 + shared/extra-utils/moderation/abuses.ts | 112 +++++++++++++++++++++ shared/extra-utils/users/user-notifications.ts | 6 +- shared/extra-utils/videos/video-abuses.ts | 18 ++-- shared/models/activitypub/activity.ts | 10 +- shared/models/activitypub/objects/abuse-object.ts | 12 +++ .../models/activitypub/objects/common-objects.ts | 4 +- shared/models/activitypub/objects/index.ts | 4 +- .../activitypub/objects/video-abuse-object.ts | 10 -- shared/models/blocklist/account-block.model.ts | 7 -- shared/models/blocklist/index.ts | 2 - shared/models/blocklist/server-block.model.ts | 9 -- shared/models/index.ts | 3 +- .../models/moderation/abuse/abuse-create.model.ts | 26 +++++ shared/models/moderation/abuse/abuse-filter.ts | 1 + .../models/moderation/abuse/abuse-reason.model.ts | 33 ++++++ .../models/moderation/abuse/abuse-state.model.ts | 5 + .../models/moderation/abuse/abuse-update.model.ts | 7 ++ .../models/moderation/abuse/abuse-video-is.type.ts | 1 + shared/models/moderation/abuse/abuse.model.ts | 53 ++++++++++ shared/models/moderation/abuse/index.ts | 6 ++ shared/models/moderation/account-block.model.ts | 7 ++ shared/models/moderation/index.ts | 3 + shared/models/moderation/server-block.model.ts | 9 ++ shared/models/users/user-notification.model.ts | 15 ++- shared/models/users/user-right.enum.ts | 2 +- shared/models/users/user-role.ts | 2 +- shared/models/videos/abuse/index.ts | 6 -- .../videos/abuse/video-abuse-create.model.ts | 8 -- .../videos/abuse/video-abuse-reason.model.ts | 33 ------ .../models/videos/abuse/video-abuse-state.model.ts | 5 - .../videos/abuse/video-abuse-update.model.ts | 6 -- .../videos/abuse/video-abuse-video-is.type.ts | 1 - shared/models/videos/abuse/video-abuse.model.ts | 38 ------- shared/models/videos/index.ts | 1 - 35 files changed, 313 insertions(+), 153 deletions(-) create mode 100644 shared/extra-utils/moderation/abuses.ts create mode 100644 shared/models/activitypub/objects/abuse-object.ts delete mode 100644 shared/models/activitypub/objects/video-abuse-object.ts delete mode 100644 shared/models/blocklist/account-block.model.ts delete mode 100644 shared/models/blocklist/index.ts delete mode 100644 shared/models/blocklist/server-block.model.ts create mode 100644 shared/models/moderation/abuse/abuse-create.model.ts create mode 100644 shared/models/moderation/abuse/abuse-filter.ts create mode 100644 shared/models/moderation/abuse/abuse-reason.model.ts create mode 100644 shared/models/moderation/abuse/abuse-state.model.ts create mode 100644 shared/models/moderation/abuse/abuse-update.model.ts create mode 100644 shared/models/moderation/abuse/abuse-video-is.type.ts create mode 100644 shared/models/moderation/abuse/abuse.model.ts create mode 100644 shared/models/moderation/abuse/index.ts create mode 100644 shared/models/moderation/account-block.model.ts create mode 100644 shared/models/moderation/index.ts create mode 100644 shared/models/moderation/server-block.model.ts delete mode 100644 shared/models/videos/abuse/index.ts delete mode 100644 shared/models/videos/abuse/video-abuse-create.model.ts delete mode 100644 shared/models/videos/abuse/video-abuse-reason.model.ts delete mode 100644 shared/models/videos/abuse/video-abuse-state.model.ts delete mode 100644 shared/models/videos/abuse/video-abuse-update.model.ts delete mode 100644 shared/models/videos/abuse/video-abuse-video-is.type.ts delete mode 100644 shared/models/videos/abuse/video-abuse.model.ts (limited to 'shared') diff --git a/shared/extra-utils/index.ts b/shared/extra-utils/index.ts index 2ac0c6338..af4d23856 100644 --- a/shared/extra-utils/index.ts +++ b/shared/extra-utils/index.ts @@ -17,6 +17,7 @@ export * from './videos/services' export * from './videos/video-playlists' export * from './users/users' export * from './users/accounts' +export * from './moderation/abuses' export * from './videos/video-abuses' export * from './videos/video-blacklist' export * from './videos/video-captions' diff --git a/shared/extra-utils/moderation/abuses.ts b/shared/extra-utils/moderation/abuses.ts new file mode 100644 index 000000000..48a51e2b8 --- /dev/null +++ b/shared/extra-utils/moderation/abuses.ts @@ -0,0 +1,112 @@ +import * as request from 'supertest' +import { AbusePredefinedReasonsString, AbuseState, AbuseUpdate, AbuseVideoIs } from '@shared/models' +import { makeDeleteRequest, makeGetRequest, makePutBodyRequest } from '../requests/requests' + +function reportAbuse ( + url: string, + token: string, + videoId: number | string, + reason: string, + predefinedReasons?: AbusePredefinedReasonsString[], + startAt?: number, + endAt?: number, + specialStatus = 200 +) { + const path = '/api/v1/videos/' + videoId + '/abuse' + + return request(url) + .post(path) + .set('Accept', 'application/json') + .set('Authorization', 'Bearer ' + token) + .send({ reason, predefinedReasons, startAt, endAt }) + .expect(specialStatus) +} + +function getAbusesList (options: { + url: string + token: string + id?: number + predefinedReason?: AbusePredefinedReasonsString + search?: string + state?: AbuseState + videoIs?: AbuseVideoIs + searchReporter?: string + searchReportee?: string + searchVideo?: string + searchVideoChannel?: string +}) { + const { + url, + token, + id, + predefinedReason, + search, + state, + videoIs, + searchReporter, + searchReportee, + searchVideo, + searchVideoChannel + } = options + const path = '/api/v1/videos/abuse' + + const query = { + sort: 'createdAt', + id, + predefinedReason, + search, + state, + videoIs, + searchReporter, + searchReportee, + searchVideo, + searchVideoChannel + } + + return makeGetRequest({ + url, + path, + token, + query, + statusCodeExpected: 200 + }) +} + +function updateAbuse ( + url: string, + token: string, + videoId: string | number, + videoAbuseId: number, + body: AbuseUpdate, + statusCodeExpected = 204 +) { + const path = '/api/v1/videos/' + videoId + '/abuse/' + videoAbuseId + + return makePutBodyRequest({ + url, + token, + path, + fields: body, + statusCodeExpected + }) +} + +function deleteAbuse (url: string, token: string, videoId: string | number, videoAbuseId: number, statusCodeExpected = 204) { + const path = '/api/v1/videos/' + videoId + '/abuse/' + videoAbuseId + + return makeDeleteRequest({ + url, + token, + path, + statusCodeExpected + }) +} + +// --------------------------------------------------------------------------- + +export { + reportAbuse, + getAbusesList, + updateAbuse, + deleteAbuse +} diff --git a/shared/extra-utils/users/user-notifications.ts b/shared/extra-utils/users/user-notifications.ts index a17a39de9..62f3418c5 100644 --- a/shared/extra-utils/users/user-notifications.ts +++ b/shared/extra-utils/users/user-notifications.ts @@ -443,11 +443,11 @@ async function checkNewVideoAbuseForModerators (base: CheckerBaseParams, videoUU expect(notification).to.not.be.undefined expect(notification.type).to.equal(notificationType) - expect(notification.videoAbuse.id).to.be.a('number') - checkVideo(notification.videoAbuse.video, videoName, videoUUID) + expect(notification.abuse.id).to.be.a('number') + checkVideo(notification.abuse.video, videoName, videoUUID) } else { expect(notification).to.satisfy((n: UserNotification) => { - return n === undefined || n.videoAbuse === undefined || n.videoAbuse.video.uuid !== videoUUID + return n === undefined || n.abuse === undefined || n.abuse.video.uuid !== videoUUID }) } } diff --git a/shared/extra-utils/videos/video-abuses.ts b/shared/extra-utils/videos/video-abuses.ts index ff006672a..8827b8196 100644 --- a/shared/extra-utils/videos/video-abuses.ts +++ b/shared/extra-utils/videos/video-abuses.ts @@ -1,15 +1,15 @@ import * as request from 'supertest' -import { VideoAbuseUpdate } from '../../models/videos/abuse/video-abuse-update.model' -import { makeDeleteRequest, makePutBodyRequest, makeGetRequest } from '../requests/requests' -import { VideoAbuseState, VideoAbusePredefinedReasonsString } from '@shared/models' -import { VideoAbuseVideoIs } from '@shared/models/videos/abuse/video-abuse-video-is.type' +import { AbusePredefinedReasonsString, AbuseState, AbuseUpdate, AbuseVideoIs } from '@shared/models' +import { makeDeleteRequest, makeGetRequest, makePutBodyRequest } from '../requests/requests' + +// FIXME: deprecated in 2.3. Remove this file function reportVideoAbuse ( url: string, token: string, videoId: number | string, reason: string, - predefinedReasons?: VideoAbusePredefinedReasonsString[], + predefinedReasons?: AbusePredefinedReasonsString[], startAt?: number, endAt?: number, specialStatus = 200 @@ -28,10 +28,10 @@ function getVideoAbusesList (options: { url: string token: string id?: number - predefinedReason?: VideoAbusePredefinedReasonsString + predefinedReason?: AbusePredefinedReasonsString search?: string - state?: VideoAbuseState - videoIs?: VideoAbuseVideoIs + state?: AbuseState + videoIs?: AbuseVideoIs searchReporter?: string searchReportee?: string searchVideo?: string @@ -79,7 +79,7 @@ function updateVideoAbuse ( token: string, videoId: string | number, videoAbuseId: number, - body: VideoAbuseUpdate, + body: AbuseUpdate, statusCodeExpected = 204 ) { const path = '/api/v1/videos/' + videoId + '/abuse/' + videoAbuseId diff --git a/shared/models/activitypub/activity.ts b/shared/models/activitypub/activity.ts index 31b9e4673..5b4ce214a 100644 --- a/shared/models/activitypub/activity.ts +++ b/shared/models/activitypub/activity.ts @@ -1,12 +1,12 @@ import { ActivityPubActor } from './activitypub-actor' import { ActivityPubSignature } from './activitypub-signature' -import { CacheFileObject, VideoTorrentObject, ActivityFlagReasonObject } from './objects' +import { ActivityFlagReasonObject, CacheFileObject, VideoTorrentObject } from './objects' +import { AbuseObject } from './objects/abuse-object' import { DislikeObject } from './objects/dislike-object' -import { VideoAbuseObject } from './objects/video-abuse-object' -import { VideoCommentObject } from './objects/video-comment-object' -import { ViewObject } from './objects/view-object' import { APObject } from './objects/object.model' import { PlaylistObject } from './objects/playlist-object' +import { VideoCommentObject } from './objects/video-comment-object' +import { ViewObject } from './objects/view-object' export type Activity = ActivityCreate | @@ -53,7 +53,7 @@ export interface BaseActivity { export interface ActivityCreate extends BaseActivity { type: 'Create' - object: VideoTorrentObject | VideoAbuseObject | ViewObject | DislikeObject | VideoCommentObject | CacheFileObject | PlaylistObject + object: VideoTorrentObject | AbuseObject | ViewObject | DislikeObject | VideoCommentObject | CacheFileObject | PlaylistObject } export interface ActivityUpdate extends BaseActivity { diff --git a/shared/models/activitypub/objects/abuse-object.ts b/shared/models/activitypub/objects/abuse-object.ts new file mode 100644 index 000000000..ad45cc064 --- /dev/null +++ b/shared/models/activitypub/objects/abuse-object.ts @@ -0,0 +1,12 @@ +import { ActivityFlagReasonObject } from './common-objects' + +export interface AbuseObject { + type: 'Flag' + content: string + object: string | string[] + + tag?: ActivityFlagReasonObject[] + + startAt?: number + endAt?: number +} diff --git a/shared/models/activitypub/objects/common-objects.ts b/shared/models/activitypub/objects/common-objects.ts index 096d422ea..711ce45f4 100644 --- a/shared/models/activitypub/objects/common-objects.ts +++ b/shared/models/activitypub/objects/common-objects.ts @@ -1,4 +1,4 @@ -import { VideoAbusePredefinedReasonsString } from '@shared/models/videos' +import { AbusePredefinedReasonsString } from '@shared/models' export interface ActivityIdentifierObject { identifier: string @@ -85,7 +85,7 @@ export interface ActivityMentionObject { export interface ActivityFlagReasonObject { type: 'Hashtag' - name: VideoAbusePredefinedReasonsString + name: AbusePredefinedReasonsString } export type ActivityTagObject = diff --git a/shared/models/activitypub/objects/index.ts b/shared/models/activitypub/objects/index.ts index fba61e12f..a6a20e87a 100644 --- a/shared/models/activitypub/objects/index.ts +++ b/shared/models/activitypub/objects/index.ts @@ -1,6 +1,6 @@ +export * from './abuse-object' export * from './cache-file-object' export * from './common-objects' -export * from './video-abuse-object' +export * from './dislike-object' export * from './video-torrent-object' export * from './view-object' -export * from './dislike-object' diff --git a/shared/models/activitypub/objects/video-abuse-object.ts b/shared/models/activitypub/objects/video-abuse-object.ts deleted file mode 100644 index 73add8ef4..000000000 --- a/shared/models/activitypub/objects/video-abuse-object.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ActivityFlagReasonObject } from './common-objects' - -export interface VideoAbuseObject { - type: 'Flag' - content: string - object: string | string[] - tag?: ActivityFlagReasonObject[] - startAt?: number - endAt?: number -} diff --git a/shared/models/blocklist/account-block.model.ts b/shared/models/blocklist/account-block.model.ts deleted file mode 100644 index a942ed614..000000000 --- a/shared/models/blocklist/account-block.model.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Account } from '../actors' - -export interface AccountBlock { - byAccount: Account - blockedAccount: Account - createdAt: Date | string -} diff --git a/shared/models/blocklist/index.ts b/shared/models/blocklist/index.ts deleted file mode 100644 index fc7873270..000000000 --- a/shared/models/blocklist/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './account-block.model' -export * from './server-block.model' diff --git a/shared/models/blocklist/server-block.model.ts b/shared/models/blocklist/server-block.model.ts deleted file mode 100644 index a8b8af0b7..000000000 --- a/shared/models/blocklist/server-block.model.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Account } from '../actors' - -export interface ServerBlock { - byAccount: Account - blockedServer: { - host: string - } - createdAt: Date | string -} diff --git a/shared/models/index.ts b/shared/models/index.ts index 3d4bdedde..a68f57148 100644 --- a/shared/models/index.ts +++ b/shared/models/index.ts @@ -1,7 +1,7 @@ export * from './activitypub' export * from './actors' export * from './avatars' -export * from './blocklist' +export * from './moderation' export * from './bulk' export * from './redundancy' export * from './users' @@ -14,4 +14,3 @@ export * from './search' export * from './server' export * from './oauth-client-local.model' export * from './result-list.model' -export * from './server/server-config.model' diff --git a/shared/models/moderation/abuse/abuse-create.model.ts b/shared/models/moderation/abuse/abuse-create.model.ts new file mode 100644 index 000000000..c0d04e46d --- /dev/null +++ b/shared/models/moderation/abuse/abuse-create.model.ts @@ -0,0 +1,26 @@ +import { AbusePredefinedReasonsString } from './abuse-reason.model' + +export interface AbuseCreate { + accountId: number + + reason: string + predefinedReasons?: AbusePredefinedReasonsString[] + + video?: { + id: number + startAt?: number + endAt?: number + } + + comment?: { + id: number + } +} + +// FIXME: deprecated in 2.3. Remove it +export interface VideoAbuseCreate { + reason: string + predefinedReasons?: AbusePredefinedReasonsString[] + startAt?: number + endAt?: number +} diff --git a/shared/models/moderation/abuse/abuse-filter.ts b/shared/models/moderation/abuse/abuse-filter.ts new file mode 100644 index 000000000..03303bbab --- /dev/null +++ b/shared/models/moderation/abuse/abuse-filter.ts @@ -0,0 +1 @@ +export type AbuseFilter = 'video' | 'comment' diff --git a/shared/models/moderation/abuse/abuse-reason.model.ts b/shared/models/moderation/abuse/abuse-reason.model.ts new file mode 100644 index 000000000..36875969d --- /dev/null +++ b/shared/models/moderation/abuse/abuse-reason.model.ts @@ -0,0 +1,33 @@ +export enum AbusePredefinedReasons { + VIOLENT_OR_REPULSIVE = 1, + HATEFUL_OR_ABUSIVE, + SPAM_OR_MISLEADING, + PRIVACY, + RIGHTS, + SERVER_RULES, + THUMBNAILS, + CAPTIONS +} + +export type AbusePredefinedReasonsString = + 'violentOrRepulsive' | + 'hatefulOrAbusive' | + 'spamOrMisleading' | + 'privacy' | + 'rights' | + 'serverRules' | + 'thumbnails' | + 'captions' + +export const abusePredefinedReasonsMap: { + [key in AbusePredefinedReasonsString]: AbusePredefinedReasons +} = { + violentOrRepulsive: AbusePredefinedReasons.VIOLENT_OR_REPULSIVE, + hatefulOrAbusive: AbusePredefinedReasons.HATEFUL_OR_ABUSIVE, + spamOrMisleading: AbusePredefinedReasons.SPAM_OR_MISLEADING, + privacy: AbusePredefinedReasons.PRIVACY, + rights: AbusePredefinedReasons.RIGHTS, + serverRules: AbusePredefinedReasons.SERVER_RULES, + thumbnails: AbusePredefinedReasons.THUMBNAILS, + captions: AbusePredefinedReasons.CAPTIONS +} diff --git a/shared/models/moderation/abuse/abuse-state.model.ts b/shared/models/moderation/abuse/abuse-state.model.ts new file mode 100644 index 000000000..b00cccad8 --- /dev/null +++ b/shared/models/moderation/abuse/abuse-state.model.ts @@ -0,0 +1,5 @@ +export enum AbuseState { + PENDING = 1, + REJECTED = 2, + ACCEPTED = 3 +} diff --git a/shared/models/moderation/abuse/abuse-update.model.ts b/shared/models/moderation/abuse/abuse-update.model.ts new file mode 100644 index 000000000..4360fe7ac --- /dev/null +++ b/shared/models/moderation/abuse/abuse-update.model.ts @@ -0,0 +1,7 @@ +import { AbuseState } from './abuse-state.model' + +export interface AbuseUpdate { + moderationComment?: string + + state?: AbuseState +} diff --git a/shared/models/moderation/abuse/abuse-video-is.type.ts b/shared/models/moderation/abuse/abuse-video-is.type.ts new file mode 100644 index 000000000..74937f3b9 --- /dev/null +++ b/shared/models/moderation/abuse/abuse-video-is.type.ts @@ -0,0 +1 @@ +export type AbuseVideoIs = 'deleted' | 'blacklisted' diff --git a/shared/models/moderation/abuse/abuse.model.ts b/shared/models/moderation/abuse/abuse.model.ts new file mode 100644 index 000000000..9ff150c4a --- /dev/null +++ b/shared/models/moderation/abuse/abuse.model.ts @@ -0,0 +1,53 @@ +import { Account } from '../../actors/account.model' +import { AbuseState } from './abuse-state.model' +import { AbusePredefinedReasonsString } from './abuse-reason.model' +import { VideoConstant } from '../../videos/video-constant.model' +import { VideoChannel } from '../../videos/channel/video-channel.model' + +export interface VideoAbuse { + id: number + name: string + uuid: string + nsfw: boolean + deleted: boolean + blacklisted: boolean + + startAt: number | null + endAt: number | null + + thumbnailPath?: string + channel?: VideoChannel +} + +export interface VideoCommentAbuse { + id: number + account?: Account + text: string + deleted: boolean +} + +export interface Abuse { + id: number + reason: string + predefinedReasons?: AbusePredefinedReasonsString[] + reporterAccount: Account + + state: VideoConstant + moderationComment?: string + + video?: VideoAbuse + comment?: VideoCommentAbuse + + createdAt: Date + updatedAt: Date + + // FIXME: deprecated in 2.3, remove this + startAt: null + endAt: null + + count?: number + nth?: number + + countReportsForReporter?: number + countReportsForReportee?: number +} diff --git a/shared/models/moderation/abuse/index.ts b/shared/models/moderation/abuse/index.ts new file mode 100644 index 000000000..32a6b4e6c --- /dev/null +++ b/shared/models/moderation/abuse/index.ts @@ -0,0 +1,6 @@ +export * from './abuse-create.model' +export * from './abuse-reason.model' +export * from './abuse-state.model' +export * from './abuse-update.model' +export * from './abuse-video-is.type' +export * from './abuse.model' diff --git a/shared/models/moderation/account-block.model.ts b/shared/models/moderation/account-block.model.ts new file mode 100644 index 000000000..a942ed614 --- /dev/null +++ b/shared/models/moderation/account-block.model.ts @@ -0,0 +1,7 @@ +import { Account } from '../actors' + +export interface AccountBlock { + byAccount: Account + blockedAccount: Account + createdAt: Date | string +} diff --git a/shared/models/moderation/index.ts b/shared/models/moderation/index.ts new file mode 100644 index 000000000..8b6042e97 --- /dev/null +++ b/shared/models/moderation/index.ts @@ -0,0 +1,3 @@ +export * from './abuse' +export * from './account-block.model' +export * from './server-block.model' diff --git a/shared/models/moderation/server-block.model.ts b/shared/models/moderation/server-block.model.ts new file mode 100644 index 000000000..a8b8af0b7 --- /dev/null +++ b/shared/models/moderation/server-block.model.ts @@ -0,0 +1,9 @@ +import { Account } from '../actors' + +export interface ServerBlock { + byAccount: Account + blockedServer: { + host: string + } + createdAt: Date | string +} diff --git a/shared/models/users/user-notification.model.ts b/shared/models/users/user-notification.model.ts index e9be1ca7f..39090f5a1 100644 --- a/shared/models/users/user-notification.model.ts +++ b/shared/models/users/user-notification.model.ts @@ -64,9 +64,20 @@ export interface UserNotification { video: VideoInfo } - videoAbuse?: { + abuse?: { id: number - video: VideoInfo + + video?: VideoInfo + + comment?: { + threadId: number + + video: { + uuid: string + } + } + + account?: ActorInfo } videoBlacklist?: { diff --git a/shared/models/users/user-right.enum.ts b/shared/models/users/user-right.enum.ts index 2f88a65de..4a7ae4373 100644 --- a/shared/models/users/user-right.enum.ts +++ b/shared/models/users/user-right.enum.ts @@ -11,7 +11,7 @@ export enum UserRight { MANAGE_SERVER_REDUNDANCY, - MANAGE_VIDEO_ABUSES, + MANAGE_ABUSES, MANAGE_JOBS, diff --git a/shared/models/users/user-role.ts b/shared/models/users/user-role.ts index 2b08b5850..772988c0c 100644 --- a/shared/models/users/user-role.ts +++ b/shared/models/users/user-role.ts @@ -20,7 +20,7 @@ const userRoleRights: { [ id in UserRole ]: UserRight[] } = { [UserRole.MODERATOR]: [ UserRight.MANAGE_VIDEO_BLACKLIST, - UserRight.MANAGE_VIDEO_ABUSES, + UserRight.MANAGE_ABUSES, UserRight.REMOVE_ANY_VIDEO, UserRight.REMOVE_ANY_VIDEO_CHANNEL, UserRight.REMOVE_ANY_VIDEO_PLAYLIST, diff --git a/shared/models/videos/abuse/index.ts b/shared/models/videos/abuse/index.ts deleted file mode 100644 index f70bc736f..000000000 --- a/shared/models/videos/abuse/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './video-abuse-create.model' -export * from './video-abuse-reason.model' -export * from './video-abuse-state.model' -export * from './video-abuse-update.model' -export * from './video-abuse-video-is.type' -export * from './video-abuse.model' diff --git a/shared/models/videos/abuse/video-abuse-create.model.ts b/shared/models/videos/abuse/video-abuse-create.model.ts deleted file mode 100644 index c93cb8b2c..000000000 --- a/shared/models/videos/abuse/video-abuse-create.model.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { VideoAbusePredefinedReasonsString } from './video-abuse-reason.model' - -export interface VideoAbuseCreate { - reason: string - predefinedReasons?: VideoAbusePredefinedReasonsString[] - startAt?: number - endAt?: number -} diff --git a/shared/models/videos/abuse/video-abuse-reason.model.ts b/shared/models/videos/abuse/video-abuse-reason.model.ts deleted file mode 100644 index 9064f0c1a..000000000 --- a/shared/models/videos/abuse/video-abuse-reason.model.ts +++ /dev/null @@ -1,33 +0,0 @@ -export enum VideoAbusePredefinedReasons { - VIOLENT_OR_REPULSIVE = 1, - HATEFUL_OR_ABUSIVE, - SPAM_OR_MISLEADING, - PRIVACY, - RIGHTS, - SERVER_RULES, - THUMBNAILS, - CAPTIONS -} - -export type VideoAbusePredefinedReasonsString = - 'violentOrRepulsive' | - 'hatefulOrAbusive' | - 'spamOrMisleading' | - 'privacy' | - 'rights' | - 'serverRules' | - 'thumbnails' | - 'captions' - -export const videoAbusePredefinedReasonsMap: { - [key in VideoAbusePredefinedReasonsString]: VideoAbusePredefinedReasons -} = { - violentOrRepulsive: VideoAbusePredefinedReasons.VIOLENT_OR_REPULSIVE, - hatefulOrAbusive: VideoAbusePredefinedReasons.HATEFUL_OR_ABUSIVE, - spamOrMisleading: VideoAbusePredefinedReasons.SPAM_OR_MISLEADING, - privacy: VideoAbusePredefinedReasons.PRIVACY, - rights: VideoAbusePredefinedReasons.RIGHTS, - serverRules: VideoAbusePredefinedReasons.SERVER_RULES, - thumbnails: VideoAbusePredefinedReasons.THUMBNAILS, - captions: VideoAbusePredefinedReasons.CAPTIONS -} diff --git a/shared/models/videos/abuse/video-abuse-state.model.ts b/shared/models/videos/abuse/video-abuse-state.model.ts deleted file mode 100644 index 529f034bd..000000000 --- a/shared/models/videos/abuse/video-abuse-state.model.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum VideoAbuseState { - PENDING = 1, - REJECTED = 2, - ACCEPTED = 3 -} diff --git a/shared/models/videos/abuse/video-abuse-update.model.ts b/shared/models/videos/abuse/video-abuse-update.model.ts deleted file mode 100644 index 9b32aae48..000000000 --- a/shared/models/videos/abuse/video-abuse-update.model.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { VideoAbuseState } from './video-abuse-state.model' - -export interface VideoAbuseUpdate { - moderationComment?: string - state?: VideoAbuseState -} diff --git a/shared/models/videos/abuse/video-abuse-video-is.type.ts b/shared/models/videos/abuse/video-abuse-video-is.type.ts deleted file mode 100644 index e86018993..000000000 --- a/shared/models/videos/abuse/video-abuse-video-is.type.ts +++ /dev/null @@ -1 +0,0 @@ -export type VideoAbuseVideoIs = 'deleted' | 'blacklisted' diff --git a/shared/models/videos/abuse/video-abuse.model.ts b/shared/models/videos/abuse/video-abuse.model.ts deleted file mode 100644 index 38605dcac..000000000 --- a/shared/models/videos/abuse/video-abuse.model.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Account } from '../../actors/index' -import { VideoConstant } from '../video-constant.model' -import { VideoAbuseState } from './video-abuse-state.model' -import { VideoChannel } from '../channel/video-channel.model' -import { VideoAbusePredefinedReasonsString } from './video-abuse-reason.model' - -export interface VideoAbuse { - id: number - reason: string - predefinedReasons?: VideoAbusePredefinedReasonsString[] - reporterAccount: Account - - state: VideoConstant - moderationComment?: string - - video: { - id: number - name: string - uuid: string - nsfw: boolean - deleted: boolean - blacklisted: boolean - thumbnailPath?: string - channel?: VideoChannel - } - - createdAt: Date - updatedAt: Date - - startAt: number - endAt: number - - count?: number - nth?: number - - countReportsForReporter?: number - countReportsForReportee?: number -} diff --git a/shared/models/videos/index.ts b/shared/models/videos/index.ts index e1d96b40a..20b9638ab 100644 --- a/shared/models/videos/index.ts +++ b/shared/models/videos/index.ts @@ -1,4 +1,3 @@ -export * from './abuse' export * from './blacklist' export * from './caption' export * from './channel' -- cgit v1.2.3