]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/extra-utils/videos/video-abuses.ts
Translated using Weblate (Arabic)
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / videos / video-abuses.ts
1 import * as request from 'supertest'
2 import { AbusePredefinedReasonsString, AbuseState, AbuseUpdate, AbuseVideoIs } from '@shared/models'
3 import { makeDeleteRequest, makeGetRequest, makePutBodyRequest } from '../requests/requests'
4
5 // FIXME: deprecated in 2.3. Remove this file
6
7 function reportVideoAbuse (
8 url: string,
9 token: string,
10 videoId: number | string,
11 reason: string,
12 predefinedReasons?: AbusePredefinedReasonsString[],
13 startAt?: number,
14 endAt?: number,
15 specialStatus = 200
16 ) {
17 const path = '/api/v1/videos/' + videoId + '/abuse'
18
19 return request(url)
20 .post(path)
21 .set('Accept', 'application/json')
22 .set('Authorization', 'Bearer ' + token)
23 .send({ reason, predefinedReasons, startAt, endAt })
24 .expect(specialStatus)
25 }
26
27 function getVideoAbusesList (options: {
28 url: string
29 token: string
30 id?: number
31 predefinedReason?: AbusePredefinedReasonsString
32 search?: string
33 state?: AbuseState
34 videoIs?: AbuseVideoIs
35 searchReporter?: string
36 searchReportee?: string
37 searchVideo?: string
38 searchVideoChannel?: string
39 }) {
40 const {
41 url,
42 token,
43 id,
44 predefinedReason,
45 search,
46 state,
47 videoIs,
48 searchReporter,
49 searchReportee,
50 searchVideo,
51 searchVideoChannel
52 } = options
53 const path = '/api/v1/videos/abuse'
54
55 const query = {
56 sort: 'createdAt',
57 id,
58 predefinedReason,
59 search,
60 state,
61 videoIs,
62 searchReporter,
63 searchReportee,
64 searchVideo,
65 searchVideoChannel
66 }
67
68 return makeGetRequest({
69 url,
70 path,
71 token,
72 query,
73 statusCodeExpected: 200
74 })
75 }
76
77 function updateVideoAbuse (
78 url: string,
79 token: string,
80 videoId: string | number,
81 videoAbuseId: number,
82 body: AbuseUpdate,
83 statusCodeExpected = 204
84 ) {
85 const path = '/api/v1/videos/' + videoId + '/abuse/' + videoAbuseId
86
87 return makePutBodyRequest({
88 url,
89 token,
90 path,
91 fields: body,
92 statusCodeExpected
93 })
94 }
95
96 function deleteVideoAbuse (url: string, token: string, videoId: string | number, videoAbuseId: number, statusCodeExpected = 204) {
97 const path = '/api/v1/videos/' + videoId + '/abuse/' + videoAbuseId
98
99 return makeDeleteRequest({
100 url,
101 token,
102 path,
103 statusCodeExpected
104 })
105 }
106
107 // ---------------------------------------------------------------------------
108
109 export {
110 reportVideoAbuse,
111 getVideoAbusesList,
112 updateVideoAbuse,
113 deleteVideoAbuse
114 }