From b9dc65f123fcdbf67b540a92ccb70bcc8eecb47c Mon Sep 17 00:00:00 2001 From: Claus-Peter Huebner Date: Tue, 17 Oct 2023 14:37:50 +0200 Subject: [PATCH] correct store foreign user in case of different name or alias --- backend/src/graphql/resolver/TransactionResolver.ts | 2 +- .../graphql/resolver/util/processXComSendCoins.ts | 7 ++++--- .../src/graphql/resolver/util/storeForeignUser.ts | 13 ++++++++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 267f90596..1dbff7896 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -476,7 +476,7 @@ export class TransactionResolver { amount, memo, senderUser, - pendingResult.recipGradidoID, + pendingResult, ) logger.debug('processXComCommittingSendCoins result: ', committingResult) if (!committingResult.vote) { diff --git a/backend/src/graphql/resolver/util/processXComSendCoins.ts b/backend/src/graphql/resolver/util/processXComSendCoins.ts index 1afa7a1c0..6455bc36d 100644 --- a/backend/src/graphql/resolver/util/processXComSendCoins.ts +++ b/backend/src/graphql/resolver/util/processXComSendCoins.ts @@ -159,7 +159,7 @@ export async function processXComCommittingSendCoins( amount: Decimal, memo: string, sender: dbUser, - recipUuid: string, + recipient: SendCoinsResult, ): Promise { const sendCoinsResult = new SendCoinsResult() try { @@ -171,7 +171,7 @@ export async function processXComCommittingSendCoins( amount, memo, sender, - recipUuid, + recipient, ) // first find pending Tx with given parameters const pendingTx = await DbPendingTransaction.findOneBy({ @@ -180,7 +180,7 @@ export async function processXComCommittingSendCoins( userName: fullName(sender.firstName, sender.lastName), linkedUserCommunityUuid: receiverCom.communityUuid ?? CONFIG.FEDERATION_XCOM_RECEIVER_COMMUNITY_UUID, - linkedUserGradidoID: recipUuid, + linkedUserGradidoID: recipient.recipGradidoID ? recipient.recipGradidoID : undefined, typeId: TransactionTypeId.SEND, state: PendingTransactionState.NEW, balanceDate: creationDate, @@ -237,6 +237,7 @@ export async function processXComCommittingSendCoins( ) } sendCoinsResult.recipGradidoID = pendingTx.linkedUserGradidoID + sendCoinsResult.recipAlias = recipient.recipAlias } } catch (err) { logger.error(`Error in writing sender pending transaction: `, err) diff --git a/backend/src/graphql/resolver/util/storeForeignUser.ts b/backend/src/graphql/resolver/util/storeForeignUser.ts index 2462623ae..5942159b4 100644 --- a/backend/src/graphql/resolver/util/storeForeignUser.ts +++ b/backend/src/graphql/resolver/util/storeForeignUser.ts @@ -50,7 +50,18 @@ export async function storeForeignUser( user, committingResult, ) - return false + if (committingResult.recipFirstName !== null) { + user.firstName = committingResult.recipFirstName + } + if (committingResult.recipLastName !== null) { + user.lastName = committingResult.recipLastName + } + if (committingResult.recipAlias !== null) { + user.alias = committingResult.recipAlias + } + await DbUser.save(user) + logger.debug('update recipient successful.', user) + return true } else { logger.debug('X-Com: foreignUser still exists...:', user) return true