From cedcf9ea945b1f7477ded5bc27d4b02652765820 Mon Sep 17 00:00:00 2001 From: Brandon Wortman Date: Mon, 2 Dec 2024 15:21:30 -0500 Subject: [PATCH] Reuse fetchSymbolItem() from DataService and use exposed DATA_SOURCE_IMPORT from dataService.fetchInfo() #2288 --- .../app/services/import-activities.service.ts | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/apps/client/src/app/services/import-activities.service.ts b/apps/client/src/app/services/import-activities.service.ts index 0805b0d19..e94ecf32c 100644 --- a/apps/client/src/app/services/import-activities.service.ts +++ b/apps/client/src/app/services/import-activities.service.ts @@ -1,7 +1,7 @@ import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; -import { SymbolItem } from '@ghostfolio/api/app/symbol/interfaces/symbol-item.interface'; +import { DataService } from '@ghostfolio/client/services/data.service'; import { parseDate as parseDateHelper } from '@ghostfolio/common/helper'; import { HttpClient } from '@angular/common/http'; @@ -36,7 +36,10 @@ export class ImportActivitiesService { private warnings: string[] = []; - public constructor(private http: HttpClient) {} + public constructor( + private dataService: DataService, + private http: HttpClient + ) {} public async importCsv({ fileContent, @@ -222,10 +225,10 @@ export class ImportActivitiesService { // If no currency in CSV, make an API request to get symbol data const symbol = this.parseSymbol({ content, index, item }); - const dataSource = this.parseDataSource({ item }) ?? DataSource.YAHOO; + const dataSource = this.parseDataSource({ item }); return firstValueFrom( - this.http.get(`/api/v1/symbol/${dataSource}/${symbol}`).pipe( + this.dataService.fetchSymbolItem({ dataSource, symbol }).pipe( map(({ currency }) => { if (currency) { console.warn( @@ -260,7 +263,15 @@ export class ImportActivitiesService { } } - return undefined; + // If no data source specified, check the type + const type = this.parseType({ index: 0, item }); + if (type === 'ITEM' || type === 'LIABILITY') { + return DataSource.MANUAL; + } + + // Use default data source from info + const info = this.dataService.fetchInfo(); + return info.defaultDataSource; } private parseDate({