31 lines
791 B
TypeScript
31 lines
791 B
TypeScript
|
import { Injectable } from "@nestjs/common";
|
||
|
import { Model } from 'mongoose';
|
||
|
import { User, UserDocument } from '../schemas/user.schema';
|
||
|
import { InjectModel } from '@nestjs/mongoose';
|
||
|
import { ValidationArguments, ValidatorConstraint, ValidatorConstraintInterface } from "class-validator";
|
||
|
|
||
|
|
||
|
@ValidatorConstraint({ name: 'UserExists', async: true })
|
||
|
@Injectable()
|
||
|
export class UserExistsRule implements ValidatorConstraintInterface {
|
||
|
constructor(
|
||
|
@InjectModel(User.name) private readonly userModel: Model<UserDocument>,
|
||
|
) {}
|
||
|
|
||
|
async validate(value: string) {
|
||
|
try {
|
||
|
await this.userModel.find({email: value});
|
||
|
} catch (e) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
defaultMessage(args: ValidationArguments) {
|
||
|
return `User doesn't exist`;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|