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