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

Commit

Permalink
Merge pull request #80 from topcoder-platform/develop
Browse files Browse the repository at this point in the history
[Next Release] Fix challenge associations data loss
  • Loading branch information
LieutenantRoger authored Apr 29, 2022
2 parents 2bbd2a1 + c71b81c commit cfea9a6
Showing 1 changed file with 28 additions and 9 deletions.
37 changes: 28 additions & 9 deletions src/services/ProcessorService.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,10 +199,11 @@ async function getV5Terms (v5TermsId, m2mToken) {
*/
async function associateChallengeGroups (v5groups, legacyId, m2mToken) {
const { groupsToBeAdded, groupsToBeDeleted } = await getGroups(v5groups, legacyId, m2mToken)

logger.info(`Groups to add to challenge: ${legacyId}: ${JSON.stringify(groupsToBeAdded)}`)
for (const group of groupsToBeAdded) {
await groupService.addGroupToChallenge(legacyId, group)
}
logger.info(`Groups to remove from challenge: ${legacyId}: ${JSON.stringify(groupsToBeDeleted)}`)
for (const group of groupsToBeDeleted) {
await groupService.removeGroupFromChallenge(legacyId, group)
}
Expand All @@ -224,10 +225,10 @@ async function associateChallengeTerms (v5Terms, legacyChallengeId, createdBy, u
const standardTerms = _.find(v5Terms, e => e.id === config.V5_TERMS_STANDARD_ID)
const legacyStandardTerms = _.find(legacyTermsArray, e => _.toNumber(e.id) === _.toNumber(config.LEGACY_TERMS_STANDARD_ID))

logger.debug(`NDA: ${config.V5_TERMS_NDA_ID} - ${JSON.stringify(nda)}`)
logger.debug(`Standard Terms: ${config.V5_TERMS_STANDARD_ID} - ${JSON.stringify(standardTerms)}`)
logger.debug(`Legacy NDA: ${JSON.stringify(legacyNDA)}`)
logger.debug(`Legacy Standard Terms: ${JSON.stringify(legacyStandardTerms)}`)
// logger.debug(`NDA: ${config.V5_TERMS_NDA_ID} - ${JSON.stringify(nda)}`)
// logger.debug(`Standard Terms: ${config.V5_TERMS_STANDARD_ID} - ${JSON.stringify(standardTerms)}`)
// logger.debug(`Legacy NDA: ${JSON.stringify(legacyNDA)}`)
// logger.debug(`Legacy Standard Terms: ${JSON.stringify(legacyStandardTerms)}`)

const m2mToken = await helper.getM2MToken()
if (standardTerms && standardTerms.id && !legacyStandardTerms) {
Expand Down Expand Up @@ -646,13 +647,28 @@ 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
Expand All @@ -678,10 +694,13 @@ async function processMessage (message) {
}
}

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)
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)
}

if (message.payload.status && challenge) {
// logger.info(`The status has changed from ${challenge.currentStatus} to ${message.payload.status}`)
Expand Down

0 comments on commit cfea9a6

Please sign in to comment.