diff --git a/backend/jest.config.js b/backend/jest.config.js index 8b322d76c..656265bc7 100644 --- a/backend/jest.config.js +++ b/backend/jest.config.js @@ -7,7 +7,7 @@ module.exports = { collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!src/seeds/**', '!build/**'], coverageThreshold: { global: { - lines: 85, + lines: 88, }, }, setupFiles: ['/test/testSetup.ts'], diff --git a/backend/src/federation/client/1_0/SendCoinsClient.ts b/backend/src/federation/client/1_0/SendCoinsClient.ts index fe22d036c..c96961103 100644 --- a/backend/src/federation/client/1_0/SendCoinsClient.ts +++ b/backend/src/federation/client/1_0/SendCoinsClient.ts @@ -48,7 +48,11 @@ export class SendCoinsClient { // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment result.recipGradidoID = data.voteForSendCoins.recipGradidoID // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment - result.recipName = data.voteForSendCoins.recipName + result.recipFirstName = data.voteForSendCoins.recipFirstName + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment + result.recipLastName = data.voteForSendCoins.recipLastName + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment + result.recipAlias = data.voteForSendCoins.recipAlias logger.debug('X-Com: voteForSendCoins successful with result=', result) return result } catch (err) { diff --git a/backend/src/federation/client/1_0/model/SendCoinsResult.ts b/backend/src/federation/client/1_0/model/SendCoinsResult.ts index 930d22ff5..8fc21305f 100644 --- a/backend/src/federation/client/1_0/model/SendCoinsResult.ts +++ b/backend/src/federation/client/1_0/model/SendCoinsResult.ts @@ -13,5 +13,11 @@ export class SendCoinsResult { recipGradidoID: string | null @Field(() => String, { nullable: true }) - recipName: string | null + recipFirstName: string | null + + @Field(() => String, { nullable: true }) + recipLastName: string | null + + @Field(() => String, { nullable: true }) + recipAlias: string | null } diff --git a/backend/src/federation/client/1_0/query/voteForSendCoins.ts b/backend/src/federation/client/1_0/query/voteForSendCoins.ts index a5456bec7..d2550eb1a 100644 --- a/backend/src/federation/client/1_0/query/voteForSendCoins.ts +++ b/backend/src/federation/client/1_0/query/voteForSendCoins.ts @@ -5,37 +5,9 @@ export const voteForSendCoins = gql` voteForSendCoins(data: $args) { vote recipGradidoID - recipName + recipFirstName + recipLastName + recipAlias } } ` - -/* - mutation ( - $recipientCommunityUuid: String! - $recipientUserIdentifier: String! - $creationDate: String! - $amount: Decimal! - $memo: String! - $senderCommunityUuid: String! - $senderUserUuid: String! - $senderUserName: String! - ) { - voteForSendCoins( - data: { - recipientCommunityUuid: $recipientCommunityUuid - recipientUserIdentifier: $recipientUserIdentifier - creationDate: $creationDate - amount: $amount - memo: $memo - senderCommunityUuid: $senderCommunityUuid - senderUserUuid: $senderUserUuid - senderUserName: $senderUserName - } - ) { - vote - recipGradidoID - recipName - } - } -*/ diff --git a/backend/src/graphql/resolver/TransactionResolver.test.ts b/backend/src/graphql/resolver/TransactionResolver.test.ts index e115387cc..0bb05ca76 100644 --- a/backend/src/graphql/resolver/TransactionResolver.test.ts +++ b/backend/src/graphql/resolver/TransactionResolver.test.ts @@ -34,7 +34,6 @@ import { bobBaumeister } from '@/seeds/users/bob-baumeister' import { garrickOllivander } from '@/seeds/users/garrick-ollivander' import { peterLustig } from '@/seeds/users/peter-lustig' import { stephenHawking } from '@/seeds/users/stephen-hawking' -import { fullName } from '@/util/utilities' let mutate: ApolloServerTestClient['mutate'], con: Connection let query: ApolloServerTestClient['query'] @@ -618,18 +617,20 @@ describe('send coins', () => { jest .spyOn(SendCoinsClient.prototype, 'voteForSendCoins') .mockImplementation(async (args: SendCoinsArgs): Promise => { - // console.log('mock of voteForSendCoins...', args) + logger.debug('mock of voteForSendCoins...', args) return Promise.resolve({ vote: true, - recipName: fullName(peter.firstName, peter.lastName), + recipFirstName: peter.firstName, + recipLastName: peter.lastName, recipGradidoID: args.recipientUserIdentifier, + recipAlias: peter.alias, }) }) jest .spyOn(SendCoinsClient.prototype, 'settleSendCoins') .mockImplementation(async (args: SendCoinsArgs): Promise => { - // console.log('mock of settleSendCoins...', args) + logger.debug('mock of settleSendCoins...', args) return Promise.resolve(true) }) diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 990939119..66a889798 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -258,7 +258,7 @@ export class TransactionResolver { const remoteUser = new User(null) remoteUser.gradidoID = transaction.linkedUserGradidoID remoteUser.firstName = transaction.linkedUserName - remoteUser.lastName = 'GradidoID: ' + transaction.linkedUserGradidoID + remoteUser.lastName = '(GradidoID: ' + transaction.linkedUserGradidoID + ')' involvedRemoteUsers.push(remoteUser) } }) diff --git a/backend/src/graphql/resolver/util/processXComSendCoins.ts b/backend/src/graphql/resolver/util/processXComSendCoins.ts index 10efe2736..af6826bd1 100644 --- a/backend/src/graphql/resolver/util/processXComSendCoins.ts +++ b/backend/src/graphql/resolver/util/processXComSendCoins.ts @@ -104,8 +104,8 @@ export async function processXComPendingSendCoins( if (voteResult.recipGradidoID) { pendingTx.linkedUserGradidoID = voteResult.recipGradidoID } - if (voteResult.recipName) { - pendingTx.linkedUserName = voteResult.recipName + if (voteResult.recipFirstName && voteResult.recipLastName) { + pendingTx.linkedUserName = fullName(voteResult.recipFirstName, voteResult.recipLastName) } pendingTx.memo = memo pendingTx.previous = senderBalance ? senderBalance.lastTransactionId : null @@ -224,7 +224,16 @@ export async function processXComCommittingSendCoins( pendingTx, ) if (sendCoinsResult.vote) { - sendCoinsResult.recipName = pendingTx.linkedUserName + if (pendingTx.linkedUserName) { + sendCoinsResult.recipFirstName = pendingTx.linkedUserName.slice( + 0, + pendingTx.linkedUserName.indexOf(' '), + ) + sendCoinsResult.recipLastName = pendingTx.linkedUserName.slice( + pendingTx.linkedUserName.indexOf(' '), + pendingTx.linkedUserName.length, + ) + } sendCoinsResult.recipGradidoID = pendingTx.linkedUserGradidoID } } catch (err) { diff --git a/federation/jest.config.js b/federation/jest.config.js index f859bbe2f..797a5847e 100644 --- a/federation/jest.config.js +++ b/federation/jest.config.js @@ -6,7 +6,7 @@ module.exports = { collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!src/seeds/**', '!build/**'], coverageThreshold: { global: { - lines: 75, + lines: 77, }, }, setupFiles: ['/test/testSetup.ts'], diff --git a/federation/src/graphql/api/1_0/model/SendCoinsResult.ts b/federation/src/graphql/api/1_0/model/SendCoinsResult.ts index 930d22ff5..8fc21305f 100644 --- a/federation/src/graphql/api/1_0/model/SendCoinsResult.ts +++ b/federation/src/graphql/api/1_0/model/SendCoinsResult.ts @@ -13,5 +13,11 @@ export class SendCoinsResult { recipGradidoID: string | null @Field(() => String, { nullable: true }) - recipName: string | null + recipFirstName: string | null + + @Field(() => String, { nullable: true }) + recipLastName: string | null + + @Field(() => String, { nullable: true }) + recipAlias: string | null } diff --git a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts index 83e502a03..412786fa6 100644 --- a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts +++ b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts @@ -50,7 +50,9 @@ describe('SendCoinsResolver', () => { voteForSendCoins(data: $args) { vote recipGradidoID - recipName + recipFirstName + recipLastName + recipAlias } }` const settleSendCoinsMutation = ` @@ -204,7 +206,9 @@ describe('SendCoinsResolver', () => { data: { voteForSendCoins: { recipGradidoID: '56a55482-909e-46a4-bfa2-cd025e894ebd', - recipName: 'recipUser-FirstName recipUser-LastName', + recipFirstName: 'recipUser-FirstName', + recipLastName: 'recipUser-LastName', + recipAlias: 'recipUser-alias', vote: true, }, }, diff --git a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts index d942c48f3..ef37c0d00 100644 --- a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts +++ b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts @@ -99,8 +99,10 @@ export class SendCoinsResolver { await DbPendingTransaction.insert(pendingTx) result.vote = true - result.recipName = pendingTx.userName - result.recipGradidoID = pendingTx.userGradidoID + result.recipFirstName = receiverUser.firstName + result.recipLastName = receiverUser.lastName + result.recipAlias = receiverUser.alias + result.recipGradidoID = receiverUser.gradidoID logger.debug(`voteForSendCoins()-1_0... successfull`) } catch (err) { throw new LogError(`Error in voteForSendCoins: `, err)