import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { EntityManager, Repository } from 'typeorm'; import { RoleEntity } from '../entities/role.entity'; @Injectable() export class RolesRepository { constructor( @InjectRepository(RoleEntity) private readonly repo: Repository, ) {} findByName( name: string, manager?: EntityManager, ): Promise { return (manager?.getRepository(RoleEntity) ?? this.repo).findOne({ where: { name }, }); } findById(id: string, manager?: EntityManager): Promise { return (manager?.getRepository(RoleEntity) ?? this.repo).findOne({ where: { id }, relations: { users: true, permissions: true }, }); } list(): Promise { return this.repo.find({ order: { name: 'ASC' }, relations: { users: true }, }); } save(role: RoleEntity, manager?: EntityManager): Promise { return (manager?.getRepository(RoleEntity) ?? this.repo).save(role); } remove(role: RoleEntity, manager?: EntityManager): Promise { return (manager?.getRepository(RoleEntity) ?? this.repo).remove(role); } }