ohmyform/api/src/user/validators/EmailAlreadyInUse.ts
2019-08-30 17:58:19 +02:00

21 lines
613 B
TypeScript

import { ValidationArguments, ValidatorConstraint } from "class-validator"
import { Inject, Injectable } from "@nestjs/common"
import { UserService } from "../services/user.service"
@ValidatorConstraint({ name: 'EmailAlreadyInUse', async: true })
@Injectable()
export class EmailAlreadyInUse {
constructor(
@Inject('UserService') private readonly userService: UserService,
) {}
async validate(text: string) {
const user = await this.userService.findOneBy({email: text});
return !user;
}
defaultMessage(args: ValidationArguments) {
return 'User with this email already exists.';
}
}