1 import * as express from 'express'
2 import { getFormattedObjects } from '../../helpers/utils'
3 import { asyncMiddleware, paginationValidator, setDefaultSort, setDefaultPagination } from '../../middlewares'
4 import { accountsGetValidator, accountsSortValidator } from '../../middlewares/validators'
5 import { AccountModel } from '../../models/account/account'
7 const accountsRouter = express.Router()
9 accountsRouter.get('/',
11 accountsSortValidator,
14 asyncMiddleware(listAccounts)
17 accountsRouter.get('/:id',
18 asyncMiddleware(accountsGetValidator),
22 // ---------------------------------------------------------------------------
28 // ---------------------------------------------------------------------------
30 function getAccount (req: express.Request, res: express.Response, next: express.NextFunction) {
31 return res.json(res.locals.account.toFormattedJSON())
34 async function listAccounts (req: express.Request, res: express.Response, next: express.NextFunction) {
35 const resultList = await AccountModel.listForApi(req.query.start, req.query.count, req.query.sort)
37 return res.json(getFormattedObjects(resultList.data, resultList.total))