48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
import express from 'express'
|
|
import { AbuseModel } from '@server/models/abuse/abuse'
|
|
import {
|
|
abuseListForUserValidator,
|
|
abusesSortValidator,
|
|
asyncMiddleware,
|
|
authenticate,
|
|
paginationValidator,
|
|
setDefaultPagination,
|
|
setDefaultSort
|
|
} from '../../../middlewares'
|
|
|
|
const myAbusesRouter = express.Router()
|
|
|
|
myAbusesRouter.get('/me/abuses',
|
|
authenticate,
|
|
paginationValidator,
|
|
abusesSortValidator,
|
|
setDefaultSort,
|
|
setDefaultPagination,
|
|
abuseListForUserValidator,
|
|
asyncMiddleware(listMyAbuses)
|
|
)
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
export {
|
|
myAbusesRouter
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
async function listMyAbuses (req: express.Request, res: express.Response) {
|
|
const resultList = await AbuseModel.listForUserApi({
|
|
start: req.query.start,
|
|
count: req.query.count,
|
|
sort: req.query.sort,
|
|
id: req.query.id,
|
|
search: req.query.search,
|
|
state: req.query.state,
|
|
user: res.locals.oauth.token.User
|
|
})
|
|
|
|
return res.json({
|
|
total: resultList.total,
|
|
data: resultList.data.map(d => d.toFormattedUserJSON())
|
|
})
|
|
}
|