Skip to content

Commit 88151da

Browse files
committed
update
1 parent 4ee4cb0 commit 88151da

File tree

1 file changed

+50
-13
lines changed

1 file changed

+50
-13
lines changed

src/domain/Sync.ts

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,38 @@
22
/* eslint-disable @typescript-eslint/no-unsafe-argument */
33
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
44
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
5-
import { Operator, QueryBuilder } from "@topcoder-framework/client-relational";
5+
import { QueryBuilder } from "@topcoder-framework/client-relational";
66
import { ChallengeDomain } from "@topcoder-framework/domain-challenge";
77
import _ from "lodash";
88
import { queryRunner } from "../helper/QueryRunner";
99

10+
import { Challenge } from "@topcoder-framework/domain-challenge/dist-es/models/domain-layer/challenge/challenge";
11+
import { Operator } from "@topcoder-framework/lib-common";
1012
import LegacyChallengeDomain from "../domain/LegacyChallenge";
1113
import { LegacyChallenge, LegacyChallengeId } from "../models/domain-layer/legacy/challenge";
1214
import { SyncInput, Table } from "../models/domain-layer/legacy/sync";
1315

16+
const challengeDomain = new ChallengeDomain(
17+
process.env.GRPC_CHALLENGE_DOMAIN_SERVER_HOST!,
18+
process.env.GRPC_CHALLENGE_DOMAIN_SERVER_PORT!
19+
);
20+
1421
class LegacySyncDomain {
1522
public async syncLegacy(input: SyncInput): Promise<void> {
1623
const legacyId = input.projectId;
1724
const payload = {};
1825
const legacyChallenge = await LegacyChallengeDomain.getLegacyChallenge(
1926
LegacyChallengeId.create({ legacyChallengeId: legacyId })
2027
);
28+
const { items } = await challengeDomain.scan({
29+
criteria: [{ key: "legacyId", operator: Operator.OPERATOR_EQUAL, value: legacyId }],
30+
});
31+
const v5Challenge: Challenge = items[0];
32+
2133
for (const table of input.updatedTables) {
2234
switch (table.table) {
2335
case "project":
24-
_.assign(payload, this.handleProjectUpdate(table.value, legacyChallenge));
36+
_.assign(payload, this.handleProjectUpdate(table.value, legacyChallenge, v5Challenge));
2537
break;
2638
case "project_phase":
2739
break;
@@ -42,12 +54,16 @@ class LegacySyncDomain {
4254
}
4355
}
4456

45-
private handleProjectUpdate(columnNames: string[], legacyChallenge: LegacyChallenge) {
57+
private handleProjectUpdate(
58+
columnNames: string[],
59+
legacyChallenge: LegacyChallenge,
60+
v5Challenge: Challenge
61+
) {
4662
const payload = {};
4763
for (const columnName of columnNames) {
4864
switch (columnName) {
4965
case "project_status_id":
50-
_.assign(payload, this.handleStatusChange(legacyChallenge, {}));
66+
_.assign(payload, this.handleStatusChange(legacyChallenge, v5Challenge));
5167
break;
5268
case "project_category_id":
5369
break;
@@ -58,30 +74,51 @@ class LegacySyncDomain {
5874
}
5975
}
6076

61-
private handleStatusChange(legacyChallenge: LegacyChallenge, v5Challenge) {
62-
const challengeStatusOrders = {
77+
private handleStatusChange(legacyChallenge: LegacyChallenge, v5Challenge: Challenge) {
78+
interface IchallengeStatusOrders {
79+
Draft: number;
80+
Active: number;
81+
Completed: number;
82+
Deleted: number;
83+
Cancelled: number;
84+
}
85+
const challengeStatusOrders: IchallengeStatusOrders = {
6386
Draft: 1,
6487
Active: 2,
6588
Completed: 3,
6689
Deleted: 3,
6790
Cancelled: 3,
6891
};
69-
const challengeStatusMap = {
92+
interface IchallengeStatusMap {
93+
1: string;
94+
2: string;
95+
3: string;
96+
7: string;
97+
}
98+
const challengeStatusMap: IchallengeStatusMap = {
7099
1: "Active",
71100
2: "Draft",
72101
3: "Deleted",
73102
7: "Completed",
74103
};
75-
/*
76-
const v4StatusNumber = challengeStatusOrders[challengeStatusMap[legacyChallenge.projectStatusId]] || challengeStatusOrders.Cancelled
77-
const v5StatusNumber = challengeStatusOrders[v5Challenge.status] || challengeStatusOrders.Cancelled
104+
105+
const v4StatusNumber =
106+
challengeStatusOrders[
107+
challengeStatusMap[
108+
legacyChallenge.projectStatusId as keyof IchallengeStatusMap
109+
] as keyof IchallengeStatusOrders
110+
] || challengeStatusOrders.Cancelled;
111+
const v5StatusNumber =
112+
challengeStatusOrders[v5Challenge.status as keyof IchallengeStatusOrders] ||
113+
challengeStatusOrders.Cancelled;
78114

79115
if (v4StatusNumber >= v5StatusNumber) {
80-
return { status: challengeStatusMap[legacyChallenge.projectStatusId] }
116+
return {
117+
status: challengeStatusMap[legacyChallenge.projectStatusId as keyof IchallengeStatusMap],
118+
};
81119
} else {
82-
return {}
120+
return {};
83121
}
84-
*/
85122
}
86123
}
87124

0 commit comments

Comments
 (0)