49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
|
import express from 'express'
|
||
|
import { AbuseModel } from '@server/models/abuse/abuse.js'
|
||
|
import {
|
||
|
abuseListForUserValidator,
|
||
|
abusesSortValidator,
|
||
|
asyncMiddleware,
|
||
|
authenticate,
|
||
|
paginationValidator,
|
||
|
setDefaultPagination,
|
||
|
setDefaultSort
|
||
|
} from '../../../middlewares/index.js'
|
||
|
|
||
|
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())
|
||
|
})
|
||
|
}
|