@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
JavaScript
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