From 9550c31cac7bf51f8e05694a2b8eebc26fe0eff7 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 14:27:53 +0100 Subject: [PATCH 01/10] set type for redeemed by, change order --- .../0030-transaction_link/TransactionLink.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/database/entity/0030-transaction_link/TransactionLink.ts b/database/entity/0030-transaction_link/TransactionLink.ts index d04c00d7b..a3ab5cd1a 100644 --- a/database/entity/0030-transaction_link/TransactionLink.ts +++ b/database/entity/0030-transaction_link/TransactionLink.ts @@ -39,13 +39,6 @@ export class TransactionLink extends BaseEntity { }) validUntil: Date - @Column({ - type: 'datetime', - default: () => 'CURRENT_TIMESTAMP', - nullable: true, - }) - redeemedAt: Date - @Column({ type: 'boolean', default: () => false, @@ -53,6 +46,13 @@ export class TransactionLink extends BaseEntity { }) showEmail: boolean - @Column({ unsigned: true, nullable: true }) - redeemedBy: number + @Column({ + type: 'datetime', + default: () => 'CURRENT_TIMESTAMP', + nullable: true, + }) + redeemedAt?: Date | null + + @Column({ type: 'int', unsigned: true, nullable: true }) + redeemedBy?: number | null } From f78f2d5977df4fa0a0b98671102ff94dc46775ef Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 15:00:34 +0100 Subject: [PATCH 02/10] remove default dates --- database/entity/0030-transaction_link/TransactionLink.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/database/entity/0030-transaction_link/TransactionLink.ts b/database/entity/0030-transaction_link/TransactionLink.ts index a3ab5cd1a..5e8690270 100644 --- a/database/entity/0030-transaction_link/TransactionLink.ts +++ b/database/entity/0030-transaction_link/TransactionLink.ts @@ -27,14 +27,12 @@ export class TransactionLink extends BaseEntity { @Column({ type: 'datetime', - default: () => 'CURRENT_TIMESTAMP', nullable: false, }) createdAt: Date @Column({ type: 'datetime', - default: () => 'CURRENT_TIMESTAMP', nullable: false, }) validUntil: Date @@ -48,7 +46,6 @@ export class TransactionLink extends BaseEntity { @Column({ type: 'datetime', - default: () => 'CURRENT_TIMESTAMP', nullable: true, }) redeemedAt?: Date | null From 14a0a4344d542c4738c578063b803d121c4aa827 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 15:07:55 +0100 Subject: [PATCH 03/10] Add hold_available_amount column --- .../entity/0030-transaction_link/TransactionLink.ts | 10 ++++++++++ database/migrations/0030-transaction_link.ts | 1 + 2 files changed, 11 insertions(+) diff --git a/database/entity/0030-transaction_link/TransactionLink.ts b/database/entity/0030-transaction_link/TransactionLink.ts index 5e8690270..620f19903 100644 --- a/database/entity/0030-transaction_link/TransactionLink.ts +++ b/database/entity/0030-transaction_link/TransactionLink.ts @@ -19,6 +19,16 @@ export class TransactionLink extends BaseEntity { }) amount: Decimal + @Column({ + type: 'decimal', + name: 'hold_available_amount', + precision: 40, + scale: 20, + nullable: false, + transformer: DecimalTransformer, + }) + holdAvailableAmount: Decimal + @Column({ length: 255, nullable: false, collation: 'utf8mb4_unicode_ci' }) memo: string diff --git a/database/migrations/0030-transaction_link.ts b/database/migrations/0030-transaction_link.ts index 59eba1090..83d7b072d 100644 --- a/database/migrations/0030-transaction_link.ts +++ b/database/migrations/0030-transaction_link.ts @@ -9,6 +9,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis \`id\` int UNSIGNED NOT NULL AUTO_INCREMENT, \`userId\` int UNSIGNED NOT NULL, \`amount\` DECIMAL(40,20) NOT NULL, + \`hold_available_amount\` DECIMAL(40,20) NOT NULL, \`memo\` varchar(255) NOT NULL, \`code\` varchar(96) NOT NULL, \`createdAt\` datetime NOT NULL, From 8bdd25cd0157752321acbbfa7a697184a275fb46 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 15:09:01 +0100 Subject: [PATCH 04/10] add hold available amount to model --- backend/src/graphql/model/TransactionLink.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/graphql/model/TransactionLink.ts b/backend/src/graphql/model/TransactionLink.ts index c46728407..f449a6f9e 100644 --- a/backend/src/graphql/model/TransactionLink.ts +++ b/backend/src/graphql/model/TransactionLink.ts @@ -13,6 +13,9 @@ export class TransactionLink { @Field(() => Decimal) amount: Decimal + @Field(() => Decimal) + holdAvailableAmount: Decimal + @Field(() => String) memo: string From 54dee861dd84e8e21ce75b9a27118c51a45e7381 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 15:12:25 +0100 Subject: [PATCH 05/10] reduce length of code --- database/entity/0030-transaction_link/TransactionLink.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/entity/0030-transaction_link/TransactionLink.ts b/database/entity/0030-transaction_link/TransactionLink.ts index 620f19903..bb12277d1 100644 --- a/database/entity/0030-transaction_link/TransactionLink.ts +++ b/database/entity/0030-transaction_link/TransactionLink.ts @@ -32,7 +32,7 @@ export class TransactionLink extends BaseEntity { @Column({ length: 255, nullable: false, collation: 'utf8mb4_unicode_ci' }) memo: string - @Column({ length: 96, nullable: false, collation: 'utf8mb4_unicode_ci' }) + @Column({ length: 24, nullable: false, collation: 'utf8mb4_unicode_ci' }) code: string @Column({ From 55e50b10c7d0c5e6bc80a32167d327316ec2634e Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 15:14:15 +0100 Subject: [PATCH 06/10] reduce length of code in migration --- database/migrations/0030-transaction_link.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/0030-transaction_link.ts b/database/migrations/0030-transaction_link.ts index 83d7b072d..4d72cf43b 100644 --- a/database/migrations/0030-transaction_link.ts +++ b/database/migrations/0030-transaction_link.ts @@ -11,7 +11,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis \`amount\` DECIMAL(40,20) NOT NULL, \`hold_available_amount\` DECIMAL(40,20) NOT NULL, \`memo\` varchar(255) NOT NULL, - \`code\` varchar(96) NOT NULL, + \`code\` varchar(24) NOT NULL, \`createdAt\` datetime NOT NULL, \`validUntil\` datetime NOT NULL, \`showEmail\` boolean NOT NULL DEFAULT false, From d4ce46b271bc2e859b629f93feea9cddc2069dde Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 16:34:54 +0100 Subject: [PATCH 07/10] update db version --- backend/src/config/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 82fb9ff2b..4cd428153 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -10,7 +10,7 @@ Decimal.set({ }) const constants = { - DB_VERSION: '0029-clean_transaction_table', + DB_VERSION: '0030-transaction_link', DECAY_START_TIME: new Date('2021-05-13 17:46:31'), // GMT+0 } From 01648aaa0d5d84676bbede8cc9c8a7c4ac313ce9 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 16:51:17 +0100 Subject: [PATCH 08/10] add soft delete for transaction links --- database/entity/0030-transaction_link/TransactionLink.ts | 5 ++++- database/migrations/0030-transaction_link.ts | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/database/entity/0030-transaction_link/TransactionLink.ts b/database/entity/0030-transaction_link/TransactionLink.ts index bb12277d1..6ea708547 100644 --- a/database/entity/0030-transaction_link/TransactionLink.ts +++ b/database/entity/0030-transaction_link/TransactionLink.ts @@ -1,5 +1,5 @@ import Decimal from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, DeleteDateColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('transaction_links') @@ -41,6 +41,9 @@ export class TransactionLink extends BaseEntity { }) createdAt: Date + @DeleteDateColumn() + deletedAt?: Date | null + @Column({ type: 'datetime', nullable: false, diff --git a/database/migrations/0030-transaction_link.ts b/database/migrations/0030-transaction_link.ts index 4d72cf43b..ee76c980d 100644 --- a/database/migrations/0030-transaction_link.ts +++ b/database/migrations/0030-transaction_link.ts @@ -13,6 +13,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis \`memo\` varchar(255) NOT NULL, \`code\` varchar(24) NOT NULL, \`createdAt\` datetime NOT NULL, + \`deletedAt\` datetime DEFAULT NULL, \`validUntil\` datetime NOT NULL, \`showEmail\` boolean NOT NULL DEFAULT false, \`redeemedAt\` datetime, From f96177285471bac61f8533cdc203873ea1ee1f0d Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 16:51:56 +0100 Subject: [PATCH 09/10] add soft delete to transaction link model --- backend/src/graphql/model/TransactionLink.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/graphql/model/TransactionLink.ts b/backend/src/graphql/model/TransactionLink.ts index f449a6f9e..0f19df466 100644 --- a/backend/src/graphql/model/TransactionLink.ts +++ b/backend/src/graphql/model/TransactionLink.ts @@ -25,6 +25,9 @@ export class TransactionLink { @Field(() => Date) createdAt: Date + @Field(() => Date, { nullable: true }) + deletedAt: Date | null + @Field(() => Date) validUntil: Date From dbb42c30ec988e82de161f1886a838af808a076c Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Mar 2022 17:07:32 +0100 Subject: [PATCH 10/10] increase timeout by factoe 100 --- backend/src/graphql/resolver/UserResolver.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index 9f3d7265f..05ff2b302 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -12,7 +12,7 @@ import CONFIG from '@/config' import { sendAccountActivationEmail } from '@/mailer/sendAccountActivationEmail' // import { klicktippSignIn } from '@/apis/KlicktippController' -jest.setTimeout(10000) +jest.setTimeout(1000000) jest.mock('@/mailer/sendAccountActivationEmail', () => { return {