Skip to content

Commit 82c510a

Browse files
committed
refactor: extract role transformation logic into a separate function for clarity
1 parent cb8db6b commit 82c510a

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

services/libs/data-access-layer/src/members/organizations.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,21 @@ export async function moveOrgsBetweenMembers(
600600
)
601601
}
602602

603+
function transformRoleToTargetEntity(
604+
role: IMemberOrganization,
605+
mergeStrat: IMergeStrat,
606+
): IMemberOrganization & { originalRoleId?: string } {
607+
return {
608+
title: role.title,
609+
dateStart: role.dateStart,
610+
dateEnd: role.dateEnd,
611+
memberId: mergeStrat.targetMemberId(role),
612+
organizationId: mergeStrat.targetOrganizationId(role),
613+
source: role.source,
614+
originalRoleId: role.id,
615+
}
616+
}
617+
603618
export async function mergeRoles(
604619
qx: QueryExecutor,
605620
primaryRoles: IMemberOrganization[],
@@ -633,20 +648,7 @@ export async function mergeRoles(
633648

634649
if (currentRoles.length === 0) {
635650
// no current role in org1, add the memberOrganization to org1
636-
637-
const transformedRole = {
638-
title: memberOrganization.title,
639-
dateStart: memberOrganization.dateStart,
640-
dateEnd: memberOrganization.dateEnd,
641-
memberId: mergeStrat.targetMemberId(memberOrganization),
642-
organizationId: mergeStrat.targetOrganizationId(memberOrganization),
643-
source: memberOrganization.source,
644-
originalRoleId: memberOrganization.id, // Track which secondary role this came from
645-
}
646-
647-
// Add transformed role to primary entity
648-
addRoles.push(transformedRole)
649-
// Remove the original role from secondary entity
651+
addRoles.push(transformRoleToTargetEntity(memberOrganization, mergeStrat))
650652
removeRoles.push(memberOrganization)
651653
} else if (currentRoles.length === 1) {
652654
const currentRole = currentRoles[0]

0 commit comments

Comments
 (0)