]>
Commit | Line | Data |
---|---|---|
4d4e5cd4 | 1 | import * as express from 'express' |
d95d1559 C |
2 | import { AbuseModel } from '@server/models/abuse/abuse' |
3 | import { getServerActor } from '@server/models/application/application' | |
4 | import { AbuseCreate, UserRight, VideoAbuseCreate } from '../../../../shared' | |
65fcc311 | 5 | import { |
d95d1559 | 6 | abusesSortValidator, |
90d4bb81 C |
7 | asyncMiddleware, |
8 | asyncRetryTransactionMiddleware, | |
9 | authenticate, | |
10 | ensureUserHasRight, | |
11 | paginationValidator, | |
12 | setDefaultPagination, | |
13 | setDefaultSort, | |
268eebed | 14 | videoAbuseGetValidator, |
d95d1559 | 15 | videoAbuseListValidator, |
90d4bb81 | 16 | videoAbuseReportValidator, |
d95d1559 | 17 | videoAbuseUpdateValidator |
65fcc311 | 18 | } from '../../../middlewares' |
d95d1559 C |
19 | import { deleteAbuse, reportAbuse, updateAbuse } from '../abuse' |
20 | ||
21 | // FIXME: deprecated in 2.3. Remove this controller | |
65fcc311 C |
22 | |
23 | const abuseVideoRouter = express.Router() | |
24 | ||
25 | abuseVideoRouter.get('/abuse', | |
26 | authenticate, | |
d95d1559 | 27 | ensureUserHasRight(UserRight.MANAGE_ABUSES), |
65fcc311 | 28 | paginationValidator, |
d95d1559 | 29 | abusesSortValidator, |
1174a847 | 30 | setDefaultSort, |
f05a1c30 | 31 | setDefaultPagination, |
feb34f6b | 32 | videoAbuseListValidator, |
eb080476 | 33 | asyncMiddleware(listVideoAbuses) |
d33242b0 | 34 | ) |
268eebed C |
35 | abuseVideoRouter.put('/:videoId/abuse/:id', |
36 | authenticate, | |
d95d1559 | 37 | ensureUserHasRight(UserRight.MANAGE_ABUSES), |
268eebed C |
38 | asyncMiddleware(videoAbuseUpdateValidator), |
39 | asyncRetryTransactionMiddleware(updateVideoAbuse) | |
40 | ) | |
41 | abuseVideoRouter.post('/:videoId/abuse', | |
65fcc311 | 42 | authenticate, |
a2431b7d | 43 | asyncMiddleware(videoAbuseReportValidator), |
90d4bb81 | 44 | asyncRetryTransactionMiddleware(reportVideoAbuse) |
d33242b0 | 45 | ) |
268eebed C |
46 | abuseVideoRouter.delete('/:videoId/abuse/:id', |
47 | authenticate, | |
d95d1559 | 48 | ensureUserHasRight(UserRight.MANAGE_ABUSES), |
268eebed C |
49 | asyncMiddleware(videoAbuseGetValidator), |
50 | asyncRetryTransactionMiddleware(deleteVideoAbuse) | |
51 | ) | |
d33242b0 C |
52 | |
53 | // --------------------------------------------------------------------------- | |
54 | ||
65fcc311 C |
55 | export { |
56 | abuseVideoRouter | |
57 | } | |
d33242b0 C |
58 | |
59 | // --------------------------------------------------------------------------- | |
60 | ||
268eebed | 61 | async function listVideoAbuses (req: express.Request, res: express.Response) { |
f0a47bc9 C |
62 | const user = res.locals.oauth.token.user |
63 | const serverActor = await getServerActor() | |
64 | ||
edbc9325 | 65 | const resultList = await AbuseModel.listForAdminApi({ |
f0a47bc9 C |
66 | start: req.query.start, |
67 | count: req.query.count, | |
68 | sort: req.query.sort, | |
feb34f6b | 69 | id: req.query.id, |
d95d1559 | 70 | filter: 'video', |
1ebddadd | 71 | predefinedReason: req.query.predefinedReason, |
844db39e | 72 | search: req.query.search, |
feb34f6b C |
73 | state: req.query.state, |
74 | videoIs: req.query.videoIs, | |
75 | searchReporter: req.query.searchReporter, | |
76 | searchReportee: req.query.searchReportee, | |
77 | searchVideo: req.query.searchVideo, | |
78 | searchVideoChannel: req.query.searchVideoChannel, | |
f0a47bc9 C |
79 | serverAccountId: serverActor.Account.id, |
80 | user | |
81 | }) | |
eb080476 | 82 | |
edbc9325 C |
83 | return res.json({ |
84 | total: resultList.total, | |
85 | data: resultList.data.map(d => d.toFormattedAdminJSON()) | |
86 | }) | |
d33242b0 C |
87 | } |
88 | ||
268eebed | 89 | async function updateVideoAbuse (req: express.Request, res: express.Response) { |
d95d1559 | 90 | return updateAbuse(req, res) |
268eebed C |
91 | } |
92 | ||
93 | async function deleteVideoAbuse (req: express.Request, res: express.Response) { | |
d95d1559 | 94 | return deleteAbuse(req, res) |
268eebed C |
95 | } |
96 | ||
eb080476 | 97 | async function reportVideoAbuse (req: express.Request, res: express.Response) { |
d95d1559 | 98 | const oldBody = req.body as VideoAbuseCreate |
eb080476 | 99 | |
d95d1559 C |
100 | req.body = { |
101 | accountId: res.locals.videoAll.VideoChannel.accountId, | |
268eebed | 102 | |
d95d1559 C |
103 | reason: oldBody.reason, |
104 | predefinedReasons: oldBody.predefinedReasons, | |
90d4bb81 | 105 | |
d95d1559 C |
106 | video: { |
107 | id: res.locals.videoAll.id, | |
108 | startAt: oldBody.startAt, | |
109 | endAt: oldBody.endAt | |
110 | } | |
111 | } as AbuseCreate | |
91411dba | 112 | |
d95d1559 | 113 | return reportAbuse(req, res) |
d33242b0 | 114 | } |