@beincom/dto
Version:
Share dto for all projects of Beincom
63 lines (62 loc) • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseInvitationActionLog = void 0;
const invitation_dto_1 = require("../../../invitation.dto");
const activity_log_base_use_case_dto_1 = require("../../activity-log-base-use-case.dto");
const enums_1 = require("../../enums");
class BaseInvitationActionLog extends activity_log_base_use_case_dto_1.ActivityLogBaseUseCase {
static toPayload(data) {
return {
useCase: this.useCase,
eventTime: Date.now(),
data,
};
}
static toDocument({ eventTime, data, }) {
const { id, mainId, actor, invitation } = data;
const isGroupType = data.invitation.targetType === invitation_dto_1.INVITATION_TARGET.GROUP;
return {
id,
mainId,
eventTime,
useCase: this.useCase,
eventType: this.eventType,
objectType: this.objectType,
actorId: actor ? actor.id : undefined,
communityId: invitation.communityId,
groupId: isGroupType ? invitation.targetId : undefined,
objectId: invitation.inviteeId,
data: {
actor,
invitation,
group: data.group,
groupSet: data.groupSet,
},
};
}
toObjectIds() {
const { actorId, data, groupId } = this.document;
const targetId = data.invitation.targetId;
return {
userIds: [actorId, data.invitation.inviterId, data.invitation.inviteeId].filter((id) => id),
groupIds: groupId ? [groupId] : [],
groupSetIds: data.invitation.targetType === invitation_dto_1.INVITATION_TARGET.GROUP_SET ? [targetId] : undefined,
};
}
toData(objectData) {
const { actorId, data } = this.document;
const isGroupType = data.invitation.targetType === invitation_dto_1.INVITATION_TARGET.GROUP;
const bindingTarget = {};
if (isGroupType) {
bindingTarget.group = data.group || objectData.groups[data.invitation.targetId];
}
else {
bindingTarget.groupSet = data.groupSet || objectData.groupSets[data.invitation.targetId];
}
return Object.assign(Object.assign(Object.assign({}, data), bindingTarget), { actor: objectData.users[actorId], inviter: objectData.users[data.invitation.inviterId], invitee: data.invitation.type === invitation_dto_1.INVITATION_TYPE.EMAIL
? { email: data.invitation.email }
: objectData.users[data.invitation.inviteeId] });
}
}
BaseInvitationActionLog.objectType = enums_1.ACTIVITY_OBJECT_TYPES.MEMBER;
exports.BaseInvitationActionLog = BaseInvitationActionLog;