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

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

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

Loading…
Cancel
Save