my-abuses.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 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. const myAbusesRouter = express.Router()
  13. myAbusesRouter.get('/me/abuses',
  14. authenticate,
  15. paginationValidator,
  16. abusesSortValidator,
  17. setDefaultSort,
  18. setDefaultPagination,
  19. abuseListForUserValidator,
  20. asyncMiddleware(listMyAbuses)
  21. )
  22. // ---------------------------------------------------------------------------
  23. export {
  24. myAbusesRouter
  25. }
  26. // ---------------------------------------------------------------------------
  27. async function listMyAbuses (req: express.Request, res: express.Response) {
  28. const resultList = await AbuseModel.listForUserApi({
  29. start: req.query.start,
  30. count: req.query.count,
  31. sort: req.query.sort,
  32. id: req.query.id,
  33. search: req.query.search,
  34. state: req.query.state,
  35. user: res.locals.oauth.token.User
  36. })
  37. return res.json({
  38. total: resultList.total,
  39. data: resultList.data.map(d => d.toFormattedUserJSON())
  40. })
  41. }