Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

Commit f87838d

Browse files
authored
Merge pull request #43 from topcoder-platform/prevent-status-changes
Prevent status changes
2 parents 9dadac7 + ae4623e commit f87838d

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/constants.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@ const prizeSetTypes = {
99
CheckpointPrizes: 'checkpoint'
1010
}
1111

12+
const challengeStatusOrders = {
13+
draft: 0,
14+
active: 1,
15+
completed: 2,
16+
deleted: 2,
17+
cancelled: 2
18+
}
19+
1220
module.exports = {
13-
prizeSetTypes
21+
prizeSetTypes,
22+
challengeStatusOrders
1423
}

src/services/syncService.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const challengeMigrationStatusService = require('../services/challengeMigrationS
88
const migrationService = require('../services/migrationService')
99
const challengeIfxService = require('../services/challengeInformixService')
1010
const { V4_TRACKS } = require('../util/conversionMappings')
11+
const { challengeStatusOrders } = require('../constants')
1112

1213
async function syncLegacyId (legacyId, force) {
1314
// const legacyId = queuedChallenges.items[i].legacyId
@@ -47,8 +48,15 @@ async function processChallenge (legacyId, challengeListing, challengeDetails) {
4748
const v5ChallengeObjectFromV4 = await challengeService.buildV5Challenge(legacyId, challengeListing, challengeDetails)
4849
const [v5ChallengeFromAPI] = await challengeService.getChallengeFromV5API(legacyId)
4950

50-
// logger.debug(`V5 Object Built from V4: ${JSON.stringify(v5ChallengeObjectFromV4)}`)
51-
// logger.debug(`V5 Object from API: ${JSON.stringify(v5ChallengeFromAPI)}`)
51+
const v4StatusNumber = challengeStatusOrders[_.toLower(v5ChallengeObjectFromV4.status)] || challengeStatusOrders.cancelled
52+
const v5StatusNumber = challengeStatusOrders[_.toLower(v5ChallengeFromAPI.status)] || challengeStatusOrders.cancelled
53+
54+
logger.debug(`v4 Status Number: ${v4StatusNumber} - v5 Status Number: ${v5StatusNumber}`)
55+
56+
if (v4StatusNumber < v5StatusNumber) {
57+
logger.warn(`Status in v4 is: ${_.toLower(v5ChallengeObjectFromV4.status)} - Status in v5 is: ${_.toLower(v5ChallengeFromAPI.status)} NOT updating v5`)
58+
v5ChallengeObjectFromV4.status = v5ChallengeFromAPI.status
59+
}
5260

5361
const additionalInformation = {}
5462

0 commit comments

Comments
 (0)