@fdm-monster/server
Version:
FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.
55 lines (54 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "UserRoleService", {
enumerable: true,
get: function() {
return UserRoleService;
}
});
const _baseservice = require("./base.service");
const _userroleentity = require("../../entities/user-role.entity");
const _userroledto = require("../interfaces/user-role.dto");
const _typeorm = require("typeorm");
class UserRoleService extends (0, _baseservice.BaseService)(_userroleentity.UserRole, _userroledto.UserRoleDto) {
toDto(entity) {
return {
id: entity.id,
roleId: entity.roleId,
userId: entity.userId,
createdAt: entity.createdAt
};
}
async setUserRoles(userId, roleIds) {
const previousRoles = await this.listUserRoles(userId);
const previousIds = previousRoles.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: (0, _typeorm.In)(roleIds)
});
}
listByRoleId(roleId) {
return this.repository.findBy({
roleId
});
}
async listUserRoles(userId) {
return this.repository.findBy({
userId
});
}
}
//# sourceMappingURL=user-role.service.js.map