Browse Source

PR feedback

- revert ngx-papaparse back to papaparse
- sort parameters alphabetically
pull/654/head
Ronald Konjer 3 years ago
parent
commit
96fba0c5bb
  1. 4
      apps/client/src/app/pages/portfolio/transactions/transactions-page.component.ts
  2. 20
      apps/client/src/app/services/import-transactions.service.ts
  3. 1
      package.json

4
apps/client/src/app/pages/portfolio/transactions/transactions-page.component.ts

@ -203,9 +203,9 @@ export class TransactionsPageComponent implements OnDestroy, OnInit {
} else if (file.name.endsWith('.csv')) { } else if (file.name.endsWith('.csv')) {
try { try {
await this.importTransactionsService.importCsv({ await this.importTransactionsService.importCsv({
user: this.user,
fileContent, fileContent,
primaryDataSource: this.primaryDataSource primaryDataSource: this.primaryDataSource,
user: this.user,
}); });
this.handleImportSuccess(); this.handleImportSuccess();

20
apps/client/src/app/services/import-transactions.service.ts

@ -1,10 +1,10 @@
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto';
import { DataSource, Type } from '@prisma/client';
import { parse } from 'date-fns'; import { parse } from 'date-fns';
import { DataSource, Type } from '@prisma/client';
import { parse as csvToJson } from 'papaparse';
import { isNumber } from 'lodash'; import { isNumber } from 'lodash';
import { Papa } from 'ngx-papaparse';
import { EMPTY } from 'rxjs'; import { EMPTY } from 'rxjs';
import { catchError } from 'rxjs/operators'; import { catchError } from 'rxjs/operators';
import { User } from '@ghostfolio/common/interfaces'; import { User } from '@ghostfolio/common/interfaces';
@ -22,27 +22,25 @@ export class ImportTransactionsService {
private static TYPE_KEYS = ['action', 'type']; private static TYPE_KEYS = ['action', 'type'];
private static UNIT_PRICE_KEYS = ['price', 'unitprice', 'value']; private static UNIT_PRICE_KEYS = ['price', 'unitprice', 'value'];
public constructor(private http: HttpClient, private papa: Papa) {} public constructor(private http: HttpClient) {}
public async importCsv({ public async importCsv({
user,
fileContent, fileContent,
primaryDataSource primaryDataSource,
user
}: { }: {
user: User;
fileContent: string; fileContent: string;
primaryDataSource: DataSource; primaryDataSource: DataSource;
user: User;
}) { }) {
let content; const content = csvToJson(fileContent, {
this.papa.parse(fileContent, {
dynamicTyping: true, dynamicTyping: true,
header: true, header: true,
skipEmptyLines: true, skipEmptyLines: true,
complete: (parsedData) => { complete: (parsedData) => {
content = parsedData.data.filter((item) => item['date'] != null); parsedData.data.filter((item) => item['date'] != null);
} }
}); }).data;
const orders: CreateOrderDto[] = []; const orders: CreateOrderDto[] = [];
for (const [index, item] of content.entries()) { for (const [index, item] of content.entries()) {

1
package.json

@ -103,7 +103,6 @@
"ngx-markdown": "13.0.0", "ngx-markdown": "13.0.0",
"ngx-skeleton-loader": "2.9.1", "ngx-skeleton-loader": "2.9.1",
"ngx-stripe": "13.0.0", "ngx-stripe": "13.0.0",
"ngx-papaparse": "5.0.0",
"passport": "0.4.1", "passport": "0.4.1",
"passport-google-oauth20": "2.0.0", "passport-google-oauth20": "2.0.0",
"passport-jwt": "4.0.0", "passport-jwt": "4.0.0",

Loading…
Cancel
Save