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 { constructor(@InjectRepository(User) userRepository: Repository) { super(userRepository.target, userRepository.manager, userRepository.queryRunner); } async findOneWithEmail(email: string): Promise { return this.findOne({ where: { email, }, relations: { roles: { permissions: true, }, }, }); } async findOneWithPhone(phone: string): Promise { return this.findOne({ where: { phone, }, relations: { roles: { permissions: true, }, }, }); } async findOneWithUserName(userName: string): Promise { return this.findOne({ where: { userName, }, relations: { roles: { permissions: true, }, }, }); } }