UNPKG

@beincom/dto

Version:

Share dto for all projects of Beincom

63 lines (62 loc) 2.76 kB
"use strict"; 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;