@tomei/sso
Version:
Tomei SSO Package
178 lines • 9.47 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GroupObjectPrivilege = void 0;
const general_1 = require("@tomei/general");
const group_object_privilege_repository_1 = require("./group-object-privilege.repository");
const object_status_enum_1 = require("../../enum/object-status.enum");
const config_1 = require("@tomei/config");
const activity_history_1 = require("@tomei/activity-history");
class GroupObjectPrivilege extends general_1.ObjectBase {
get CreatedAt() {
return this._CreatedAt;
}
get UpdatedAt() {
return this._UpdatedAt;
}
get CreatedById() {
return this._CreatedById;
}
get UpdatedById() {
return this._UpdatedById;
}
constructor(GroupObjectPrivilegeAttr) {
super();
this.TableName = 'sso_GroupObjectPrivilege';
if (GroupObjectPrivilegeAttr) {
this.GroupObjectPrivilegeId =
GroupObjectPrivilegeAttr.GroupObjectPrivilegeId;
this.GroupCode = GroupObjectPrivilegeAttr.GroupCode;
this.SystemPrivilegeId = GroupObjectPrivilegeAttr.SystemPrivilegeId;
this.ObjectId = GroupObjectPrivilegeAttr.ObjectId;
this.ObjectType = GroupObjectPrivilegeAttr.ObjectType;
this.Status = GroupObjectPrivilegeAttr.Status;
this._CreatedAt = GroupObjectPrivilegeAttr.CreatedAt;
this._UpdatedAt = GroupObjectPrivilegeAttr.UpdatedAt;
this._CreatedById = GroupObjectPrivilegeAttr.CreatedById;
this._UpdatedById = GroupObjectPrivilegeAttr.UpdatedById;
}
}
static init(dbTransaction, GroupObjectPrivilegeId) {
return __awaiter(this, void 0, void 0, function* () {
try {
if (GroupObjectPrivilegeId) {
const GroupObjectPrivilegeAttr = yield this._Repository.findOne({
where: { GroupObjectPrivilegeId },
transaction: dbTransaction,
});
if (GroupObjectPrivilegeAttr) {
return new GroupObjectPrivilege(GroupObjectPrivilegeAttr.get({ plain: true }));
}
else {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg00', 'GroupObjectPrivilege not found');
}
}
return new GroupObjectPrivilege();
}
catch (error) {
throw error;
}
});
}
static create(loginUser, dbTransaction, groupObjectPrivilege) {
return __awaiter(this, void 0, void 0, function* () {
try {
const systemCode = config_1.ApplicationConfig.getComponentConfigValue('system-code');
const isPrivileged = yield loginUser.checkPrivileges(systemCode, 'GROUP_OBJECT_PRIVILEGE_CREATE');
if (!isPrivileged) {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupErrMsg01', 'You do not have the privilege to create Group Object Privilege');
}
if (!groupObjectPrivilege.GroupCode) {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg01', 'GroupCode is missing.');
}
if (!groupObjectPrivilege.SystemPrivilegeId) {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg02', 'SystemPrivilegeId is missing.');
}
if (!groupObjectPrivilege.ObjectId) {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg03', 'ObjectId is missing.');
}
if (!groupObjectPrivilege.ObjectType) {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg04', 'ObjectType is missing.');
}
const existingGroupObjectPrivilege = yield GroupObjectPrivilege._Repository.findOne({
where: {
GroupCode: groupObjectPrivilege.GroupCode,
SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId,
ObjectId: groupObjectPrivilege.ObjectId,
ObjectType: groupObjectPrivilege.ObjectType,
},
transaction: dbTransaction,
});
if (existingGroupObjectPrivilege) {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg05', 'Duplicate GroupObjectPrivilege found.');
}
const objectAttr = {
GroupCode: groupObjectPrivilege.GroupCode,
SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId,
ObjectId: groupObjectPrivilege.ObjectId,
ObjectType: groupObjectPrivilege.ObjectType,
Status: object_status_enum_1.ObjectStatus.ACTIVE,
CreatedById: loginUser.UserId,
CreatedAt: new Date(),
UpdatedById: loginUser.UserId,
UpdatedAt: new Date(),
};
const newGroupObjectPrivilege = new GroupObjectPrivilege(objectAttr);
const createdObject = yield GroupObjectPrivilege._Repository.create(newGroupObjectPrivilege, {
transaction: dbTransaction,
});
newGroupObjectPrivilege.GroupObjectPrivilegeId =
createdObject.GroupObjectPrivilegeId;
const EntityValueBefore = {};
const EntityValueAfter = objectAttr;
const activity = new activity_history_1.Activity();
activity.createId();
activity.Action = activity_history_1.ActionEnum.CREATE;
activity.Description = `Create GroupObjectPrivilege for (${newGroupObjectPrivilege.GroupCode})`;
activity.EntityType = 'GroupObjectPrivilege';
activity.EntityId =
newGroupObjectPrivilege.GroupObjectPrivilegeId.toString();
activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
yield activity.create(dbTransaction, loginUser.UserId);
return newGroupObjectPrivilege;
}
catch (error) {
throw error;
}
});
}
delete(loginUser, dbTransaction) {
return __awaiter(this, void 0, void 0, function* () {
try {
const systemCode = config_1.ApplicationConfig.getComponentConfigValue('system-code');
const isPrivileged = yield loginUser.checkPrivileges(systemCode, 'GROUP_OBJECT_PRIVILEGE_DELETE');
if (!isPrivileged) {
throw new general_1.ClassError('GroupObjectPrivilege', 'GroupErrMsg01', 'You do not have the privilege to delete Group Object Privilege');
}
yield GroupObjectPrivilege._Repository.delete(this.GroupObjectPrivilegeId, {
transaction: dbTransaction,
});
const EntityValueBefore = {
GroupCode: this.GroupCode,
SystemPrivilegeId: this.SystemPrivilegeId,
ObjectId: this.ObjectId,
ObjectType: this.ObjectType,
Status: this.Status,
CreatedById: this.CreatedById,
UpdatedById: this.UpdatedById,
};
const EntityValueAfter = {};
const activity = new activity_history_1.Activity();
activity.createId();
activity.Action = activity_history_1.ActionEnum.DELETE;
activity.Description = `Delete GroupObjectPrivilege ${this.GroupObjectPrivilegeId}`;
activity.EntityType = 'GroupObjectPrivilege';
activity.EntityId = this.GroupObjectPrivilegeId.toString();
activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
yield activity.create(dbTransaction, loginUser.UserId);
return this;
}
catch (error) {
throw error;
}
});
}
}
exports.GroupObjectPrivilege = GroupObjectPrivilege;
GroupObjectPrivilege._Repository = new group_object_privilege_repository_1.GroupObjectPrivilegeRepository();
//# sourceMappingURL=group-object-privilege.js.map