Feature/add default market price to scraper configuration (#762)

* Add default market price to scraper configuration

* Update changelog
pull/763/head
Thomas Kaul 2 years ago committed by GitHub
parent 30411b1502
commit 32fb3551dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Added the attribute `defaultMarketPrice` to the scraper configuration to improve the support for bonds
- Added a hover effect to the table style
### Fixed

@ -13,7 +13,7 @@ import { Injectable, Logger } from '@nestjs/common';
import { DataSource, SymbolProfile } from '@prisma/client';
import * as bent from 'bent';
import * as cheerio from 'cheerio';
import { format } from 'date-fns';
import { addDays, format, isBefore } from 'date-fns';
@Injectable()
export class GhostfolioScraperApiService implements DataProviderInterface {
@ -50,9 +50,27 @@ export class GhostfolioScraperApiService implements DataProviderInterface {
const [symbolProfile] = await this.symbolProfileService.getSymbolProfiles(
[symbol]
);
const { selector, url } = symbolProfile.scraperConfiguration;
const { defaultMarketPrice, selector, url } =
symbolProfile.scraperConfiguration;
if (defaultMarketPrice) {
const historical: {
[symbol: string]: { [date: string]: IDataProviderHistoricalResponse };
} = {
[symbol]: {}
};
let date = from;
while (isBefore(date, to)) {
historical[symbol][format(date, DATE_FORMAT)] = {
marketPrice: defaultMarketPrice
};
date = addDays(date, 1);
}
if (selector === undefined || url === undefined) {
return historical;
} else if (selector === undefined || url === undefined) {
return {};
}

@ -1,4 +1,5 @@
export interface ScraperConfiguration {
defaultMarketPrice?: number;
selector: string;
url: string;
}

@ -79,6 +79,7 @@ export class SymbolProfileService {
if (scraperConfiguration) {
return {
defaultMarketPrice: scraperConfiguration.defaultMarketPrice as number,
selector: scraperConfiguration.selector as string,
url: scraperConfiguration.url as string
};

Loading…
Cancel
Save