From 4301a652f433d342859ff96b4a5974d9210b16e5 Mon Sep 17 00:00:00 2001 From: Umberto Sgueglia Date: Thu, 6 Nov 2025 13:39:55 +0100 Subject: [PATCH 1/2] fix: revert fields from members --- .../data-access-layer/src/members/base.ts | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/services/libs/data-access-layer/src/members/base.ts b/services/libs/data-access-layer/src/members/base.ts index afdffa7a63..f959a710a7 100644 --- a/services/libs/data-access-layer/src/members/base.ts +++ b/services/libs/data-access-layer/src/members/base.ts @@ -6,6 +6,7 @@ import { RawQueryParser, generateUUIDv1, getProperDisplayName, + groupBy, } from '@crowd/common' import { formatSql, getDbInstance, prepareForModification } from '@crowd/database' import { getServiceChildLogger } from '@crowd/logging' @@ -32,6 +33,7 @@ import { getMemberAttributeSettings } from './attributeSettings' import { IDbMemberAttributeSetting, IDbMemberData } from './types' import { fetchManyMemberIdentities, fetchManyMemberOrgs, fetchManyMemberSegments } from '.' +import { findMaintainerRoles } from '../maintainers' /* eslint-disable @typescript-eslint/no-explicit-any */ @@ -108,6 +110,7 @@ export const MEMBER_INSERT_COLUMNS = [ const QUERY_FILTER_COLUMN_MAP: Map = new Map([ ['activityCount', { name: 'coalesce(msa."activityCount", 0)::integer' }], ['attributes', { name: 'm.attributes' }], + ['averageSentiment', { name: 'coalesce(msa."averageSentiment", 0)::decimal' }], ['displayName', { name: 'm."displayName"' }], ['id', { name: 'm.id' }], ['identityPlatforms', { name: 'coalesce(msa."activeOn", \'{}\'::text[])' }], @@ -116,8 +119,10 @@ const QUERY_FILTER_COLUMN_MAP: Map 'isOrganization' ->> 'default')::BOOLEAN, FALSE)` }, ], - ['activityCount', { name: 'coalesce(msa."activityCount", 0)::integer' }], + ['joinedAt', { name: 'm."joinedAt"' }], + ['lastEnrichedAt', { name: 'me."lastUpdatedAt"' }], ['organizations', { name: 'mo."organizationId"', queryable: false }], + ['score', { name: 'm.score' }], ['segmentId', { name: 'msa."segmentId"' }], ]) @@ -495,6 +500,23 @@ export async function queryMembersAdvanced( }) } + if (include.maintainers) { + const maintainerRoles = await findMaintainerRoles(qx, memberIds) + const segmentIds = uniq(maintainerRoles.map((m) => m.segmentId)) + const segmentsInfo = await fetchManySegments(qx, segmentIds) + + const groupedMaintainers = groupBy(maintainerRoles, (m) => m.memberId) + rows.forEach((member) => { + member.maintainerRoles = (groupedMaintainers.get(member.id) || []).map((role) => { + const segmentInfo = segmentsInfo.find((s) => s.id === role.segmentId) + return { + ...role, + segmentName: segmentInfo?.name, + } + }) + }) + } + return { rows, count, limit, offset } } From 3ea4178d52f7a770319334e45b7c785efb343c76 Mon Sep 17 00:00:00 2001 From: Umberto Sgueglia Date: Thu, 6 Nov 2025 13:44:44 +0100 Subject: [PATCH 2/2] fix: lint --- services/libs/data-access-layer/src/members/base.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/libs/data-access-layer/src/members/base.ts b/services/libs/data-access-layer/src/members/base.ts index f959a710a7..07950fe411 100644 --- a/services/libs/data-access-layer/src/members/base.ts +++ b/services/libs/data-access-layer/src/members/base.ts @@ -20,6 +20,7 @@ import { } from '@crowd/types' import { findManyLfxMemberships } from '../lfx_memberships' +import { findMaintainerRoles } from '../maintainers' import { IDbMemberCreateData, IDbMemberUpdateData, @@ -33,7 +34,6 @@ import { getMemberAttributeSettings } from './attributeSettings' import { IDbMemberAttributeSetting, IDbMemberData } from './types' import { fetchManyMemberIdentities, fetchManyMemberOrgs, fetchManyMemberSegments } from '.' -import { findMaintainerRoles } from '../maintainers' /* eslint-disable @typescript-eslint/no-explicit-any */ @@ -500,7 +500,7 @@ export async function queryMembersAdvanced( }) } - if (include.maintainers) { + if (include.maintainers) { const maintainerRoles = await findMaintainerRoles(qx, memberIds) const segmentIds = uniq(maintainerRoles.map((m) => m.segmentId)) const segmentsInfo = await fetchManySegments(qx, segmentIds)