File

apps/api/src/user/is-user-already-exist.validator.ts

Index

Methods

Constructor

constructor(userRepository: Repository<UserEntity>)
Parameters :
Name Type Optional
userRepository Repository<UserEntity> No

Methods

defaultMessage
defaultMessage()
Returns : string
Async validate
validate(email: string)
Parameters :
Name Type Optional
email string No
Returns : Promise<boolean>
import { Injectable } from '@nestjs/common'
import { InjectRepository } from '@nestjs/typeorm'
import {
  ValidatorConstraint,
  ValidatorConstraintInterface
} from 'class-validator'
import { Repository } from 'typeorm'
import { UserEntity } from '../entities/user.entity'

@ValidatorConstraint({ name: 'isUserAlreadyExist', async: true })
@Injectable()
export class IsUserAlreadyExist implements ValidatorConstraintInterface {
  constructor(
    @InjectRepository(UserEntity)
    private readonly userRepository: Repository<UserEntity>
  ) {}

  async validate(email: string): Promise<boolean> {
    const user = await this.userRepository.findOneBy({ email })

    return user === null || user === undefined
  }

  defaultMessage(): string {
    return 'The email «$value» is already register.'
  }
}

results matching ""

    No results matching ""