diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts index 2c22f0c10f..5dd5f444ed 100644 --- a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts @@ -340,6 +340,8 @@ export class GhostfolioService { }: GetSearchParams): Promise { const results: LookupResponse = { items: [] }; + query = query?.trim(); + if (!query) { return results; } diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts index e8d5f5030b..cea8f0fc94 100644 --- a/apps/api/src/services/data-provider/data-provider.service.ts +++ b/apps/api/src/services/data-provider/data-provider.service.ts @@ -838,6 +838,8 @@ export class DataProviderService implements OnModuleInit { let lookupItems: LookupItem[] = []; const promises: Promise[] = []; + query = query?.trim(); + if (query?.length < 2) { return { items: lookupItems }; } diff --git a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts index 52fb5d5a81..818eb8fa4a 100644 --- a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts +++ b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts @@ -330,7 +330,13 @@ export class YahooFinanceService implements DataProviderInterface { }); } } catch (error) { - this.logger.error(error); + let message = error; + + if (error?.name === 'BadRequestError') { + message = `RequestError: The search for "${query}" is not supported`; + } + + this.logger.error(message); } return { items }; diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts index cab911ef2b..1626ff2f20 100644 --- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts +++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts @@ -41,6 +41,7 @@ import { debounceTime, distinctUntilChanged, filter, + map, switchMap } from 'rxjs/operators'; @@ -128,6 +129,9 @@ export class GfSymbolAutocompleteComponent this.control.valueChanges .pipe( + map((query) => { + return isString(query) ? query.trim() : query; + }), filter((query) => { if (query?.length === 0) { this.showDefaultOptions();