From 44720aee901c6ae3b8da33c6d9a02e2edc85b12f Mon Sep 17 00:00:00 2001 From: Dario MatrixX VirtualBox Date: Thu, 4 Jan 2024 11:21:26 +0100 Subject: [PATCH 1/4] update usage of linked_user_id for creation transactions --- .../src/graphql/resolver/ContributionResolver.ts | 1 + backend/src/graphql/resolver/TransactionResolver.ts | 3 +++ .../0079-fill_linked_user_id_of_contributions.ts | 13 +++++++++++++ 3 files changed, 17 insertions(+) create mode 100644 database/migrations/0079-fill_linked_user_id_of_contributions.ts diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index bd985d2d2..c07a691a3 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -451,6 +451,7 @@ export class ContributionResolver { transaction.userId = contribution.userId transaction.userGradidoID = user.gradidoID transaction.userName = fullName(user.firstName, user.lastName) + transaction.linkedUserId = contribution.moderatorId transaction.previous = lastTransaction ? lastTransaction.id : null transaction.amount = contribution.amount transaction.creationDate = contribution.contributionDate diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 8d35708a6..f3a0bed9e 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -254,6 +254,9 @@ export class TransactionResolver { // userTransactions.forEach((transaction: dbTransaction) => { // use normal for loop because of timing problems with await in forEach-loop for (const transaction of userTransactions) { + if (transaction.typeId === TransactionTypeId.CREATION) { + continue; + } if (transaction.linkedUserId && !involvedUserIds.includes(transaction.linkedUserId)) { involvedUserIds.push(transaction.linkedUserId) } diff --git a/database/migrations/0079-fill_linked_user_id_of_contributions.ts b/database/migrations/0079-fill_linked_user_id_of_contributions.ts new file mode 100644 index 000000000..957733830 --- /dev/null +++ b/database/migrations/0079-fill_linked_user_id_of_contributions.ts @@ -0,0 +1,13 @@ +export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { + await queryFn(` + UPDATE \`transactions\` AS t + JOIN \`contributions\` AS c ON t.id = c.transaction_id + SET t.linked_user_id = c.confirmed_by + WHERE t.typeId = ? + `, [1]) +} + +export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { + await queryFn(`UPDATE \`transactions\` SET \`linked_user_id\` = NULL where \`type_id\` = ?;`, [1]) +} + \ No newline at end of file From d882c52bb59aa21b41773a5c8410e533207abb2e Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 4 Jan 2024 11:33:03 +0100 Subject: [PATCH 2/4] fix lint --- backend/src/graphql/resolver/TransactionResolver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index f3a0bed9e..d379efef3 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -255,7 +255,7 @@ export class TransactionResolver { // use normal for loop because of timing problems with await in forEach-loop for (const transaction of userTransactions) { if (transaction.typeId === TransactionTypeId.CREATION) { - continue; + continue } if (transaction.linkedUserId && !involvedUserIds.includes(transaction.linkedUserId)) { involvedUserIds.push(transaction.linkedUserId) From 2ea5df0fcf32561d604aa7d9020fae14e748b602 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 4 Jan 2024 11:34:47 +0100 Subject: [PATCH 3/4] lint --- .../0079-fill_linked_user_id_of_contributions.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/database/migrations/0079-fill_linked_user_id_of_contributions.ts b/database/migrations/0079-fill_linked_user_id_of_contributions.ts index 957733830..5fe62af30 100644 --- a/database/migrations/0079-fill_linked_user_id_of_contributions.ts +++ b/database/migrations/0079-fill_linked_user_id_of_contributions.ts @@ -1,13 +1,13 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { - await queryFn(` - UPDATE \`transactions\` AS t - JOIN \`contributions\` AS c ON t.id = c.transaction_id - SET t.linked_user_id = c.confirmed_by - WHERE t.typeId = ? - `, [1]) + await queryFn( + `UPDATE \`transactions\` AS t + JOIN \`contributions\` AS c ON t.id = c.transaction_id + SET t.linked_user_id = c.confirmed_by + WHERE t.type_id = ?`, + [1], + ) } - + export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(`UPDATE \`transactions\` SET \`linked_user_id\` = NULL where \`type_id\` = ?;`, [1]) } - \ No newline at end of file From 5de21609524782363ad364e11508b81464d25499 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 4 Jan 2024 11:45:22 +0100 Subject: [PATCH 4/4] update config for new db version --- backend/src/config/index.ts | 2 +- dht-node/src/config/index.ts | 2 +- federation/src/config/index.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 6f03d21b9..ed415da08 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -12,7 +12,7 @@ Decimal.set({ }) const constants = { - DB_VERSION: '0078-move_resubmission_date', + DB_VERSION: '0079-fill_linked_user_id_of_contributions', DECAY_START_TIME: new Date('2021-05-13 17:46:31-0000'), // GMT+0 LOG4JS_CONFIG: 'log4js-config.json', // default log level on production should be info diff --git a/dht-node/src/config/index.ts b/dht-node/src/config/index.ts index 2548166f4..b0661126f 100644 --- a/dht-node/src/config/index.ts +++ b/dht-node/src/config/index.ts @@ -4,7 +4,7 @@ import dotenv from 'dotenv' dotenv.config() const constants = { - DB_VERSION: '0078-move_resubmission_date', + DB_VERSION: '0079-fill_linked_user_id_of_contributions', LOG4JS_CONFIG: 'log4js-config.json', // default log level on production should be info LOG_LEVEL: process.env.LOG_LEVEL || 'info', diff --git a/federation/src/config/index.ts b/federation/src/config/index.ts index 036ce67ee..9ce6f18e3 100644 --- a/federation/src/config/index.ts +++ b/federation/src/config/index.ts @@ -10,7 +10,7 @@ Decimal.set({ }) const constants = { - DB_VERSION: '0078-move_resubmission_date', + DB_VERSION: '0079-fill_linked_user_id_of_contributions', DECAY_START_TIME: new Date('2021-05-13 17:46:31-0000'), // GMT+0 LOG4JS_CONFIG: 'log4js-config.json', // default log level on production should be info