Skip to content

Commit 8644e84

Browse files
committed
add temp table to track processed stuff
1 parent f1da02e commit 8644e84

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed

services/apps/script_executor_worker/src/activities/fix-deleted-member-org-affilations/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
import { runMemberAffiliationsUpdate } from '@crowd/data-access-layer/src/old/apps/profiles_worker'
77
import ActivityRepository from '@crowd/data-access-layer/src/old/apps/script_executor_worker/activity.repo'
88
import MemberRepository from '@crowd/data-access-layer/src/old/apps/script_executor_worker/member.repo'
9+
import TempRepository from '@crowd/data-access-layer/src/old/apps/script_executor_worker/temp.repo'
910

1011
import { svc } from '../../main'
1112

@@ -50,3 +51,11 @@ export async function calculateMemberAffiliations(memberId: string): Promise<voi
5051
export async function addOrgIdToRedisCache(orgId: string): Promise<void> {
5152
await svc.redis.sAdd('organizationIdsForAggComputation', orgId)
5253
}
54+
55+
export async function markMemberOrgAffiliationAsProcessed(
56+
memberId: string,
57+
organizationId: string,
58+
): Promise<void> {
59+
const repo = new TempRepository(svc.postgres.writer.connection())
60+
await repo.markMemberOrgAffiliationAsProcessed(memberId, organizationId)
61+
}

services/apps/script_executor_worker/src/workflows/fixDeletedMemberOrgAffilations.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ export async function fixDeletedMemberOrgAffilations(
3535
// 2. Check if they have activity in questDb
3636
const activityCount = await activity.getActivities(memberId, organizationId)
3737

38+
console.log(
39+
`Found ${activityCount} activities for member ${memberId} and org ${organizationId}`,
40+
)
41+
3842
// 2.1 If no activities found, we need to get and insert them
3943
if (activityCount === 0) {
4044
console.log(
@@ -52,8 +56,11 @@ export async function fixDeletedMemberOrgAffilations(
5256
await syncActivity.syncMembersBatch([memberId], true)
5357

5458
// 5. Add organizationId to redisCache for sync
55-
console.log(`Adding org ${organizationId} to redisCache for sync`)
59+
console.log(`Adding org ${organizationId} to redisCache`)
5660
await activity.addOrgIdToRedisCache(organizationId)
61+
62+
// 6. Mark member-org affiliation as processed
63+
await activity.markMemberOrgAffiliationAsProcessed(memberId, organizationId)
5764
}
5865

5966
if (args.testRun) {

services/libs/data-access-layer/src/old/apps/script_executor_worker/member.repo.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,16 @@ class MemberRepository {
179179
// Finds activities where:
180180
// 1. Member had a work experience (now deleted)
181181
// 2. Member has NO active work experience at same org
182+
// 3. Member-Org pair hasn't been processed yet
182183
const query = `
183184
select distinct a."memberId", a."organizationId"
184185
from activities a
186+
left join "processedMemberOrgAffiliations" p on
187+
p."memberId" = a."memberId"
188+
and p."organizationId" = a."organizationId"
185189
where a."updatedAt" < $(date)
186190
and a."organizationId" is not null
191+
and p."memberId" is null
187192
and exists (
188193
select 1
189194
from "memberOrganizations" mo
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { DbConnection, DbTransaction } from '@crowd/database'
2+
3+
class TempRepository {
4+
constructor(private readonly connection: DbConnection | DbTransaction) {}
5+
6+
async markMemberOrgAffiliationAsProcessed(
7+
memberId: string,
8+
organizationId: string,
9+
): Promise<void> {
10+
await this.connection.none(
11+
`insert into "processedMemberOrgAffiliations" ("memberId", "organizationId") values ($(memberId), $(organizationId))`,
12+
{
13+
memberId,
14+
organizationId,
15+
},
16+
)
17+
}
18+
}
19+
20+
export default TempRepository

0 commit comments

Comments
 (0)