Browse Source

code review fixes

pull/5329/head
Attila Cseh 2 weeks ago
parent
commit
346342dd45
  1. 5
      CHANGELOG.md
  2. 2
      apps/api/src/app/account/account.controller.ts
  3. 13
      apps/api/src/app/portfolio/portfolio.service.ts

5
CHANGELOG.md

@ -9,10 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Extended the import functionality by tags - Introduced fuzzy search for the accounts endpoint
- Introduced fuzzy search for the accounts
- Improved the language localization for Polish (`pl`)
- Improved the language localization for Spanish (`es`)
## 2.189.0 - 2025-08-05 ## 2.189.0 - 2025-08-05

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

@ -97,12 +97,12 @@ export class AccountController {
const filters = this.apiService.buildFiltersFromQueryParams({ const filters = this.apiService.buildFiltersFromQueryParams({
filterByDataSource, filterByDataSource,
filterBySearchQuery,
filterBySymbol filterBySymbol
}); });
return this.portfolioService.getAccountsWithAggregations({ return this.portfolioService.getAccountsWithAggregations({
filters, filters,
query: filterBySearchQuery,
userId: impersonationUserId || this.request.user.id, userId: impersonationUserId || this.request.user.id,
withExcludedAccounts: true withExcludedAccounts: true
}); });

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

@ -86,13 +86,14 @@ import {
parseISO, parseISO,
set set
} from 'date-fns'; } from 'date-fns';
import Fuse from 'fuse.js';
import { isEmpty } from 'lodash'; import { isEmpty } from 'lodash';
import { PortfolioCalculator } from './calculator/portfolio-calculator'; import { PortfolioCalculator } from './calculator/portfolio-calculator';
import { PortfolioCalculatorFactory } from './calculator/portfolio-calculator.factory'; import { PortfolioCalculatorFactory } from './calculator/portfolio-calculator.factory';
import { RulesService } from './rules.service'; import { RulesService } from './rules.service';
const Fuse = require('fuse.js');
const asiaPacificMarkets = require('../../assets/countries/asia-pacific-markets.json'); const asiaPacificMarkets = require('../../assets/countries/asia-pacific-markets.json');
const developedMarkets = require('../../assets/countries/developed-markets.json'); const developedMarkets = require('../../assets/countries/developed-markets.json');
const emergingMarkets = require('../../assets/countries/emerging-markets.json'); const emergingMarkets = require('../../assets/countries/emerging-markets.json');
@ -212,12 +213,10 @@ export class PortfolioService {
public async getAccountsWithAggregations({ public async getAccountsWithAggregations({
filters, filters,
query,
userId, userId,
withExcludedAccounts = false withExcludedAccounts = false
}: { }: {
filters?: Filter[]; filters?: Filter[];
query?: string;
userId: string; userId: string;
withExcludedAccounts?: boolean; withExcludedAccounts?: boolean;
}): Promise<AccountsResponse> { }): Promise<AccountsResponse> {
@ -227,13 +226,17 @@ export class PortfolioService {
withExcludedAccounts withExcludedAccounts
}); });
if (query) { const searchQuery = filters.find(({ type }) => {
return type === 'SEARCH_QUERY';
})?.id;
if (searchQuery) {
const fuse = new Fuse(accounts, { const fuse = new Fuse(accounts, {
keys: ['name', 'platform.name'], keys: ['name', 'platform.name'],
threshold: 0.3 threshold: 0.3
}); });
accounts = fuse.search(query).map(({ item }) => { accounts = fuse.search(searchQuery).map(({ item }) => {
return item; return item;
}); });
} }

Loading…
Cancel
Save