get previuos transaction from database

This commit is contained in:
Moriz Wahl 2023-04-03 18:42:17 +02:00
parent 95303c30e0
commit 1fdd2e1014
4 changed files with 11 additions and 28 deletions

View File

@ -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)

View File

@ -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}`)

View File

@ -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<Transaction> {
@ -11,22 +10,15 @@ export class TransactionRepository extends Repository<Transaction> {
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)

View File

@ -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 = (