From 3b62233faafadb51f4da3fa9c4035b174336d588 Mon Sep 17 00:00:00 2001 From: Yazeed Loonat Date: Fri, 7 Apr 2023 09:34:14 -0700 Subject: [PATCH] fix: resolves issues around markedAsDuplicate (#3373) --- .../application-flagged-sets.service.ts | 15 ++++++++----- .../services/applications.service.ts | 6 ----- ...6626425-fixing-marked-as-duplicate-flag.ts | 22 +++++++++++++++++++ 3 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 backend/core/src/migration/1680216626425-fixing-marked-as-duplicate-flag.ts diff --git a/backend/core/src/application-flagged-sets/application-flagged-sets.service.ts b/backend/core/src/application-flagged-sets/application-flagged-sets.service.ts index 99d1c350d6..7ec21d6b9b 100644 --- a/backend/core/src/application-flagged-sets/application-flagged-sets.service.ts +++ b/backend/core/src/application-flagged-sets/application-flagged-sets.service.ts @@ -172,18 +172,21 @@ export class ApplicationFlaggedSetsService { await transApplicationsRepository .createQueryBuilder() .update(Application) - .set({ reviewStatus: ApplicationReviewStatus.pendingAndValid }) + .set({ + reviewStatus: ApplicationReviewStatus.pendingAndValid, + markedAsDuplicate: false, + }) .where("id IN (:...selectedApps)", { selectedApps, }) .execute() } - // mark those that were not selected as duplicate + // mark those that were not selected as pending const qb = transApplicationsRepository .createQueryBuilder() .update(Application) - .set({ reviewStatus: ApplicationReviewStatus.pending }) + .set({ reviewStatus: ApplicationReviewStatus.pending, markedAsDuplicate: false }) .where( "exists (SELECT 1 FROM application_flagged_set_applications_applications WHERE applications_id = id AND application_flagged_set_id = :afsId)", { afsId: dto.afsId } @@ -209,12 +212,12 @@ export class ApplicationFlaggedSetsService { .where("id = :afsId", { afsId: dto.afsId }) .execute() } else if (dto.status === FlaggedSetStatus.resolved) { - // mark selected a valid + // mark selected as valid if (selectedApps.length) { await transApplicationsRepository .createQueryBuilder() .update(Application) - .set({ reviewStatus: ApplicationReviewStatus.valid }) + .set({ reviewStatus: ApplicationReviewStatus.valid, markedAsDuplicate: false }) .where("id IN (:...selectedApps)", { selectedApps, }) @@ -225,7 +228,7 @@ export class ApplicationFlaggedSetsService { const qb = transApplicationsRepository .createQueryBuilder() .update(Application) - .set({ reviewStatus: ApplicationReviewStatus.duplicate }) + .set({ reviewStatus: ApplicationReviewStatus.duplicate, markedAsDuplicate: true }) .where( "exists (SELECT 1 FROM application_flagged_set_applications_applications WHERE applications_id = id AND application_flagged_set_id = :afsId)", { afsId: dto.afsId } diff --git a/backend/core/src/applications/services/applications.service.ts b/backend/core/src/applications/services/applications.service.ts index c3cc657689..7cfc4ede5d 100644 --- a/backend/core/src/applications/services/applications.service.ts +++ b/backend/core/src/applications/services/applications.service.ts @@ -27,7 +27,6 @@ import { ApplicationUpdateDto } from "../dto/application-update.dto" import { ApplicationsCsvListQueryParams } from "../dto/applications-csv-list-query-params" import { ListingRepository } from "../../listings/db/listing.repository" import { Listing } from "../../listings/entities/listing.entity" -import { ApplicationReviewStatus } from "../types/application-review-status-enum" @Injectable({ scope: Scope.REQUEST }) export class ApplicationsService { @@ -109,11 +108,6 @@ export class ApplicationsService { ) const flags = await Promise.all(promiseArray) result.forEach((application, index) => { - if (flags[index].status) { - application.markedAsDuplicate = flags[index].status === ApplicationReviewStatus.duplicate - } else { - application.markedAsDuplicate = false - } application.flagged = !!flags[index].id }) diff --git a/backend/core/src/migration/1680216626425-fixing-marked-as-duplicate-flag.ts b/backend/core/src/migration/1680216626425-fixing-marked-as-duplicate-flag.ts new file mode 100644 index 0000000000..8dae176ff1 --- /dev/null +++ b/backend/core/src/migration/1680216626425-fixing-marked-as-duplicate-flag.ts @@ -0,0 +1,22 @@ +import { MigrationInterface, QueryRunner } from "typeorm" + +export class fixingMarkedAsDuplicateFlag1680216626425 implements MigrationInterface { + name = "fixingMarkedAsDuplicateFlag1680216626425" + + public async up(queryRunner: QueryRunner): Promise { + // if review status is duplicate markedAsDuplicate should be true + await queryRunner.query(` + UPDATE applications + SET marked_as_duplicate = true + WHERE review_status = 'duplicate' + `) + // if review status is not duplicate markedAsDuplicate should be false + await queryRunner.query(` + UPDATE applications + SET marked_as_duplicate = false + WHERE review_status != 'duplicate' + `) + } + + public async down(queryRunner: QueryRunner): Promise {} +}