transactionList query includes the total count of the pending transaction links

This commit is contained in:
Moriz Wahl 2022-03-14 08:23:08 +01:00
parent 3f7cdca4bf
commit 7f89fb5452
3 changed files with 12 additions and 3 deletions

View File

@ -9,12 +9,14 @@ export class TransactionList {
balance: Decimal,
transactions: Transaction[],
count: number,
linkCount: number,
balanceGDT?: number | null,
decayStartBlock: Date = CONFIG.DECAY_START_TIME,
) {
this.balance = balance
this.transactions = transactions
this.count = count
this.linkCount = linkCount
this.balanceGDT = balanceGDT || null
this.decayStartBlock = decayStartBlock
}
@ -25,6 +27,9 @@ export class TransactionList {
@Field(() => Number)
count: number
@Field(() => Number)
linkCount: number
@Field(() => Decimal)
balance: Decimal

View File

@ -170,7 +170,7 @@ export class TransactionResolver {
}
if (!lastTransaction) {
return new TransactionList(new Decimal(0), [], 0, balanceGDT)
return new TransactionList(new Decimal(0), [], 0, 0, balanceGDT)
}
// find transactions
@ -204,7 +204,7 @@ export class TransactionResolver {
const transactions: Transaction[] = []
const transactionLinkRepository = getCustomRepository(TransactionLinkRepository)
const { sumHoldAvailableAmount, sumAmount, lastDate, firstDate } =
const { sumHoldAvailableAmount, sumAmount, lastDate, firstDate, transactionLinkcount } =
await transactionLinkRepository.summary(user.id, now)
// decay & link transactions
@ -244,6 +244,7 @@ export class TransactionResolver {
),
transactions,
userTransactionsCount,
transactionLinkcount,
balanceGDT,
)
}

View File

@ -12,13 +12,15 @@ export class TransactionLinkRepository extends Repository<dbTransactionLink> {
sumAmount: Decimal
lastDate: Date | null
firstDate: Date | null
transactionLinkcount: number
}> {
const { sumHoldAvailableAmount, sumAmount, lastDate, firstDate } =
const { sumHoldAvailableAmount, sumAmount, lastDate, firstDate, count } =
await this.createQueryBuilder('transactionLinks')
.select('SUM(transactionLinks.holdAvailableAmount)', 'sumHoldAvailableAmount')
.addSelect('SUM(transactionLinks.amount)', 'sumAmount')
.addSelect('MAX(transactionLinks.validUntil)', 'lastDate')
.addSelect('MIN(transactionLinks.createdAt)', 'firstDate')
.addSelect('COUNT(*)', 'count')
.where('transactionLinks.userId = :userId', { userId })
.andWhere('transactionLinks.redeemedAt is NULL')
.andWhere('transactionLinks.validUntil > :date', { date })
@ -31,6 +33,7 @@ export class TransactionLinkRepository extends Repository<dbTransactionLink> {
sumAmount: sumAmount ? new Decimal(sumAmount) : new Decimal(0),
lastDate: lastDate || null,
firstDate: firstDate || null,
transactionLinkcount: count || 0,
}
}
}