Skip to content

Commit 39fe82b

Browse files
committed
refactor: extract source rank logic into a separate func for clarity and reuse
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
1 parent 7325fa5 commit 39fe82b

2 files changed

Lines changed: 5 additions & 11 deletions

File tree

services/libs/common/src/member.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ export const calculateReach = (oldReach: any, newReach: any): { total: number }
8282
return out
8383
}
8484

85+
/**
86+
* Lower rank wins when multiple member-organization sources overlap.
87+
*/
8588
export function getMemberOrganizationSourceRank(source: string | null | undefined): number {
8689
if (source === OrganizationSource.UI) return 0
8790
if (source === OrganizationSource.EMAIL_DOMAIN) return 1

services/libs/common_services/src/services/common.member.service.ts

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
calculateReach,
1414
getEarliestValidDate,
1515
getLongestDateRange,
16+
getMemberOrganizationSourceRank,
1617
mergeObjects,
1718
safeObjectMerge,
1819
} from '@crowd/common'
@@ -51,7 +52,6 @@ import { IWorkExperienceData } from '@crowd/data-access-layer/src/old/apps/data_
5152
import { addOrgsToSegments } from '@crowd/data-access-layer/src/organizations'
5253
import { Logger, LoggerBase } from '@crowd/logging'
5354
import { Client as TemporalClient, WorkflowIdReusePolicy } from '@crowd/temporal'
54-
import { OrganizationSource } from '@crowd/types'
5555
import {
5656
MergeActionState,
5757
MergeActionStep,
@@ -224,20 +224,11 @@ export class CommonMemberService extends LoggerBase {
224224
return primaryEmployment.organizationId
225225
}
226226

227-
// Filter by source priority
228-
// Source rank: ui > email-domain > enrichment-* > Other
229-
const rankSource = (source?: string) => {
230-
if (source === OrganizationSource.UI) return 0
231-
if (source === OrganizationSource.EMAIL_DOMAIN) return 1
232-
if (source?.startsWith('enrichment-')) return 2
233-
return 3
234-
}
235-
236227
let bestRank = 4
237228
let highestPrioritySourceExperiences: IWorkExperienceData[] = []
238229

239230
for (const exp of experiences) {
240-
const rank = rankSource(exp.source)
231+
const rank = getMemberOrganizationSourceRank(exp.source)
241232
if (rank < bestRank) {
242233
bestRank = rank
243234
highestPrioritySourceExperiences = [exp]

0 commit comments

Comments
 (0)