UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.

41 lines (40 loc) 1.23 kB
import { BaseService } from "./base.service.js"; import { UserRole } from "../../entities/user-role.entity.js"; import { UserRoleDto } from "../interfaces/user-role.dto.js"; import { In } from "typeorm"; //#region src/services/orm/user-role.service.ts var UserRoleService = class extends BaseService(UserRole, UserRoleDto) { toDto(entity) { return { id: entity.id, roleId: entity.roleId, userId: entity.userId, createdAt: entity.createdAt }; } async setUserRoles(userId, roleIds) { const previousIds = (await this.listUserRoles(userId)).map((p) => p.roleId); const deletedRoleIds = previousIds.filter((p) => !roleIds.includes(p)); await this.deleteManyUserRoles(userId, deletedRoleIds); const createdRoleIds = roleIds.filter((r) => !previousIds.includes(r)); for (let roleId of createdRoleIds) await this.create({ roleId, userId }); } deleteManyUserRoles(userId, roleIds) { return this.repository.delete({ userId, roleId: In(roleIds) }); } listByRoleId(roleId) { return this.repository.findBy({ roleId }); } async listUserRoles(userId) { return this.repository.findBy({ userId }); } }; //#endregion export { UserRoleService }; //# sourceMappingURL=user-role.service.js.map