Browse Source

Improve search by name

pull/6012/head
Thomas Kaul 4 weeks ago
parent
commit
1dd60a605b
  1. 28
      apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts

28
apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts

@ -41,6 +41,7 @@ import {
isSameDay, isSameDay,
parseISO parseISO
} from 'date-fns'; } from 'date-fns';
import { uniqBy } from 'lodash';
@Injectable() @Injectable()
export class FinancialModelingPrepService implements DataProviderInterface { export class FinancialModelingPrepService implements DataProviderInterface {
@ -549,14 +550,27 @@ export class FinancialModelingPrepService implements DataProviderInterface {
apikey: this.apiKey apikey: this.apiKey
}); });
const result = await fetch( const [nameResults, symbolResults] = await Promise.all([
`${this.getUrl({ version: 'stable' })}/search-symbol?${queryParams.toString()}`, fetch(
{ `${this.getUrl({ version: 'stable' })}/search-name?${queryParams.toString()}`,
signal: AbortSignal.timeout( {
this.configurationService.get('REQUEST_TIMEOUT') signal: AbortSignal.timeout(requestTimeout)
) }
).then((res) => res.json()),
fetch(
`${this.getUrl({ version: 'stable' })}/search-symbol?${queryParams.toString()}`,
{
signal: AbortSignal.timeout(requestTimeout)
}
).then((res) => res.json())
]);
const result = uniqBy(
[...nameResults, ...symbolResults],
({ exchange, symbol }) => {
return `${exchange}-${symbol}`;
} }
).then((res) => res.json()); );
items = result items = result
.filter(({ exchange, symbol }) => { .filter(({ exchange, symbol }) => {

Loading…
Cancel
Save