Files
dsc-api/src/modules/users/repositories/users.repository.ts
T
2025-02-26 20:15:16 +03:30

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,
},
},
});
}
}