Skip to content

Commit

Permalink
fix(condo): DOMA-10042 removed serverUtils and db-side sorting; searc…
Browse files Browse the repository at this point in the history
…hing name case-insensitive
  • Loading branch information
YEgorLu committed Sep 3, 2024
1 parent 52634f0 commit d46b9f1
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions apps/condo/domains/resident/schema/SuggestServiceProviderService.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,12 @@
* Generated by `createservice organization.SuggestServiceProviderService --type queries`
*/

const { pick, uniqBy } = require('lodash')
const { pick, uniqBy, sortBy } = require('lodash')

const { GQLCustomSchema } = require('@open-condo/keystone/schema')
const { GQLCustomSchema, find } = require('@open-condo/keystone/schema')

const { CONTEXT_FINISHED_STATUS } = require('@condo/domains/acquiring/constants/context')
const { AcquiringIntegrationContext } = require('@condo/domains/acquiring/utils/serverSchema')
const { MeterResourceOwner } = require('@condo/domains/meter/utils/serverSchema')
const { SERVICE_PROVIDER_TYPE } = require('@condo/domains/organization/constants/common')
const { Organization } = require('@condo/domains/organization/utils/serverSchema')
const access = require('@condo/domains/resident/access/SuggestServiceProviderService')
const { MAX_RESIDENT_SUGGEST_SERVICE_PROVIDER_CALLS_BY_WINDOW_SEC, RESIDENT_SUGGEST_SERVICE_PROVIDER_WINDOW_IN_SEC } = require('@condo/domains/resident/constants')
const { RESIDENT } = require('@condo/domains/user/constants/common')
Expand All @@ -29,20 +26,20 @@ const checkLimits = async (uniqueField) => {
const filterOrganizationsByAcquiringContextOrMeterResourceOwnership = async (context, organizations) => {
const organizationIds = [...new Set(organizations.map(organization => organization.id))]

const acquiringIntegrationContexts = await AcquiringIntegrationContext.getAll(context, {
const acquiringIntegrationContexts = await find('AcquiringIntegrationContext', {
organization: { id_in: organizationIds },
deletedAt: null,
status: CONTEXT_FINISHED_STATUS,
})

const meterResourceOwners = await MeterResourceOwner.getAll(context, {
const meterResourceOwners = await find('MeterResourceOwner', {
organization: { id_in: organizationIds },
deletedAt: null,
})

const organizationsForSuggest = new Set(
acquiringIntegrationContexts.map(context => context.organization.id)
.concat(meterResourceOwners.map(owner => owner.organization.id))
acquiringIntegrationContexts.map(context => context.organization)
.concat(meterResourceOwners.map(owner => owner.organization))
)

return organizations.filter(organization => organizationsForSuggest.has(organization.id))
Expand Down Expand Up @@ -71,21 +68,24 @@ const SuggestServiceProviderService = new GQLCustomSchema('SuggestServiceProvide
}

const { data: { search } } = args
if (!search) {
if (!search || search.length < 3) {
return []
}

const serviceProviders = await Organization.getAll(context, {
const serviceProviders = await find('Organization', {
OR: [
{ tin_starts_with: search.trim() },
{ name_contains: search.trim() },
{ name_contains_i: search.trim() },
],
deletedAt: null,
type: SERVICE_PROVIDER_TYPE,
}, { sortBy: ['name_ASC'] }) // 100 default limit
})

const serviceProvidersForSuggest = await filterOrganizationsByAcquiringContextOrMeterResourceOwnership(context, serviceProviders)
return uniqBy(serviceProvidersForSuggest, 'tin')
const result = uniqBy(serviceProvidersForSuggest, 'tin')
.map(serviceProvider => pick(serviceProvider, ['tin', 'name']))
sortBy(result, 'name')
return result
},
},
],
Expand Down

0 comments on commit d46b9f1

Please sign in to comment.