diff --git a/backend/src/graphql/model/Transaction.ts b/backend/src/graphql/model/Transaction.ts index 50ca7d098..3334dea84 100644 --- a/backend/src/graphql/model/Transaction.ts +++ b/backend/src/graphql/model/Transaction.ts @@ -9,12 +9,7 @@ import { User } from './User' @ObjectType() export class Transaction { - constructor( - transaction: dbTransaction, - user: User, - linkedUser: User | null = null, - previuosBalance: Decimal = new Decimal(0), - ) { + constructor(transaction: dbTransaction, user: User, linkedUser: User | null = null) { this.id = transaction.id this.user = user this.previous = transaction.previous @@ -52,7 +47,10 @@ export class Transaction { this.linkId = transaction.contribution ? transaction.contribution.contributionLinkId : transaction.transactionLinkId || null - this.previousBalance = previuosBalance.toDecimalPlaces(2, Decimal.ROUND_DOWN) + this.previousBalance = + (transaction.previousTransaction && + transaction.previousTransaction.balance.toDecimalPlaces(2, Decimal.ROUND_DOWN)) || + new Decimal(0) } @Field(() => Int) diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index a968a9ebb..5db293373 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -286,14 +286,12 @@ export class TransactionResolver { } // transactions - userTransactions.forEach((userTransaction, idx) => { + userTransactions.forEach((userTransaction) => { const linkedUser = userTransaction.typeId === TransactionTypeId.CREATION ? communityUser : involvedUsers.find((u) => u.id === userTransaction.linkedUserId) - const previousBalance = - idx < userTransactions.length - 1 ? userTransactions[idx + 1].balance : new Decimal(0) - transactions.push(new Transaction(userTransaction, self, linkedUser, previousBalance)) + transactions.push(new Transaction(userTransaction, self, linkedUser)) }) logger.debug(`TransactionTypeId.CREATION: transactions=${transactions}`) diff --git a/backend/src/typeorm/repository/Transaction.ts b/backend/src/typeorm/repository/Transaction.ts index 61e87b3c8..0fb9f7ffe 100644 --- a/backend/src/typeorm/repository/Transaction.ts +++ b/backend/src/typeorm/repository/Transaction.ts @@ -2,7 +2,6 @@ import { EntityRepository, Repository } from '@dbTools/typeorm' import { Transaction } from '@entity/Transaction' import { Order } from '@enum/Order' -import { TransactionTypeId } from '@enum/TransactionTypeId' @EntityRepository(Transaction) export class TransactionRepository extends Repository { @@ -11,22 +10,15 @@ export class TransactionRepository extends Repository { limit: number, offset: number, order: Order, - onlyCreation?: boolean, ): Promise<[Transaction[], number]> { const query = this.createQueryBuilder('userTransaction') .leftJoinAndSelect( - 'userTransaction.contribution', - 'contribution', - 'userTransaction.id = contribution.transactionId', + 'userTransaction.previousTransaction', + 'transaction', + 'userTransaction.previous = transaction.id', ) .where('userTransaction.userId = :userId', { userId }) - if (onlyCreation) { - query.andWhere('userTransaction.typeId = :typeId', { - typeId: TransactionTypeId.CREATION, - }) - } - return query .orderBy('userTransaction.balanceDate', order) .limit(limit) diff --git a/backend/src/util/virtualTransactions.ts b/backend/src/util/virtualTransactions.ts index 9f4def31e..5d1fbbfd3 100644 --- a/backend/src/util/virtualTransactions.ts +++ b/backend/src/util/virtualTransactions.ts @@ -55,12 +55,7 @@ const virtualLinkTransaction = ( contribution: null, ...defaultModelFunctions, } - return new Transaction( - linkDbTransaction, - user, - null, - previousBalance.toDecimalPlaces(2, Decimal.ROUND_DOWN), - ) + return new Transaction(linkDbTransaction, user) } const virtualDecayTransaction = (