mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 13:50:31 +00:00
27 lines
788 B
TypeScript
27 lines
788 B
TypeScript
import { Response, Request } from 'express';
|
|
import { matchedData, validationResult } from "express-validator";
|
|
import { mapKeys, camelCase, omit } from "lodash";
|
|
|
|
export default class BaseController {
|
|
|
|
matchedBodyData(req: Request, options: any) {
|
|
const data = matchedData(req, {
|
|
locations: ['body'],
|
|
includeOptionals: true,
|
|
...omit(options, ['locations']), // override any propery except locations.
|
|
});
|
|
return mapKeys(data, (v, k) => camelCase(k));
|
|
}
|
|
|
|
validationResult(req: Request, res: Response, next: NextFunction) {
|
|
const validationErrors = validationResult(req);
|
|
|
|
if (!validationErrors.isEmpty()) {
|
|
return res.boom.badData(null, {
|
|
code: 'validation_error',
|
|
...validationErrors,
|
|
});
|
|
}
|
|
next();
|
|
}
|
|
} |