Fix for block order

pull/5058/head
Berkeley Martinez 2015-12-11 15:45:48 -08:00
parent cdd067607f
commit 2d559efdee
1 changed files with 8 additions and 17 deletions

View File

@ -133,34 +133,24 @@ module.exports = function(app) {
.shareReplay();
// create a stream of challenge blocks
const superBlocks$ = challenge$
const blocks$ = challenge$
.map(challenge => challenge.toJSON())
// group challenges by block | returns a stream of observables
.groupBy(challenge => challenge.block)
// turn block group stream into an array
.flatMap(blocks$ => blocks$.toArray())
// turn array into stream of object
.map(blockArray => ({
name: blockArray[0].block,
dashedName: dasherize(blockArray[0].block),
challenges: blockArray,
superBlock: blockArray[0].superBlock
.map(blocksArray => ({
name: blocksArray[0].block,
dashedName: dasherize(blocksArray[0].block),
challenges: blocksArray,
superBlock: blocksArray[0].superBlock,
order: blocksArray[0].order
}))
// filter out hikes
.filter(({ superBlock }) => {
return !(/hikes/gi).test(superBlock);
})
.groupBy(block => block.superBlock)
.flatMap(superBlocks$ => superBlocks$.toArray())
.map(superBlockArr => ({
name: superBlockArr[0].superBlock,
superOrder: superBlockArr[0].superOrder,
blocks: superBlockArr
}))
.shareReplay();
const blocks$ = superBlocks$
.flatMap(superBlock => Observable.from(superBlock.blocks))
.shareReplay();
const User = app.models.User;
@ -206,6 +196,7 @@ module.exports = function(app) {
const blockIndex$ = blocks$
.findIndex(({ name }) => name === challenge.block);
return blockIndex$
.flatMap(blockIndex => {
// could not find block?