|
@@ -35,18 +35,24 @@ const lsxValidator = [
|
|
|
query('options.*').optional().isString(),
|
|
query('options.*').optional().isString(),
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
-const paramValidator = (req: Request, _: Response, next: NextFunction) => {
|
|
|
|
|
|
|
+const paramValidator = (req: Request, res: Response, next: NextFunction) => {
|
|
|
const errObjArray = validationResult(req);
|
|
const errObjArray = validationResult(req);
|
|
|
|
|
+
|
|
|
if (errObjArray.isEmpty()) {
|
|
if (errObjArray.isEmpty()) {
|
|
|
return next();
|
|
return next();
|
|
|
}
|
|
}
|
|
|
- return new Error('Invalid lsx parameter');
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const errs = errObjArray.array().map((err) => {
|
|
|
|
|
+ return new Error(`Invalid lsx parameter: ${err.param}: ${err.msg}`);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ res.status(400).json({ errors: errs.map(err => err.message) });
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
|
const middleware = (crowi: any, app: any): void => {
|
|
const middleware = (crowi: any, app: any): void => {
|
|
|
const loginRequired = crowi.require('../middlewares/login-required')(crowi, true, loginRequiredFallback);
|
|
const loginRequired = crowi.require('../middlewares/login-required')(crowi, true, loginRequiredFallback);
|
|
|
- const accessTokenParser = crowi.require('../middlewares/access-token-parser')(crowi);
|
|
|
|
|
|
|
+ const accessTokenParser = crowi.accessTokenParser;
|
|
|
|
|
|
|
|
app.get('/_api/lsx', accessTokenParser, loginRequired, lsxValidator, paramValidator, listPages);
|
|
app.get('/_api/lsx', accessTokenParser, loginRequired, lsxValidator, paramValidator, listPages);
|
|
|
};
|
|
};
|