From ade691426e750c997cbddea55cb999e60bbdbbf9 Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 10 Mar 2022 21:24:42 +0100 Subject: [PATCH] Add logic for user that redeem the link. --- .../src/graphql/resolver/TransactionLinkResolver.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.ts b/backend/src/graphql/resolver/TransactionLinkResolver.ts index afcfe48b2..dece0ddc3 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.ts @@ -12,7 +12,7 @@ import { RIGHTS } from '@/auth/RIGHTS' import { randomBytes } from 'crypto' import { User } from '@model/User' import { calculateDecay } from '@/util/decay' -^ + // TODO: do not export, test it inside the resolver export const transactionLinkCode = (date: Date): string => { const time = date.getTime().toString(16) @@ -70,10 +70,17 @@ export class TransactionLinkResolver { @Authorized([RIGHTS.QUERY_TRANSACTION_LINK]) @Query(() => TransactionLink) - async queryTransactionLink(@Arg('code') code: string): Promise { + async queryTransactionLink( + @Args() { code, redeemedByUserId }: QueryTransactionLinkArgs, + ): Promise { const transactionLink = await dbTransactionLink.findOneOrFail({ code }) const userRepository = getCustomRepository(UserRepository) const user = await userRepository.findOneOrFail({ id: transactionLink.userId }) - return new TransactionLink(transactionLink, new User(user)) + let userRedeem = null + if (redeemedByUserId) { + const redeemedByUser = await userRepository.findOne({ id: redeemedByUserId }) + if (redeemedByUser) userRedeem = new User(redeemedByUser) + } + return new TransactionLink(transactionLink, new User(user), userRedeem) } }