Browse Source

Export extended by account balances

pull/4390/head
csehatt741 6 months ago
committed by Thomas Kaul
parent
commit
c570bf6572
  1. 13
      apps/api/src/app/account/account.service.ts
  2. 11
      apps/api/src/app/export/export.service.ts
  3. 4
      libs/common/src/lib/interfaces/export.interface.ts

13
apps/api/src/app/account/account.service.ts

@ -7,7 +7,13 @@ import { Filter } from '@ghostfolio/common/interfaces';
import { Injectable } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { Account, Order, Platform, Prisma } from '@prisma/client';
import {
Account,
AccountBalance,
Order,
Platform,
Prisma
} from '@prisma/client';
import { Big } from 'big.js';
import { format } from 'date-fns';
import { groupBy } from 'lodash';
@ -56,13 +62,14 @@ export class AccountService {
orderBy?: Prisma.AccountOrderByWithRelationInput;
}): Promise<
(Account & {
balances?: AccountBalance[];
Order?: Order[];
Platform?: Platform;
})[]
> {
const { include = {}, skip, take, cursor, where, orderBy } = params;
include.balances = { orderBy: { date: 'desc' }, take: 1 };
include.balances = { orderBy: { date: 'desc' } };
const accounts = await this.prismaService.account.findMany({
cursor,
@ -76,8 +83,6 @@ export class AccountService {
return accounts.map((account) => {
account = { ...account, balance: account.balances[0]?.value ?? 0 };
delete account.balances;
return account;
});
}

11
apps/api/src/app/export/export.service.ts

@ -41,6 +41,7 @@ export class ExportService {
).map(
({
balance,
balances,
comment,
currency,
id,
@ -55,6 +56,7 @@ export class ExportService {
return {
balance,
balances,
comment,
currency,
id,
@ -94,7 +96,14 @@ export class ExportService {
return {
meta: { date: new Date().toISOString(), version: environment.version },
accounts,
accounts: accounts.map(({ balances, ...account }) => {
return {
balances: balances.map(({ date, value }) => {
return { date: date.toISOString(), value };
}),
...account
};
}),
platforms: Object.values(platformsMap),
tags,
activities: activities.map(

4
libs/common/src/lib/interfaces/export.interface.ts

@ -1,7 +1,9 @@
import { Account, Order, Platform, Tag } from '@prisma/client';
export interface Export {
accounts: Omit<Account, 'createdAt' | 'updatedAt' | 'userId'>[];
accounts: (Omit<Account, 'createdAt' | 'updatedAt' | 'userId'> & {
balances: { date: string; value: number }[];
})[];
activities: (Omit<
Order,
| 'accountUserId'

Loading…
Cancel
Save