Skip to content

Commit 32352b1

Browse files
authored
fix: preserve manually changed member attributes (#3096)
1 parent 41e0014 commit 32352b1

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

services/apps/data_sink_worker/src/service/member.service.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,22 @@ export default class MemberService extends LoggerBase {
604604
let attributes: Record<string, unknown> | undefined
605605
if (member.attributes) {
606606
const temp = mergeWith({}, dbMember.attributes, member.attributes)
607+
608+
const manuallyChangedFields: string[] = dbMember.manuallyChangedFields || []
609+
if (manuallyChangedFields.length > 0) {
610+
const attrColumn = 'attributes'
611+
const manuallyChangedAttributes = (dbMember.manuallyChangedFields || [])
612+
.filter((f) => f.startsWith(attrColumn))
613+
.map((f) => f.substring(attrColumn.length))
614+
615+
// Preserve manually changed attributes
616+
for (const key of manuallyChangedAttributes) {
617+
if (dbMember.attributes[key] !== undefined) {
618+
temp[key] = dbMember.attributes[key]
619+
}
620+
}
621+
}
622+
607623
if (!isEqual(temp, dbMember.attributes)) {
608624
attributes = temp
609625
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ export interface IDbMember {
77
joinedAt: string
88
attributes: Record<string, unknown>
99
reach: Partial<Record<PlatformType | 'total', number>>
10+
manuallyChangedFields?: string[]
1011
}
1112

1213
let getMemberColumnSet: DbColumnSet
1314
export function getSelectMemberColumnSet(instance: DbInstance): DbColumnSet {
1415
if (getMemberColumnSet) return getMemberColumnSet
1516

1617
getMemberColumnSet = new instance.helpers.ColumnSet(
17-
['id', 'score', 'joinedAt', 'reach', 'attributes', 'displayName'],
18+
['id', 'score', 'joinedAt', 'reach', 'attributes', 'displayName', 'manuallyChangedFields'],
1819
{
1920
table: {
2021
table: 'members',

0 commit comments

Comments
 (0)