]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/controllers/api/users/my-abuses.ts
fcd0ce3fce166d8365081975e26e47ade3fbefd1
[github/Chocobozzz/PeerTube.git] / server / controllers / api / users / my-abuses.ts
1 import * as express from 'express'
2 import { AbuseModel } from '@server/models/abuse/abuse'
3 import {
4 abuseListForUserValidator,
5 abusesSortValidator,
6 asyncMiddleware,
7 authenticate,
8 paginationValidator,
9 setDefaultPagination,
10 setDefaultSort
11 } from '../../../middlewares'
12
13 const myAbusesRouter = express.Router()
14
15 myAbusesRouter.get('/me/abuses',
16 authenticate,
17 paginationValidator,
18 abusesSortValidator,
19 setDefaultSort,
20 setDefaultPagination,
21 abuseListForUserValidator,
22 asyncMiddleware(listMyAbuses)
23 )
24
25 // ---------------------------------------------------------------------------
26
27 export {
28 myAbusesRouter
29 }
30
31 // ---------------------------------------------------------------------------
32
33 async function listMyAbuses (req: express.Request, res: express.Response) {
34 const resultList = await AbuseModel.listForUserApi({
35 start: req.query.start,
36 count: req.query.count,
37 sort: req.query.sort,
38 id: req.query.id,
39 search: req.query.search,
40 state: req.query.state,
41 user: res.locals.oauth.token.User
42 })
43
44 return res.json({
45 total: resultList.total,
46 data: resultList.data.map(d => d.toFormattedUserJSON())
47 })
48 }