52 lines
1.1 KiB
TypeScript
Executable File
52 lines
1.1 KiB
TypeScript
Executable File
import { Injectable } from "@nestjs/common";
|
|
import { InjectRepository } from "@nestjs/typeorm";
|
|
import { Repository } from "typeorm";
|
|
|
|
import { User } from "../entities/user.entity";
|
|
|
|
@Injectable()
|
|
export class UserRepository extends Repository<User> {
|
|
constructor(@InjectRepository(User) userRepository: Repository<User>) {
|
|
super(userRepository.target, userRepository.manager, userRepository.queryRunner);
|
|
}
|
|
|
|
async findOneWithEmail(email: string): Promise<User | null> {
|
|
return this.findOne({
|
|
where: {
|
|
email,
|
|
},
|
|
relations: {
|
|
roles: {
|
|
permissions: true,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
async findOneWithPhone(phone: string): Promise<User | null> {
|
|
return this.findOne({
|
|
where: {
|
|
phone,
|
|
},
|
|
relations: {
|
|
roles: {
|
|
permissions: true,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
async findOneWithUserName(userName: string): Promise<User | null> {
|
|
return this.findOne({
|
|
where: {
|
|
userName,
|
|
},
|
|
relations: {
|
|
roles: {
|
|
permissions: true,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
}
|