From fbd030e94ec71879396d1baa3d9fd415203b54b5 Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Thu, 28 Jan 2021 03:17:41 +0200 Subject: [PATCH 1/2] prevent incorrect challenge status changes --- src/constants.js | 11 ++++++++++- src/services/syncService.js | 8 ++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/constants.js b/src/constants.js index 920aa6e..0418ee6 100644 --- a/src/constants.js +++ b/src/constants.js @@ -9,6 +9,15 @@ const prizeSetTypes = { CheckpointPrizes: 'checkpoint' } +const challengeStatusOrders = { + draft: 0, + active: 1, + completed: 2, + deleted: 2, + cancelled: 2 +} + module.exports = { - prizeSetTypes + prizeSetTypes, + challengeStatusOrders } diff --git a/src/services/syncService.js b/src/services/syncService.js index 0c6a857..fbb1518 100644 --- a/src/services/syncService.js +++ b/src/services/syncService.js @@ -8,6 +8,7 @@ const challengeMigrationStatusService = require('../services/challengeMigrationS const migrationService = require('../services/migrationService') const challengeIfxService = require('../services/challengeInformixService') const { V4_TRACKS } = require('../util/conversionMappings') +const { challengeStatusOrders } = require('../constants') async function syncLegacyId (legacyId, force) { // const legacyId = queuedChallenges.items[i].legacyId @@ -47,6 +48,13 @@ async function processChallenge (legacyId, challengeListing, challengeDetails) { const v5ChallengeObjectFromV4 = await challengeService.buildV5Challenge(legacyId, challengeListing, challengeDetails) const [v5ChallengeFromAPI] = await challengeService.getChallengeFromV5API(legacyId) + const v4StatusOrder = challengeStatusOrders[_.toLower(v5ChallengeObjectFromV4.status)] || challengeStatusOrders.cancelled + const v5StatusOrder = challengeStatusOrders[_.toLower(v5ChallengeFromAPI.status)] || challengeStatusOrders.cancelled + + if (v4StatusOrder < v5StatusOrder) { + v5ChallengeObjectFromV4.status = v5ChallengeFromAPI.status + } + // logger.debug(`V5 Object Built from V4: ${JSON.stringify(v5ChallengeObjectFromV4)}`) // logger.debug(`V5 Object from API: ${JSON.stringify(v5ChallengeFromAPI)}`) From ae4623eccd6f837797d6299a1ae6e549715b427e Mon Sep 17 00:00:00 2001 From: James Cori Date: Wed, 27 Jan 2021 20:57:39 -0500 Subject: [PATCH 2/2] Adding logging --- src/services/syncService.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/services/syncService.js b/src/services/syncService.js index fbb1518..2a79968 100644 --- a/src/services/syncService.js +++ b/src/services/syncService.js @@ -48,16 +48,16 @@ async function processChallenge (legacyId, challengeListing, challengeDetails) { const v5ChallengeObjectFromV4 = await challengeService.buildV5Challenge(legacyId, challengeListing, challengeDetails) const [v5ChallengeFromAPI] = await challengeService.getChallengeFromV5API(legacyId) - const v4StatusOrder = challengeStatusOrders[_.toLower(v5ChallengeObjectFromV4.status)] || challengeStatusOrders.cancelled - const v5StatusOrder = challengeStatusOrders[_.toLower(v5ChallengeFromAPI.status)] || challengeStatusOrders.cancelled + const v4StatusNumber = challengeStatusOrders[_.toLower(v5ChallengeObjectFromV4.status)] || challengeStatusOrders.cancelled + const v5StatusNumber = challengeStatusOrders[_.toLower(v5ChallengeFromAPI.status)] || challengeStatusOrders.cancelled - if (v4StatusOrder < v5StatusOrder) { + logger.debug(`v4 Status Number: ${v4StatusNumber} - v5 Status Number: ${v5StatusNumber}`) + + if (v4StatusNumber < v5StatusNumber) { + logger.warn(`Status in v4 is: ${_.toLower(v5ChallengeObjectFromV4.status)} - Status in v5 is: ${_.toLower(v5ChallengeFromAPI.status)} NOT updating v5`) v5ChallengeObjectFromV4.status = v5ChallengeFromAPI.status } - // logger.debug(`V5 Object Built from V4: ${JSON.stringify(v5ChallengeObjectFromV4)}`) - // logger.debug(`V5 Object from API: ${JSON.stringify(v5ChallengeFromAPI)}`) - const additionalInformation = {} // logger.info(`Before V5 Reg Sync: ${challengeObj.numOfRegistrants} ${v5ChallengeFromAPI.numOfRegistrants}`)