Files
boilerplate/apps/backend/src/roles/repositories/roles.repository.ts
Bastian Wagner 543e8273a7 initial
2026-07-16 09:49:22 +02:00

40 lines
1.0 KiB
TypeScript

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<RoleEntity>,
) {}
findByName(
name: string,
manager?: EntityManager,
): Promise<RoleEntity | null> {
return (manager?.getRepository(RoleEntity) ?? this.repo).findOne({
where: { name },
});
}
findById(id: string): Promise<RoleEntity | null> {
return this.repo.findOne({ where: { id }, relations: { users: true } });
}
list(): Promise<RoleEntity[]> {
return this.repo.find({
order: { name: 'ASC' },
relations: { users: true },
});
}
save(role: RoleEntity, manager?: EntityManager): Promise<RoleEntity> {
return (manager?.getRepository(RoleEntity) ?? this.repo).save(role);
}
remove(role: RoleEntity): Promise<RoleEntity> {
return this.repo.remove(role);
}
}