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')) {
try {
await this.importTransactionsService.importCsv({
user: this.user,
fileContent,
primaryDataSource: this.primaryDataSource
primaryDataSource: this.primaryDataSource,
user: this.user,
});
this.handleImportSuccess();

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

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

1
package.json

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

Loading…
Cancel
Save