Browse Source

parse csv date in ISO format (#1303)

* Handle various date formats

* Update changelog

Co-authored-by: Thomas <4159106+dtslvr@users.noreply.github.com>
pull/1403/head
Mitchell 2 years ago
committed by GitHub
parent
commit
fca0a688b6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      CHANGELOG.md
  2. 12
      apps/client/src/app/services/import-transactions.service.ts

1
CHANGELOG.md

@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Added support for translated labels of asset and asset sub class - Added support for translated labels of asset and asset sub class
- Added support for dates in _ISO 8601_ date format (`YYYY-MM-DD`) in the activities import
### Fixed ### Fixed

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

@ -2,7 +2,7 @@ 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 { Account, DataSource, Type } from '@prisma/client'; import { Account, DataSource, Type } from '@prisma/client';
import { parse } from 'date-fns'; import { isMatch, parse, parseISO } from 'date-fns';
import { isFinite } from 'lodash'; import { isFinite } from 'lodash';
import { parse as csvToJson } from 'papaparse'; import { parse as csvToJson } from 'papaparse';
import { EMPTY } from 'rxjs'; import { EMPTY } from 'rxjs';
@ -153,13 +153,15 @@ export class ImportTransactionsService {
for (const key of ImportTransactionsService.DATE_KEYS) { for (const key of ImportTransactionsService.DATE_KEYS) {
if (item[key]) { if (item[key]) {
try { if (isMatch(item[key], 'dd-MM-yyyy')) {
date = parse(item[key], 'dd-MM-yyyy', new Date()).toISOString(); date = parse(item[key], 'dd-MM-yyyy', new Date()).toISOString();
} catch {} } else if (isMatch(item[key], 'dd/MM/yyyy')) {
try {
date = parse(item[key], 'dd/MM/yyyy', new Date()).toISOString(); date = parse(item[key], 'dd/MM/yyyy', new Date()).toISOString();
} else {
try {
date = parseISO(item[key]).toISOString();
} catch {} } catch {}
}
if (date) { if (date) {
return date; return date;

Loading…
Cancel
Save