import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { RolePermission } from '../entities/role-permission.entity'; import { In, Repository } from 'typeorm'; @Injectable() export class RolePermissionService { constructor( @InjectRepository(RolePermission) private readonly rolePermissionRepository: Repository, ) {} async findPermissionIdsByRoleIds(roleIds: string[]): Promise { const rolePermissions = await this.rolePermissionRepository.find({ where: { roleId: In(roleIds), }, }); return rolePermissions.map((rp) => rp.permissionId); } async addRolePermissions( roleId: string, permissionIds: string[], ): Promise { const rolePermissions = permissionIds.map((permissionId) => { const rolePermission = this.rolePermissionRepository.create({ roleId, permissionId, }); return rolePermission; }); await this.rolePermissionRepository.save(rolePermissions); } async deleteRolePermissions( roleId: string, permissionIds: string[], ): Promise { await this.rolePermissionRepository.delete({ roleId, permissionId: In(permissionIds), }); } }