From 56f5efc0cc39cd2d20d58510904c166f76f71b75 Mon Sep 17 00:00:00 2001 From: Mohammad Ranjbar Z Date: Tue, 23 Jan 2024 16:01:19 +0330 Subject: [PATCH 1/2] Add importDate to donation entity --- ...12969-add_import_date_to_donation_entity.ts | 13 +++++++++++++ src/entities/donation.ts | 4 ++++ src/repositories/donationRepository.ts | 18 +++++++++++++----- .../cronJobs/backupDonationImport.test.ts | 2 +- .../cronJobs/backupDonationImportJob.ts | 2 +- 5 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 migration/1706012712969-add_import_date_to_donation_entity.ts diff --git a/migration/1706012712969-add_import_date_to_donation_entity.ts b/migration/1706012712969-add_import_date_to_donation_entity.ts new file mode 100644 index 000000000..e5b278480 --- /dev/null +++ b/migration/1706012712969-add_import_date_to_donation_entity.ts @@ -0,0 +1,13 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class addImportDateToDonationEntity1706012712969 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "donation" ADD COLUMN "importDate" TIMESTAMP WITH TIME ZONE`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "donation" DROP COLUMN "importDate"`); + } + +} diff --git a/src/entities/donation.ts b/src/entities/donation.ts index 394fee0e9..f4c0860b9 100644 --- a/src/entities/donation.ts +++ b/src/entities/donation.ts @@ -214,6 +214,10 @@ export class Donation extends BaseEntity { @Column() createdAt: Date; + @Field(type => Date, { nullable: true }) + @Column({ nullable: true }) + importDate: Date; + @Field(type => String, { nullable: true }) @Column({ nullable: true }) donationType?: string; diff --git a/src/repositories/donationRepository.ts b/src/repositories/donationRepository.ts index f6b34e823..af3faf85d 100644 --- a/src/repositories/donationRepository.ts +++ b/src/repositories/donationRepository.ts @@ -387,12 +387,20 @@ export const getPendingDonationsIds = (): Promise<{ id: number }[]> => { hours: Number(process.env.DONATION_VERIFICAITON_EXPIRATION_HOURS), }) .toDate(); + return Donation.find({ - where: { - status: DONATION_STATUS.PENDING, - isFiat: false, - createdAt: MoreThan(date), - }, + where: [ + { + status: DONATION_STATUS.PENDING, + isFiat: false, + createdAt: MoreThan(date), + }, + { + status: DONATION_STATUS.PENDING, + isFiat: false, + importDate: MoreThan(date), + }, + ], select: ['id'], }); }; diff --git a/src/services/cronJobs/backupDonationImport.test.ts b/src/services/cronJobs/backupDonationImport.test.ts index b88fd23a2..2b03573c6 100644 --- a/src/services/cronJobs/backupDonationImport.test.ts +++ b/src/services/cronJobs/backupDonationImport.test.ts @@ -49,7 +49,7 @@ function createBackupDonationTestCases() { assert.equal(donation.status, DONATION_STATUS.PENDING); // should use input createdAt not now time - assert.equal(donation.createdAt.getTime(), 1705577862000); + assert.equal(donation.importDate.getTime(), 1705577862000); }); it('should fail if projectId is invalid', async () => { diff --git a/src/services/cronJobs/backupDonationImportJob.ts b/src/services/cronJobs/backupDonationImportJob.ts index 055ed0b69..9c8595939 100644 --- a/src/services/cronJobs/backupDonationImportJob.ts +++ b/src/services/cronJobs/backupDonationImportJob.ts @@ -110,7 +110,7 @@ export const createBackupDonation = async ( safeTransactionId, ); const donation = (await findDonationById(Number(donationId))) as Donation; - donation!.createdAt = getCreatedAtFromMongoObjectId(donationData._id); + donation!.importDate = getCreatedAtFromMongoObjectId(donationData._id); return donation.save(); }; From c91719c4073c7d5af4b07b5ccb7118d3ab0624b1 Mon Sep 17 00:00:00 2001 From: Mohammad Ranjbar Z Date: Tue, 23 Jan 2024 16:16:54 +0330 Subject: [PATCH 2/2] Fill importDate of donation correctly --- ...2969-add_import_date_to_donation_entity.ts | 26 ++++++++++--------- .../cronJobs/backupDonationImport.test.ts | 2 +- .../cronJobs/backupDonationImportJob.ts | 3 ++- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/migration/1706012712969-add_import_date_to_donation_entity.ts b/migration/1706012712969-add_import_date_to_donation_entity.ts index e5b278480..33fbf0470 100644 --- a/migration/1706012712969-add_import_date_to_donation_entity.ts +++ b/migration/1706012712969-add_import_date_to_donation_entity.ts @@ -1,13 +1,15 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class addImportDateToDonationEntity1706012712969 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "donation" ADD COLUMN "importDate" TIMESTAMP WITH TIME ZONE`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "donation" DROP COLUMN "importDate"`); - } - +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class addImportDateToDonationEntity1706012712969 + implements MigrationInterface +{ + async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "donation" ADD COLUMN IF NOT EXISTS "importDate" TIMESTAMP WITH TIME ZONE`, + ); + } + + async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "donation" DROP COLUMN "importDate"`); + } } diff --git a/src/services/cronJobs/backupDonationImport.test.ts b/src/services/cronJobs/backupDonationImport.test.ts index 2b03573c6..b88fd23a2 100644 --- a/src/services/cronJobs/backupDonationImport.test.ts +++ b/src/services/cronJobs/backupDonationImport.test.ts @@ -49,7 +49,7 @@ function createBackupDonationTestCases() { assert.equal(donation.status, DONATION_STATUS.PENDING); // should use input createdAt not now time - assert.equal(donation.importDate.getTime(), 1705577862000); + assert.equal(donation.createdAt.getTime(), 1705577862000); }); it('should fail if projectId is invalid', async () => { diff --git a/src/services/cronJobs/backupDonationImportJob.ts b/src/services/cronJobs/backupDonationImportJob.ts index 9c8595939..5e4d13de5 100644 --- a/src/services/cronJobs/backupDonationImportJob.ts +++ b/src/services/cronJobs/backupDonationImportJob.ts @@ -110,7 +110,8 @@ export const createBackupDonation = async ( safeTransactionId, ); const donation = (await findDonationById(Number(donationId))) as Donation; - donation!.importDate = getCreatedAtFromMongoObjectId(donationData._id); + donation!.createdAt = getCreatedAtFromMongoObjectId(donationData._id); + donation!.importDate = new Date(); return donation.save(); };