]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/extra-utils/moderation/abuses.ts
Add transcoding module comments
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / moderation / abuses.ts
CommitLineData
d95d1559 1
57f6896f
C
2import { AbuseFilter, AbusePredefinedReasonsString, AbuseState, AbuseUpdate, AbuseVideoIs } from '@shared/models'
3import { makeDeleteRequest, makeGetRequest, makePostBodyRequest, makePutBodyRequest } from '../requests/requests'
4
5function reportAbuse (options: {
6 url: string
7 token: string
8
9 reason: string
10
11 accountId?: number
12 videoId?: number
13 commentId?: number
14
15 predefinedReasons?: AbusePredefinedReasonsString[]
16
17 startAt?: number
18 endAt?: number
19
20 statusCodeExpected?: number
21}) {
22 const path = '/api/v1/abuses'
23
24 const video = options.videoId ? {
25 id: options.videoId,
26 startAt: options.startAt,
27 endAt: options.endAt
28 } : undefined
29
30 const comment = options.commentId ? {
31 id: options.commentId
32 } : undefined
33
34 const account = options.accountId ? {
35 id: options.accountId
36 } : undefined
37
38 const body = {
39 account,
40 video,
41 comment,
42
43 reason: options.reason,
44 predefinedReasons: options.predefinedReasons
45 }
46
47 return makePostBodyRequest({
48 url: options.url,
49 path,
50 token: options.token,
51
52 fields: body,
53 statusCodeExpected: options.statusCodeExpected || 200
54 })
d95d1559
C
55}
56
edbc9325 57function getAdminAbusesList (options: {
d95d1559
C
58 url: string
59 token: string
310b5219
C
60
61 start?: number
62 count?: number
63 sort?: string
64
d95d1559
C
65 id?: number
66 predefinedReason?: AbusePredefinedReasonsString
67 search?: string
310b5219 68 filter?: AbuseFilter
d95d1559
C
69 state?: AbuseState
70 videoIs?: AbuseVideoIs
71 searchReporter?: string
72 searchReportee?: string
73 searchVideo?: string
74 searchVideoChannel?: string
75}) {
76 const {
77 url,
78 token,
310b5219
C
79 start,
80 count,
81 sort,
d95d1559
C
82 id,
83 predefinedReason,
84 search,
57f6896f 85 filter,
d95d1559
C
86 state,
87 videoIs,
88 searchReporter,
89 searchReportee,
90 searchVideo,
91 searchVideoChannel
92 } = options
57f6896f 93 const path = '/api/v1/abuses'
d95d1559
C
94
95 const query = {
d95d1559
C
96 id,
97 predefinedReason,
98 search,
99 state,
57f6896f 100 filter,
d95d1559 101 videoIs,
310b5219
C
102 start,
103 count,
104 sort: sort || 'createdAt',
d95d1559
C
105 searchReporter,
106 searchReportee,
107 searchVideo,
108 searchVideoChannel
109 }
110
111 return makeGetRequest({
112 url,
113 path,
114 token,
115 query,
116 statusCodeExpected: 200
117 })
118}
119
edbc9325
C
120function getUserAbusesList (options: {
121 url: string
122 token: string
123
124 start?: number
125 count?: number
126 sort?: string
127
128 id?: number
129 search?: string
130 state?: AbuseState
131}) {
132 const {
133 url,
134 token,
135 start,
136 count,
137 sort,
138 id,
139 search,
140 state
141 } = options
142 const path = '/api/v1/users/me/abuses'
143
144 const query = {
145 id,
146 search,
147 state,
148 start,
149 count,
150 sort: sort || 'createdAt'
151 }
152
153 return makeGetRequest({
154 url,
155 path,
156 token,
157 query,
158 statusCodeExpected: 200
159 })
160}
161
d95d1559
C
162function updateAbuse (
163 url: string,
164 token: string,
57f6896f 165 abuseId: number,
d95d1559
C
166 body: AbuseUpdate,
167 statusCodeExpected = 204
168) {
57f6896f 169 const path = '/api/v1/abuses/' + abuseId
d95d1559
C
170
171 return makePutBodyRequest({
172 url,
173 token,
174 path,
175 fields: body,
176 statusCodeExpected
177 })
178}
179
57f6896f
C
180function deleteAbuse (url: string, token: string, abuseId: number, statusCodeExpected = 204) {
181 const path = '/api/v1/abuses/' + abuseId
d95d1559
C
182
183 return makeDeleteRequest({
184 url,
185 token,
186 path,
187 statusCodeExpected
188 })
189}
190
edbc9325
C
191function listAbuseMessages (url: string, token: string, abuseId: number, statusCodeExpected = 200) {
192 const path = '/api/v1/abuses/' + abuseId + '/messages'
193
194 return makeGetRequest({
195 url,
196 token,
197 path,
198 statusCodeExpected
199 })
200}
201
202function deleteAbuseMessage (url: string, token: string, abuseId: number, messageId: number, statusCodeExpected = 204) {
203 const path = '/api/v1/abuses/' + abuseId + '/messages/' + messageId
204
205 return makeDeleteRequest({
206 url,
207 token,
208 path,
209 statusCodeExpected
210 })
211}
212
213function addAbuseMessage (url: string, token: string, abuseId: number, message: string, statusCodeExpected = 200) {
214 const path = '/api/v1/abuses/' + abuseId + '/messages'
215
216 return makePostBodyRequest({
217 url,
218 token,
219 path,
220 fields: { message },
221 statusCodeExpected
222 })
223}
224
d95d1559
C
225// ---------------------------------------------------------------------------
226
227export {
228 reportAbuse,
edbc9325 229 getAdminAbusesList,
d95d1559 230 updateAbuse,
edbc9325
C
231 deleteAbuse,
232 getUserAbusesList,
233 listAbuseMessages,
234 deleteAbuseMessage,
235 addAbuseMessage
d95d1559 236}