Skip to content

Commit 2205f9c

Browse files
committed
add script to calculate afilations
1 parent 20fac26 commit 2205f9c

File tree

8 files changed

+38
-3
lines changed

8 files changed

+38
-3
lines changed

backend/src/services/member/memberOrganizationsService.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ export default class MemberOrganizationsService extends LoggerBase {
169169
memberId,
170170
[memberOrganizationToBeDeleted.organizationId],
171171
repositoryOptions,
172+
true,
172173
)
173174

174175
const result = await this.list(memberId)

services/apps/profiles_worker/src/activities/member/memberUpdate.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ export async function updateMemberAffiliations(input: MemberUpdateInput): Promis
2121
}
2222
}
2323

24-
export async function syncMember(memberId: string): Promise<void> {
24+
export async function syncMember(memberId: string, withAggs: boolean): Promise<void> {
2525
const syncApi = new SearchSyncApiClient({
2626
baseUrl: process.env['CROWD_SEARCH_SYNC_API_URL'],
2727
})
2828

29-
await syncApi.triggerMemberSync(memberId)
29+
await syncApi.triggerMemberSync(memberId, { withAggs })
3030
}

services/apps/profiles_worker/src/workflows/member/memberUpdate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export async function memberUpdate(input: MemberUpdateInput): Promise<void> {
2020
await updateMemberAffiliations(input)
2121
if (input.syncToOpensearch) {
2222
// sync member
23-
await syncMember(input.member.id)
23+
await syncMember(input.member.id, input.syncToOpensearch)
2424
// sync all member organizations
2525
const organizationIds = input.memberOrganizationIds || []
2626
for (const orgId of organizationIds) {

services/apps/script_executor_worker/src/activities.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
markEntitiesIndexed,
2828
syncMembersBatch,
2929
} from './activities/sync/member'
30+
import { calculateMemberAffiliations } from './activities/unlink-deleted-memberOrg-activities'
3031

3132
export {
3233
findMembersWithSameVerifiedEmailsInDifferentPlatforms,
@@ -48,4 +49,5 @@ export {
4849
getMembersForSync,
4950
deleteIndexedEntities,
5051
markEntitiesIndexed,
52+
calculateMemberAffiliations,
5153
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { runMemberAffiliationsUpdate } from '@crowd/data-access-layer/src/old/apps/profiles_worker'
2+
3+
import { svc } from '../../main'
4+
5+
export async function calculateMemberAffiliations(memberId: string): Promise<void> {
6+
try {
7+
await runMemberAffiliationsUpdate(svc.postgres.writer, svc.questdbSQL, svc.queue, memberId)
8+
} catch (err) {
9+
throw new Error(err)
10+
}
11+
}

services/apps/script_executor_worker/src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@ export interface ISyncMembersArgs {
3434
withAggs?: boolean
3535
testRun?: boolean
3636
}
37+
38+
export interface IUnlinkDeletedMemberOrgArgs {
39+
memberId: string
40+
}

services/apps/script_executor_worker/src/workflows.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { dissectMember } from './workflows/dissectMember'
22
import { findAndMergeMembersWithSamePlatformIdentitiesDifferentCapitalization } from './workflows/findAndMergeMembersWithSamePlatformIdentitiesDifferentCapitalization'
33
import { findAndMergeMembersWithSameVerifiedEmailsInDifferentPlatforms } from './workflows/findAndMergeMembersWithSameVerifiedEmailsInDifferentPlatforms'
44
import { fixOrgIdentitiesWithWrongUrls } from './workflows/fixOrgIdentitiesWithWrongUrls'
5+
import { recalculateAffiliations } from './workflows/recalculateAffiliations'
56
import { syncMembers } from './workflows/syncMembers'
67

78
export {
@@ -10,4 +11,5 @@ export {
1011
dissectMember,
1112
fixOrgIdentitiesWithWrongUrls,
1213
syncMembers,
14+
recalculateAffiliations,
1315
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { proxyActivities } from '@temporalio/workflow'
2+
3+
import * as activities from '../activities/unlink-deleted-memberOrg-activities'
4+
import { IUnlinkDeletedMemberOrgArgs } from '../types'
5+
6+
const activity = proxyActivities<typeof activities>({
7+
startToCloseTimeout: '45 minutes',
8+
retry: { maximumAttempts: 3, backoffCoefficient: 3 },
9+
})
10+
11+
export async function recalculateAffiliations(args: IUnlinkDeletedMemberOrgArgs): Promise<void> {
12+
await activity.calculateMemberAffiliations(args.memberId)
13+
14+
console.log('Recalculated affiliations for member: ', args.memberId)
15+
}

0 commit comments

Comments
 (0)