From 813cfa95c7f99e29a8ff5654f9a1f8f489980c38 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Wed, 30 Aug 2023 14:32:16 +0200 Subject: [PATCH] create virtual transaction for links also if all links of user already expired --- .../graphql/resolver/TransactionResolver.ts | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 9ec8ff7b3..c8f089d76 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -2,7 +2,7 @@ /* eslint-disable new-cap */ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { getConnection, In } from '@dbTools/typeorm' +import { getConnection, In, IsNull } from '@dbTools/typeorm' import { Transaction as dbTransaction } from '@entity/Transaction' import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink' import { User as dbUser } from '@entity/User' @@ -264,7 +264,28 @@ export class TransactionResolver { logger.debug(`transactions=${transactions}`) // virtual transaction for pending transaction-links sum - if (sumHoldAvailableAmount.greaterThan(0)) { + if (sumHoldAvailableAmount.isZero()) { + const linkCount = await dbTransactionLink.count({ + where: { + userId: user.id, + redeemedAt: IsNull(), + }, + }) + if (linkCount > 0) { + transactions.push( + virtualLinkTransaction( + lastTransaction.balance, + new Decimal(0), + new Decimal(0), + new Decimal(0), + now, + now, + self, + (userTransactions.length && userTransactions[0].balance) || new Decimal(0), + ), + ) + } + } else if (sumHoldAvailableAmount.greaterThan(0)) { logger.debug(`sumHoldAvailableAmount > 0: transactions=${transactions}`) transactions.push( virtualLinkTransaction(