Как получить доступ к хранилищу typeorm в пользовательском валидаторе? - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь создать пользовательский валидатор , который имеет доступ к userRepository. У меня также установлена ​​typeorm-typedi-extensions.

Это не работает:

@ValidatorConstraint({ async: true})
@Service()
export class IsUserAlreadyExistConstraint implements ValidatorConstraintInterface {
  constructor(
    @InjectRepository(User) private readonly userRepository: Repository<User>
  ) {}

    async validate(email: any, args: ValidationArguments) {
      console.log({ email })
      console.log(this.userRepository)
      const user = await this.userRepository.findOne({ email })
      console.log({user});
      if (user) return false;
      return true;
    }
}

export function IsUserAlreadyExist(validationOptions?: ValidationOptions) {
   return function (object: Object, propertyName: string) {
        registerDecorator({
            target: object.constructor,
            propertyName: propertyName,
            options: validationOptions,
            constraints: [],
            validator: IsUserAlreadyExistConstraint
        });
   };
}
...