@beincom/dto
Version:
Share dto for all projects of Beincom
33 lines (32 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllObjectIdFromLogs = void 0;
const index_1 = require("../index");
function getAllObjectIdFromLogs(logs) {
const setOfUserIds = new Set();
const setOfCommunityIds = new Set();
const setOfGroupIds = new Set();
const setOfBadgeIds = new Set();
const setOfGroupSetIds = new Set();
for (const log of logs) {
const useCase = log.useCase;
const useCaseClass = index_1.ActivityLogUseCaseClassesMap.get(useCase);
if (useCaseClass) {
const instance = new useCaseClass(log);
const { userIds = [], groupIds = [], badgeIds = [], communityIds = [], groupSetIds = [], } = instance.toObjectIds();
userIds.forEach((id) => id && setOfUserIds.add(id));
groupIds.forEach((id) => id && setOfGroupIds.add(id));
groupSetIds.forEach((id) => id && setOfGroupSetIds.add(id));
badgeIds.forEach((id) => id && setOfBadgeIds.add(id));
communityIds.forEach((id) => id && setOfCommunityIds.add(id));
}
}
return {
userIds: Array.from(setOfUserIds),
groupIds: Array.from(setOfGroupIds),
badgeIds: Array.from(setOfBadgeIds),
communityIds: Array.from(setOfCommunityIds),
groupSetIds: Array.from(setOfGroupSetIds),
};
}
exports.getAllObjectIdFromLogs = getAllObjectIdFromLogs;