From 8d5b0c83fc18a4480cb37c124f2ed57a24646357 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Sat, 30 Apr 2022 14:59:27 +0800 Subject: [PATCH 1/5] restore group fix --- .circleci/config.yml | 1 + src/services/ProcessorService.js | 29 +++++++++-------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3a78bbe..ce90b94 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,6 +70,7 @@ workflows: branches: only: - develop + - restore-group-fix # Production builds are exectuted only on tagged commits to the # master branch. diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index 0281c2e..7688e61 100644 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -647,28 +647,16 @@ async function processMessage (message) { const saveDraftContestDTO = await parsePayload(message.payload, m2mToken) - let setAssociations = true - if (!legacyId) { logger.debug('Legacy ID does not exist. Will create...') legacyId = await createChallenge(saveDraftContestDTO, challengeUuid, createdByUserId, message.payload.legacy, m2mToken) - + await recreatePhases(legacyId, message.payload.phases, updatedByUserId) if (_.get(message, 'payload.legacy.selfService')) { await disableTimelineNotifications(legacyId, createdByUserId) // disable } - logger.info(`Update Member payments for challenge ${legacyId}`) - await updateMemberPayments(legacyId, message.payload.prizeSets, updatedByUserId) - logger.info(`Associate groups for challenge ${legacyId}`) - await associateChallengeGroups(message.payload.groups, legacyId, m2mToken) - logger.info(`Associate challenge terms for challenge ${legacyId}`) - await associateChallengeTerms(message.payload.terms, legacyId, createdByUserId, updatedByUserId) - logger.info(`set copilot for challenge ${legacyId}`) - await setCopilotPayment(challengeUuid, legacyId, _.get(message, 'payload.prizeSets'), createdByUserId, updatedByUserId, m2mToken) - - setAssociations = false } let challenge @@ -694,13 +682,14 @@ async function processMessage (message) { } } - if (setAssociations) { - logger.info(`Set Associations for challenge ${legacyId}`) - await updateMemberPayments(legacyId, message.payload.prizeSets, updatedByUserId) - await associateChallengeGroups(message.payload.groups, legacyId, m2mToken) - await associateChallengeTerms(message.payload.terms, legacyId, createdByUserId, updatedByUserId) - await setCopilotPayment(challengeUuid, legacyId, _.get(message, 'payload.prizeSets'), createdByUserId, updatedByUserId, m2mToken) - } + logger.info(`Set Associations for challenge ${legacyId}`) + await updateMemberPayments(legacyId, message.payload.prizeSets, updatedByUserId) + logger.info(`Associate groups for challenge ${legacyId}`) + await associateChallengeGroups(message.payload.groups, legacyId, m2mToken) + logger.info(`Associate challenge terms for challenge ${legacyId}`) + await associateChallengeTerms(message.payload.terms, legacyId, createdByUserId, updatedByUserId) + logger.info(`set copilot for challenge ${legacyId}`) + await setCopilotPayment(challengeUuid, legacyId, _.get(message, 'payload.prizeSets'), createdByUserId, updatedByUserId, m2mToken) if (message.payload.status && challenge) { // logger.info(`The status has changed from ${challenge.currentStatus} to ${message.payload.status}`) From 7ae447475c198fd7d99841853fcbebd5f051b1fe Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Sat, 30 Apr 2022 15:49:47 +0800 Subject: [PATCH 2/5] adjust sequence and restore data change --- src/services/ProcessorService.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index 7688e61..d537f8a 100644 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -659,13 +659,6 @@ async function processMessage (message) { } - let challenge - try { - challenge = await getChallengeById(m2mToken, legacyId) - } catch (e) { - throw new Error(`Error getting challenge by id - Error: ${JSON.stringify(e)}`) - } - logger.debug('Result from parsePayload:') logger.debug(JSON.stringify(saveDraftContestDTO)) @@ -691,6 +684,19 @@ async function processMessage (message) { logger.info(`set copilot for challenge ${legacyId}`) await setCopilotPayment(challengeUuid, legacyId, _.get(message, 'payload.prizeSets'), createdByUserId, updatedByUserId, m2mToken) + try { + await helper.forceV4ESFeeder(legacyId) + } catch (e) { + logger.warn(`Failed to call V4 ES Feeder ${JSON.stringify(e)}`) + } + + let challenge + try { + challenge = await getChallengeById(m2mToken, legacyId) + } catch (e) { + throw new Error(`Error getting challenge by id - Error: ${JSON.stringify(e)}`) + } + if (message.payload.status && challenge) { // logger.info(`The status has changed from ${challenge.currentStatus} to ${message.payload.status}`) if (message.payload.status === constants.challengeStatuses.Active && challenge.currentStatus !== constants.challengeStatuses.Active) { @@ -723,12 +729,6 @@ async function processMessage (message) { logger.info('Will skip syncing phases as the challenge is a task...') } } - - try { - await helper.forceV4ESFeeder(legacyId) - } catch (e) { - logger.warn(`Failed to call V4 ES Feeder ${JSON.stringify(e)}`) - } } processMessage.schema = { From 62ea2d8e1198111e8545a78b7d6d41512ed01a3e Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Sat, 30 Apr 2022 17:53:40 +0800 Subject: [PATCH 3/5] add logs --- src/services/ProcessorService.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index d537f8a..5646e7f 100644 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -685,6 +685,7 @@ async function processMessage (message) { await setCopilotPayment(challengeUuid, legacyId, _.get(message, 'payload.prizeSets'), createdByUserId, updatedByUserId, m2mToken) try { + logger.info(`force V4 ES Feeder for the legacy challenge ${legacyId}`) await helper.forceV4ESFeeder(legacyId) } catch (e) { logger.warn(`Failed to call V4 ES Feeder ${JSON.stringify(e)}`) From d68ed4793c7e3f473b620c248332a409c0e3105c Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Mon, 2 May 2022 12:22:04 +0800 Subject: [PATCH 4/5] resync v4 es feeder --- src/services/ProcessorService.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index 5646e7f..19cbfdc 100644 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -699,6 +699,8 @@ async function processMessage (message) { } if (message.payload.status && challenge) { + // Whether we need to sync v4 ES again + let needSyncV4ES = false // logger.info(`The status has changed from ${challenge.currentStatus} to ${message.payload.status}`) if (message.payload.status === constants.challengeStatuses.Active && challenge.currentStatus !== constants.challengeStatuses.Active) { logger.info('Activating challenge...') @@ -708,6 +710,7 @@ async function processMessage (message) { await metadataService.createOrUpdateMetadata(legacyId, 9, 'On', createdByUserId) // autopilot // Repost all challenge resource on Kafka so they will get created on legacy by the legacy-challenge-resource-processor await rePostResourcesOnKafka(challengeUuid, m2mToken) + needSyncV4ES = true } if (message.payload.status === constants.challengeStatuses.Completed && challenge.currentStatus !== constants.challengeStatuses.Completed) { if (message.payload.task.isTask) { @@ -718,6 +721,7 @@ async function processMessage (message) { const winnerId = _.find(message.payload.winners, winner => winner.placement === 1).userId logger.info(`Will close the challenge with ID ${legacyId}. Winner ${winnerId}!`) await closeChallenge(legacyId, winnerId) + needSyncV4ES = true } else { logger.info('Challenge type is not a task.. Skip closing challenge...') } @@ -726,9 +730,18 @@ async function processMessage (message) { if (!_.get(message.payload, 'task.isTask')) { const numOfReviewers = 2 await syncChallengePhases(legacyId, message.payload.phases, createdByUserId, _.get(message, 'payload.legacy.selfService'), numOfReviewers) + needSyncV4ES = true } else { logger.info('Will skip syncing phases as the challenge is a task...') } + if (needSyncV4ES) { + try { + logger.info(`Resync V4 ES for the legacy challenge ${legacyId}`) + await helper.forceV4ESFeeder(legacyId) + } catch (e) { + logger.warn(`Resync V4 - Failed to call V4 ES Feeder ${JSON.stringify(e)}`) + } + } } } From de51cd40125688ed75d291a4c360920cd2c7ff0c Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Thu, 5 May 2022 19:19:51 +0800 Subject: [PATCH 5/5] reset ci --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ce90b94..3a78bbe 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,7 +70,6 @@ workflows: branches: only: - develop - - restore-group-fix # Production builds are exectuted only on tagged commits to the # master branch.