-
Notifications
You must be signed in to change notification settings - Fork 7
ClassValidator
Cláudio Medeiros edited this page Oct 5, 2022
·
1 revision
Adiciona os decorators ao class-validator.
Crie um arquivo iscpf.decorator.ts e adicione em seu diretório de validadores, exemplo:
src/validators/iscpf.decorator.ts
ou em qualquer outro diretório a seu critério.
// src/validators/iscpf.decorator.ts
import {
registerDecorator,
ValidationOptions,
ValidatorConstraint,
ValidatorConstraintInterface,
ValidationArguments,
} from 'class-validator'
// Importa o isCPF do validation-br
import { isCPF } from 'validation-br'
@ValidatorConstraint({ async: false })
export class IsCpfConstraint implements ValidatorConstraintInterface {
validate(cpf: any, args: ValidationArguments) {
return isCPF(cpf)
}
defaultMessage() {
return 'CPF inválido'
}
}
// Registra o decorator
export function IsCpf(validationOptions?: ValidationOptions) {
return function (object: any, propertyName: string) {
registerDecorator({
target: object.constructor,
propertyName: propertyName,
options: validationOptions,
constraints: [],
validator: IsCpfConstraint,
})
}
}
Forma de uso no DTO
import { IsCpf } from '../../validators/iscpf.decorator'
export class CreateUserDto {
@IsString()
@IsNotEmpty()
@IsCpf()
cpf: string
}