Here is my Pipe. When I send not correct body, validation work. But when I send correct body, I get Validation Error ([Nest] 15132 ERROR [ExceptionsHandler] Validation error
Error)
import { ArgumentMetadata, Injectable, PipeTransform } from '@nestjs/common'
import { plainToInstance } from 'class-transformer'
import { validate } from 'class-validator'
import { ValidationException } from 'src/exceptions/validation.exception'
@Injectable()
export class ValidationPipe implements PipeTransform<any> {
async transform(value: any, { metatype }: ArgumentMetadata): Promise<any> {
const body = plainToInstance(metatype, value)
const errors = await validate(body)
const badPassword = !/(?=.*[a-zA-Z])(?=.*d).+/.test(body.password)
if (errors.length > 0 || badPassword) {
const message = errors.map(
error =>
`${error.property} - ${Object.values(error.constraints).join(', ')}`
)
if (badPassword)
message.push(`password - should contains chars and numbers both`)
throw new ValidationException(message)
}
return value
}
}
1