Browse Source

Improve search log output for unsupported queries

pull/7480/head
Thomas Kaul 1 month ago
parent
commit
8f88eab94c
  1. 7
      apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts
  2. 5
      apps/api/src/services/data-provider/data-provider.service.ts
  3. 4
      apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts
  4. 2
      libs/common/src/lib/config.ts
  5. 5
      libs/common/src/lib/helper.ts
  6. 9
      libs/ui/src/lib/assistant/assistant.component.ts

7
apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts

@ -17,7 +17,10 @@ import {
DERIVED_CURRENCIES
} from '@ghostfolio/common/config';
import { PROPERTY_DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS } from '@ghostfolio/common/config';
import { getAssetProfileIdentifier } from '@ghostfolio/common/helper';
import {
getAssetProfileIdentifier,
isValidSearchQuery
} from '@ghostfolio/common/helper';
import {
DataProviderGhostfolioAssetProfileResponse,
DataProviderHistoricalResponse,
@ -342,7 +345,7 @@ export class GhostfolioService {
query = query?.trim();
if (!query || query.length < 2) {
if (!isValidSearchQuery(query)) {
return results;
}

5
apps/api/src/services/data-provider/data-provider.service.ts

@ -20,7 +20,8 @@ import {
getCurrencyFromSymbol,
getStartOfUtcDate,
isCurrency,
isDerivedCurrency
isDerivedCurrency,
isValidSearchQuery
} from '@ghostfolio/common/helper';
import {
AssetProfileIdentifier,
@ -840,7 +841,7 @@ export class DataProviderService implements OnModuleInit {
query = query?.trim();
if (!query || query.length < 2) {
if (!isValidSearchQuery(query)) {
return { items: lookupItems };
}

4
apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts

@ -331,9 +331,7 @@ export class YahooFinanceService implements DataProviderInterface {
}
} catch (error) {
if (error?.name === 'BadRequestError') {
this.logger.warn(
`The search for "${query}" is not supported: ${error.message}`
);
this.logger.warn(`Could not search for "${query}": ${error.message}`);
} else {
this.logger.error(error);
}

2
libs/common/src/lib/config.ts

@ -287,6 +287,8 @@ export const REPLACE_NAME_PARTS = [
'Xtrackers (IE) Plc -'
];
export const SEARCH_QUERY_MINIMUM_LENGTH = 2;
export const SECTORS = [
'Basic Materials',
'Communication Services',

5
libs/common/src/lib/helper.ts

@ -41,6 +41,7 @@ import {
DERIVED_CURRENCIES,
ghostfolioFearAndGreedIndexSymbolCryptocurrencies,
ghostfolioFearAndGreedIndexSymbolStocks,
SEARCH_QUERY_MINIMUM_LENGTH,
TAG_ID_EXCLUDE_FROM_ANALYSIS
} from './config';
import {
@ -509,6 +510,10 @@ export function isRootCurrency(aCurrency: string) {
});
}
export function isValidSearchQuery(aQuery: string) {
return aQuery?.trim().length >= SEARCH_QUERY_MINIMUM_LENGTH;
}
export function parseDate(date: string): Date | undefined {
if (!date) {
return undefined;

9
libs/ui/src/lib/assistant/assistant.component.ts

@ -202,6 +202,11 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit {
this.searchFormControl.valueChanges
.pipe(
map((searchTerm) => {
return searchTerm?.trim();
}),
debounceTime(300),
distinctUntilChanged(),
tap(() => {
this.isLoading = {
accounts: true,
assetProfiles: true,
@ -216,11 +221,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit {
};
this.changeDetectorRef.markForCheck();
return searchTerm?.trim();
}),
debounceTime(300),
distinctUntilChanged(),
switchMap((searchTerm) => {
const results = {
accounts: [],

Loading…
Cancel
Save