From ad93e49b7d7f22d6cb3f112565d8a4f70b7cdcb0 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Wed, 1 Jun 2016 17:22:06 -0700 Subject: [PATCH] Fix challenge ordering --- server/services/map.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/server/services/map.js b/server/services/map.js index c01b7f691f..95a5549c0c 100644 --- a/server/services/map.js +++ b/server/services/map.js @@ -64,6 +64,28 @@ function cachedMap(Block) { }, {}) .map(map => normalize(map, mapSchema)) .map(map => { + // make sure challenges are in the right order + map.entities.block = Object.keys(map.entities.block) + // turn map into array + .map(key => map.entities.block[key]) + // perform re-order + .map(block => { + block.challenges = block.challenges.reduce((accu, dashedName) => { + const index = map.entities.challenge[dashedName].suborder; + accu[index - 1] = dashedName; + return accu; + }, []); + return block; + }) + // turn back into map + .reduce((blockMap, block) => { + blockMap[block.dashedName] = block; + return blockMap; + }, {}); + return map; + }) + .map(map => { + // re-order superBlocks result const result = Object.keys(map.result).reduce((result, supName) => { const index = map.entities.superBlock[supName].order; result[index] = supName;