Browse Source

Refactor search query

pull/5333/head
Thomas Kaul 2 weeks ago
parent
commit
fce1673efc
  1. 2
      apps/api/src/app/portfolio/portfolio.controller.ts
  2. 10
      apps/api/src/app/portfolio/portfolio.service.ts

2
apps/api/src/app/portfolio/portfolio.controller.ts

@ -413,6 +413,7 @@ export class PortfolioController {
filterByAssetClasses,
filterByDataSource,
filterByHoldingType,
filterBySearchQuery,
filterBySymbol,
filterByTags
});
@ -421,7 +422,6 @@ export class PortfolioController {
dateRange,
filters,
impersonationId,
query: filterBySearchQuery,
userId: this.request.user.id
});

10
apps/api/src/app/portfolio/portfolio.service.ts

@ -276,13 +276,11 @@ export class PortfolioService {
dateRange,
filters,
impersonationId,
query,
userId
}: {
dateRange: DateRange;
filters?: Filter[];
impersonationId: string;
query?: string;
userId: string;
}) {
userId = await this.getUserId(impersonationId, userId);
@ -295,13 +293,17 @@ export class PortfolioService {
let holdings = Object.values(holdingsMap);
if (query) {
const searchQuery = filters.find(({ type }) => {
return type === 'SEARCH_QUERY';
})?.id;
if (searchQuery) {
const fuse = new Fuse(holdings, {
keys: ['isin', 'name', 'symbol'],
threshold: 0.3
});
holdings = fuse.search(query).map(({ item }) => {
holdings = fuse.search(searchQuery).map(({ item }) => {
return item;
});
}

Loading…
Cancel
Save