Files
keyvault/api/src/shared/service/system.helper.service.ts
Bastian Wagner c8c2ee18cb refactoring
2025-01-03 11:00:02 +01:00

38 lines
1.2 KiB
TypeScript

import { Injectable } from "@nestjs/common";
import { User, Cylinder, Key } from "src/model/entitites";
import { KeySystemRepository, CylinderRepository, KeyRepository } from "src/model/repositories";
@Injectable()
export class ManageHelperService {
constructor(
private readonly systemRepository: KeySystemRepository,
private readonly cylinderRepository: CylinderRepository,
private readonly keyRepo: KeyRepository,
) {}
/**
* Gibt den Cylinder zurück wenn der user ein Manager ist. Gibt null zurück wenn er nicht existiert oder der
* User den Cylinder nicht managen darf.
* @param user User
* @param id ID vom Cylinder
* @returns Cylinder | null
*/
async getCylinderIfUserCanManage(user: User, id: string, relations: string[] = ['keys', 'system']): Promise<Cylinder> {
const cylinder = await this.cylinderRepository.findOne({
where: { id: id, system: { managers: { id: user.id } } },
relations: relations,
});
return cylinder;
}
async getUsersKeys(user: User): Promise<Key[]> {
const keys = await this.keyRepo.find({
where: { cylinder: { system: { managers: { id: user.id } } } },
relations: ['cylinder', 'cylinder.system', 'customer'],
});
return keys;
}
}