Closed
Description
Hello,
@QueryParam('type') type: MyEnum
will always set type
to NaN
. Otherwise, doing @QueryParam('type', {type: OperationType}) type: OperationType
throws an error, since enums do not have constructors.
My current workaround is:
@UseBefore(RequestValidationUtils.isEnumMiddleware('type', MyEnum))
get(...)
and
import {Validator} from "class-validator";
export class RequestValidationUtils {
public static isEnumMiddleware(queryParam, entity): Function {
return (req, res, next): void => {
const validator: Validator = new Validator();
const queryParamValue = req.query[queryParam];
if (!queryParamValue || validator.isEnum(req.query[queryParam], entity)) {
next();
} else {
res.status(400).send('Bad request');
}
};
}
}
Thanks for the amazing work !