Browse Source
Feature/extend export by platforms (#4360)
* Extend export by platforms
* Update changelog
pull/4372/head
Sayed Murtadha Ahmed
4 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
28 additions and
2 deletions
-
CHANGELOG.md
-
apps/api/src/app/export/export.service.ts
-
libs/common/src/lib/interfaces/export.interface.ts
|
|
@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 |
|
|
|
|
|
|
|
### Added |
|
|
|
|
|
|
|
- Extended the export functionality by the platforms |
|
|
|
- Extended the _Trackinsight_ data enhancer for asset profile data by `cusip` |
|
|
|
- Added _Storybook_ to the build process |
|
|
|
|
|
|
|
|
|
@ -5,6 +5,7 @@ import { TagService } from '@ghostfolio/api/services/tag/tag.service'; |
|
|
|
import { Filter, Export } from '@ghostfolio/common/interfaces'; |
|
|
|
|
|
|
|
import { Injectable } from '@nestjs/common'; |
|
|
|
import { Platform } from '@prisma/client'; |
|
|
|
|
|
|
|
@Injectable() |
|
|
|
export class ExportService { |
|
|
@ -25,15 +26,37 @@ export class ExportService { |
|
|
|
userCurrency: string; |
|
|
|
userId: string; |
|
|
|
}): Promise<Export> { |
|
|
|
const platforms: Platform[] = []; |
|
|
|
|
|
|
|
const accounts = ( |
|
|
|
await this.accountService.accounts({ |
|
|
|
include: { |
|
|
|
Platform: true |
|
|
|
}, |
|
|
|
orderBy: { |
|
|
|
name: 'asc' |
|
|
|
}, |
|
|
|
where: { userId } |
|
|
|
}) |
|
|
|
).map( |
|
|
|
({ balance, comment, currency, id, isExcluded, name, platformId }) => { |
|
|
|
({ |
|
|
|
balance, |
|
|
|
comment, |
|
|
|
currency, |
|
|
|
id, |
|
|
|
isExcluded, |
|
|
|
name, |
|
|
|
platformId, |
|
|
|
Platform: platform |
|
|
|
}) => { |
|
|
|
if ( |
|
|
|
!platforms.some(({ id: currentPlatformId }) => { |
|
|
|
return currentPlatformId === platform.id; |
|
|
|
}) |
|
|
|
) { |
|
|
|
platforms.push(platform); |
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
balance, |
|
|
|
comment, |
|
|
@ -76,6 +99,7 @@ export class ExportService { |
|
|
|
return { |
|
|
|
meta: { date: new Date().toISOString(), version: environment.version }, |
|
|
|
accounts, |
|
|
|
platforms, |
|
|
|
tags, |
|
|
|
activities: activities.map( |
|
|
|
({ |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { Account, Order, Tag } from '@prisma/client'; |
|
|
|
import { Account, Order, Platform, Tag } from '@prisma/client'; |
|
|
|
|
|
|
|
export interface Export { |
|
|
|
accounts: Omit<Account, 'createdAt' | 'updatedAt' | 'userId'>[]; |
|
|
@ -16,6 +16,7 @@ export interface Export { |
|
|
|
date: string; |
|
|
|
version: string; |
|
|
|
}; |
|
|
|
platforms: Platform[]; |
|
|
|
tags: Omit<Tag, 'userId'>[]; |
|
|
|
user: { settings: { currency: string } }; |
|
|
|
} |
|
|
|