From bfba633b7831802343105fc8c22be73fadff7cf2 Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 10 Mar 2022 21:52:49 +0100 Subject: [PATCH] Change the logic to store the redeemer in transactionLink table. --- .../graphql/resolver/TransactionLinkResolver.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.ts b/backend/src/graphql/resolver/TransactionLinkResolver.ts index 9cc10f165..a681d773a 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.ts @@ -78,9 +78,22 @@ export class TransactionLinkResolver { const userRepository = getCustomRepository(UserRepository) const user = await userRepository.findOneOrFail({ id: transactionLink.userId }) let userRedeem = null - if (redeemUserId) { + if (redeemUserId && !transactionLink.redeemedBy) { const redeemedByUser = await userRepository.findOne({ id: redeemUserId }) - if (redeemedByUser) userRedeem = new User(redeemedByUser) + if (!redeemedByUser) { + throw new Error('Unable to find user that redeem the link') + } + userRedeem = new User(redeemedByUser) + transactionLink.redeemedBy = userRedeem.id + await dbTransactionLink.save(transactionLink).catch(() => { + throw new Error('Unable to save transaction link') + }) + } else if (transactionLink.redeemedBy) { + const redeemedByUser = await userRepository.findOne({ id: redeemUserId }) + if (!redeemedByUser) { + throw new Error('Unable to find user that has redeemed the link') + } + userRedeem = new User(redeemedByUser) } return new TransactionLink(transactionLink, new User(user), userRedeem) }