Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 14 additions & 17 deletions backend/src/database/repositories/organizationRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,12 @@ class OrganizationRepository {
['revenueRangeMax', `(o."revenueRange"->>'max')::integer`],

// aggregated fields
['activityCount', 'osa."activityCount"'],
['memberCount', 'osa."memberCount"'],
['activeOn', 'osa."activeOn"'],
['activityCount', 'coalesce(osa."activityCount", 0)::integer'],
['memberCount', 'coalesce(osa."memberCount", 0)::integer'],
['activeOn', 'coalesce(osa."activeOn", \'{}\'::text[])'],
['joinedAt', 'osa."joinedAt"'],
['lastActive', 'osa."lastActive"'],
['avgContributorEngagement', 'osa."avgContributorEngagement"'],
['avgContributorEngagement', 'coalesce(osa."avgContributorEngagement", 0)::integer'],

// org fields for display
['logo', 'o."logo"'],
Expand Down Expand Up @@ -1682,7 +1682,7 @@ class OrganizationRepository {
FROM organizations o
${
withAggregates
? ` JOIN "organizationSegmentsAgg" osa ON osa."organizationId" = o.id AND ${
? ` LEFT JOIN "organizationSegmentsAgg" osa ON osa."organizationId" = o.id AND ${
segmentId ? `osa."segmentId" = $(segmentId)` : `osa."segmentId" IS NULL`
}`
: ''
Expand All @@ -1693,9 +1693,7 @@ class OrganizationRepository {
AND (${filterString})
`

const results = await Promise.all([
qx.select(
`
const query = `
${createQuery(
(function prepareFields(fields) {
return fields
Expand All @@ -1704,26 +1702,25 @@ class OrganizationRepository {
if (!mappedField) {
throw new Error400(options.language, `Invalid field: ${f}`)
}

return mappedField
return `${mappedField} as "${f}"`
})
.filter((f) => {
if (withAggregates) {
return true
}
return !f.startsWith('osa.')
return !f.includes('osa.')
})
.join(',\n')
})(fields),
)}
ORDER BY ${order}
ORDER BY ${order} NULLS LAST
LIMIT $(limit)
OFFSET $(offset)
`,
params,
),
qx.selectOne(createQuery('COUNT(*)'), params),
])
`

const countQuery = createQuery('COUNT(*)')

const results = await Promise.all([qx.select(query, params), qx.selectOne(countQuery, params)])

const rows = results[0]
const count = parseInt(results[1].count, 10)
Expand Down
2 changes: 0 additions & 2 deletions frontend/src/modules/member/config/saved-views/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@ import allMembers from './views/all-members';
import unaffiliated from './views/unaffiliated';
import toReview from './views/to-review';

import bot from './settings/bot/config';
import teamMember from './settings/teamMember/config';
import organization from './settings/organization/config';

export const memberSavedViews: SavedViewsConfig = {
defaultView: allMembers,
settings: {
teamMember,
bot,
organization,
},
defaultFilters: {
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ const allMembers: SavedView = {
order: 'descending',
},
settings: {
bot: 'exclude',
teamMember: 'exclude',
teamMember: 'include',
organization: 'exclude',
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ const toReview: SavedView = {
order: 'descending',
},
settings: {
bot: 'exclude',
teamMember: 'exclude',
teamMember: 'include',
organization: 'exclude',
},
reviewed: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ const unaffiliated: SavedView = {
order: 'descending',
},
settings: {
bot: 'exclude',
teamMember: 'exclude',
teamMember: 'include',
organization: 'exclude',
},
unaffiliated: {
Expand Down
3 changes: 0 additions & 3 deletions frontend/src/modules/organization/config/saved-views/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@ import { organizationDefaultFilterRenderer } from '@/shared/modules/filters/conf
import allOrganizations from './views/all-organizations';

import teamOrganization from './settings/teamOrganization/config';
import hasActivities from './settings/hasActivities/config';

export const organizationSavedViews: SavedViewsConfig = {
defaultView: allOrganizations,
settings: {
teamOrganization,
hasActivities,
},
defaultFilters: {
render: organizationDefaultFilterRenderer,
Expand Down Expand Up @@ -42,7 +40,6 @@ export const commonOrganizationSavedViews: SavedViewsConfig = {
},
},
settings: {
hasActivities,
},
defaultFilters: {
render: organizationDefaultFilterRenderer,
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ const allOrganizations: SavedView = {
order: 'descending',
},
settings: {
teamOrganization: 'exclude',
hasActivities: 'true',
teamOrganization: 'include',
},
},
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
import { IncludeEnum } from '@/modules/member/config/saved-views/settings/common/types/IncludeEnum';
import { DefaultFiltersSettings } from '@/shared/modules/saved-views/types/SavedViewsConfig';

export const memberDefaultFilterRenderer = ({ teamMember, bot }: DefaultFiltersSettings) => {
if (teamMember === IncludeEnum.EXCLUDE && bot === IncludeEnum.EXCLUDE) {
return 'Excl. team members and bots';
export const memberDefaultFilterRenderer = ({ teamMember }: DefaultFiltersSettings) => {
if (teamMember === IncludeEnum.EXCLUDE) {
return 'Excl. team members';
}

if (teamMember === IncludeEnum.EXCLUDE && bot === IncludeEnum.INCLUDE) {
return 'Incl. bots and excl. team members';
}

if (teamMember === IncludeEnum.INCLUDE && bot === IncludeEnum.EXCLUDE) {
return 'Incl. team members and excl. bots';
if (teamMember === IncludeEnum.INCLUDE) {
return 'Incl. team members';
}

if (teamMember === IncludeEnum.FILTER) {
return 'Team members only';
}

return 'Incl. team members and bots';
return '';
};
12 changes: 6 additions & 6 deletions services/libs/data-access-layer/src/members/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,13 @@ const QUERY_FILTER_COLUMN_MAP: Map<string, { name: string; queryable?: boolean }

// member agg fields
['lastActive', { name: 'msa."lastActive"' }],
['identityPlatforms', { name: 'msa."activeOn"' }],
['identityPlatforms', { name: 'coalesce(msa."activeOn", \'{}\'::text[])' }],
['lastEnriched', { name: 'm."lastEnriched"' }],
['score', { name: 'm.score' }],
['averageSentiment', { name: 'msa."averageSentiment"' }],
['activityTypes', { name: 'msa."activityTypes"' }],
['activeOn', { name: 'msa."activeOn"' }],
['activityCount', { name: 'msa."activityCount"' }],
['averageSentiment', { name: 'coalesce(msa."averageSentiment", 0)::decimal' }],
['activityTypes', { name: 'coalesce(msa."activityTypes", \'{}\'::text[])' }],
['activeOn', { name: 'coalesce(msa."activeOn", \'{}\'::text[])' }],
['activityCount', { name: 'coalesce(msa."activityCount", 0)::integer' }],

// others
['organizations', { name: 'mo."organizationId"', queryable: false }],
Expand Down Expand Up @@ -235,7 +235,7 @@ export async function queryMembersAdvanced(
FROM members m
${
withAggregates
? ` JOIN "memberSegmentsAgg" msa ON msa."memberId" = m.id AND msa."segmentId" = $(segmentId)`
? ` LEFT JOIN "memberSegmentsAgg" msa ON msa."memberId" = m.id AND msa."segmentId" = $(segmentId)`
: ''
}
LEFT JOIN member_orgs mo ON mo."memberId" = m.id
Expand Down
9 changes: 8 additions & 1 deletion services/libs/opensearch/src/service/member.sync.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,14 @@ export class MemberSyncService {
'syncMembersToOpensearchForMergeSuggestions',
)

return syncResults
if (syncResults) {
return syncResults
}

return {
membersSynced: 0,
documentsIndexed: 0,
}
}

// eslint-disable-next-line @typescript-eslint/no-explicit-any
Expand Down