From 40b57db30ecc56529c9cb8195859e63b35e88bf8 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sat, 5 Feb 2022 10:28:28 +0100 Subject: [PATCH] Refactoring --- .../position-detail-dialog.component.ts | 20 +++---------------- .../transactions-page.component.ts | 17 ++-------------- libs/common/src/lib/helper.ts | 14 +++++++++++++ 3 files changed, 19 insertions(+), 32 deletions(-) diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts index f24dc9f17..02563afba 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts @@ -8,7 +8,7 @@ import { } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { DataService } from '@ghostfolio/client/services/data.service'; -import { DATE_FORMAT } from '@ghostfolio/common/helper'; +import { DATE_FORMAT, downloadAsFile } from '@ghostfolio/common/helper'; import { OrderWithAccount } from '@ghostfolio/common/types'; import { LineChartItem } from '@ghostfolio/ui/line-chart/interfaces/line-chart.interface'; import { AssetSubClass } from '@prisma/client'; @@ -194,9 +194,9 @@ export class PositionDetailDialog implements OnDestroy, OnInit { ) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((data) => { - this.downloadAsFile( + downloadAsFile( data, - `ghostfolio-export-${format( + `ghostfolio-export-${this.symbol}-${format( parseISO(data.meta.date), 'yyyyMMddHHmm' )}.json`, @@ -209,18 +209,4 @@ export class PositionDetailDialog implements OnDestroy, OnInit { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); } - - private downloadAsFile( - aContent: unknown, - aFileName: string, - aContentType: string - ) { - const a = document.createElement('a'); - const file = new Blob([JSON.stringify(aContent, undefined, ' ')], { - type: aContentType - }); - a.href = URL.createObjectURL(file); - a.download = aFileName; - a.click(); - } } diff --git a/apps/client/src/app/pages/portfolio/transactions/transactions-page.component.ts b/apps/client/src/app/pages/portfolio/transactions/transactions-page.component.ts index 7e1d1faf4..22b31e77d 100644 --- a/apps/client/src/app/pages/portfolio/transactions/transactions-page.component.ts +++ b/apps/client/src/app/pages/portfolio/transactions/transactions-page.component.ts @@ -10,6 +10,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { ImportTransactionsService } from '@ghostfolio/client/services/import-transactions.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { downloadAsFile } from '@ghostfolio/common/helper'; import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { DataSource, Order as OrderModel } from '@prisma/client'; @@ -151,7 +152,7 @@ export class TransactionsPageComponent implements OnDestroy, OnInit { .fetchExport() .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((data) => { - this.downloadAsFile( + downloadAsFile( data, `ghostfolio-export-${format( parseISO(data.meta.date), @@ -302,20 +303,6 @@ export class TransactionsPageComponent implements OnDestroy, OnInit { this.unsubscribeSubject.complete(); } - private downloadAsFile( - aContent: unknown, - aFileName: string, - aContentType: string - ) { - const a = document.createElement('a'); - const file = new Blob([JSON.stringify(aContent, undefined, ' ')], { - type: aContentType - }); - a.href = URL.createObjectURL(file); - a.download = aFileName; - a.click(); - } - private handleImportError({ error, orders }: { error: any; orders: any[] }) { this.snackBar.dismiss(); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 4fac26654..dbfc787f3 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -12,6 +12,20 @@ export function decodeDataSource(encodedDataSource: string) { return Buffer.from(encodedDataSource, 'hex').toString(); } +export function downloadAsFile( + aContent: unknown, + aFileName: string, + aContentType: string +) { + const a = document.createElement('a'); + const file = new Blob([JSON.stringify(aContent, undefined, ' ')], { + type: aContentType + }); + a.href = URL.createObjectURL(file); + a.download = aFileName; + a.click(); +} + export function encodeDataSource(aDataSource: DataSource) { return Buffer.from(aDataSource, 'utf-8').toString('hex'); }