diff --git a/src/reducers/challenge.js b/src/reducers/challenge.js index 26cee382..6db8365f 100644 --- a/src/reducers/challenge.js +++ b/src/reducers/challenge.js @@ -62,7 +62,15 @@ function onGetDetailsDone(state, action) { } const details = action.payload; - if (_.toString(details.id) !== state.loadingDetailsForChallengeId) { + + // condition based on ROUTE used for Review Opportunities, change if needed + const challengeId = state.loadingDetailsForChallengeId; + let compareChallenge = details.id; + if (challengeId.length >= 5 && challengeId.length <= 8) { + compareChallenge = details.legacyId; + } + + if (_.toString(compareChallenge) !== challengeId) { return state; } diff --git a/src/services/challenges.js b/src/services/challenges.js index 203c5b3c..31b001e0 100644 --- a/src/services/challenges.js +++ b/src/services/challenges.js @@ -319,10 +319,20 @@ class ChallengesService { * @return {Promise} Resolves to the challenge object. */ async getChallengeDetails(challengeId) { - const challengeFiltered = await this.private.getChallenges('/challenges/', { id: challengeId }) + let isLegacyChallenge = false; + const filters = {}; + // condition based on ROUTE used for Review Opportunities, change if needed + if (challengeId.length >= 5 && challengeId.length <= 8) { + isLegacyChallenge = true; + filters.legacyId = challengeId; + } else { + filters.id = challengeId; + } + const challengeFiltered = await this.private.getChallenges('/challenges/', filters) .then(res => res.challenges[0]); if (challengeFiltered) { + challengeFiltered.isLegacyChallenge = isLegacyChallenge; const { events } = challengeFiltered.metadata; if (events) { challengeFiltered.events = _.map(events, e => ({