Skip to content

Commit 780ca32

Browse files
authored
fix: deduplicate memberOrgs in OpenSearch considering roles and periods (#2230)
1 parent a50dc9e commit 780ca32

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

services/libs/opensearch/src/service/member.sync.service.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,13 @@ export class MemberSyncService {
643643
member.activeOn = distinct(member.activeOn)
644644
member.activityTypes = distinct(member.activityTypes)
645645
member.tags = distinctBy(member.tags, (t) => t.id)
646-
member.organizations = distinctBy(member.organizations, (o) => o.id)
646+
// sometimes same organization appears multiple times with different roles or periods
647+
// so we distinctBy by taking organization id, title, dateStart, dateEnd
648+
member.organizations = distinctBy(
649+
member.organizations,
650+
(o) =>
651+
`${o.id}-${o.memberOrganizations?.title}-${o.memberOrganizations?.dateStart}-${o.memberOrganizations?.dateEnd}`,
652+
)
647653
member.contributions = distinctBy(member.contributions, (c) => c.id)
648654
member.affiliations = distinctBy(member.affiliations, (a) => a.id)
649655
member.notes = distinctBy(member.notes, (n) => n.id)

0 commit comments

Comments
 (0)