From 7f89fb545229ace18fbf99780a2f253c745dc344 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 14 Mar 2022 08:23:08 +0100 Subject: [PATCH] transactionList query includes the total count of the pending transaction links --- backend/src/graphql/model/TransactionList.ts | 5 +++++ backend/src/graphql/resolver/TransactionResolver.ts | 5 +++-- backend/src/typeorm/repository/TransactionLink.ts | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/src/graphql/model/TransactionList.ts b/backend/src/graphql/model/TransactionList.ts index c34a594f5..9e8356747 100644 --- a/backend/src/graphql/model/TransactionList.ts +++ b/backend/src/graphql/model/TransactionList.ts @@ -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 diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index d2bfd7f28..b90bf46c7 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -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, ) } diff --git a/backend/src/typeorm/repository/TransactionLink.ts b/backend/src/typeorm/repository/TransactionLink.ts index 2ce937d8d..46926673a 100644 --- a/backend/src/typeorm/repository/TransactionLink.ts +++ b/backend/src/typeorm/repository/TransactionLink.ts @@ -12,13 +12,15 @@ export class TransactionLinkRepository extends Repository { 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 { sumAmount: sumAmount ? new Decimal(sumAmount) : new Decimal(0), lastDate: lastDate || null, firstDate: firstDate || null, + transactionLinkcount: count || 0, } } }