]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/videos/video-abuses.ts
Use 3 tables to represent abuses
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / videos / video-abuses.ts
index 7f011ec0ff0acd4baa7754d7809471882fe5ba1d..8827b8196ccad80f15b5df1000330ec8a59d3dc6 100644 (file)
@@ -1,28 +1,77 @@
 import * as request from 'supertest'
-import { VideoAbuseUpdate } from '../../models/videos/abuse/video-abuse-update.model'
-import { makeDeleteRequest, makePutBodyRequest } from '../requests/requests'
+import { AbusePredefinedReasonsString, AbuseState, AbuseUpdate, AbuseVideoIs } from '@shared/models'
+import { makeDeleteRequest, makeGetRequest, makePutBodyRequest } from '../requests/requests'
 
-function reportVideoAbuse (url: string, token: string, videoId: number | string, reason: string, specialStatus = 200) {
+// FIXME: deprecated in 2.3. Remove this file
+
+function reportVideoAbuse (
+  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 })
+          .send({ reason, predefinedReasons, startAt, endAt })
           .expect(specialStatus)
 }
 
-function getVideoAbusesList (url: string, token: string) {
+function getVideoAbusesList (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'
 
-  return request(url)
-          .get(path)
-          .query({ sort: 'createdAt' })
-          .set('Accept', 'application/json')
-          .set('Authorization', 'Bearer ' + token)
-          .expect(200)
-          .expect('Content-Type', /json/)
+  const query = {
+    sort: 'createdAt',
+    id,
+    predefinedReason,
+    search,
+    state,
+    videoIs,
+    searchReporter,
+    searchReportee,
+    searchVideo,
+    searchVideoChannel
+  }
+
+  return makeGetRequest({
+    url,
+    path,
+    token,
+    query,
+    statusCodeExpected: 200
+  })
 }
 
 function updateVideoAbuse (
@@ -30,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