| 
									
										
										
										
											2018-09-03 11:23:18 +01:00
										 |  |  | import emptyProtector from './empty-protector'; | 
					
						
							| 
									
										
										
										
											2017-08-03 20:45:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-18 19:32:49 +00:00
										 |  |  | export function checkMapData({ | 
					
						
							|  |  |  |   entities: { challenge, block, superBlock }, | 
					
						
							|  |  |  |   result: { superBlocks } | 
					
						
							|  |  |  | }) { | 
					
						
							| 
									
										
										
										
											2017-08-03 20:45:36 -07:00
										 |  |  |   if ( | 
					
						
							|  |  |  |     !challenge || | 
					
						
							|  |  |  |     !block || | 
					
						
							|  |  |  |     !superBlock || | 
					
						
							|  |  |  |     !superBlocks || | 
					
						
							|  |  |  |     !superBlocks.length | 
					
						
							|  |  |  |   ) { | 
					
						
							| 
									
										
										
										
											2019-02-18 19:32:49 +00:00
										 |  |  |     throw new Error('entities not found, db may not be properly seeded'); | 
					
						
							| 
									
										
										
										
											2017-08-03 20:45:36 -07:00
										 |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | // getFirstChallenge(
 | 
					
						
							|  |  |  | //   map: {
 | 
					
						
							|  |  |  | //     entities: { challenge: Object, block: Object, superBlock: Object },
 | 
					
						
							|  |  |  | //     result: [...superBlockDashedName: String]
 | 
					
						
							|  |  |  | //   }
 | 
					
						
							|  |  |  | // ) => Challenge|Void
 | 
					
						
							|  |  |  | export function getFirstChallenge({ | 
					
						
							|  |  |  |   entities: { superBlock, block, challenge }, | 
					
						
							|  |  |  |   result: { superBlocks } | 
					
						
							|  |  |  | }) { | 
					
						
							|  |  |  |   return challenge[ | 
					
						
							| 
									
										
										
										
											2019-02-18 19:32:49 +00:00
										 |  |  |     emptyProtector(block[emptyProtector(superBlock[superBlocks[0]]).blocks[0]]) | 
					
						
							|  |  |  |       .challenges[0] | 
					
						
							| 
									
										
										
										
											2017-08-03 20:45:36 -07:00
										 |  |  |   ]; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // let challengeDashedName: String;
 | 
					
						
							|  |  |  | // createNameIdMap({
 | 
					
						
							|  |  |  | //  challenge: {
 | 
					
						
							|  |  |  | //    [...challengeDashedName ]: Challenge
 | 
					
						
							|  |  |  | // }) => {
 | 
					
						
							|  |  |  | //   challengeIdToName: {
 | 
					
						
							|  |  |  | //     [ ...challengeId ]: challengeDashedName
 | 
					
						
							|  |  |  | //   }
 | 
					
						
							|  |  |  | //  };
 | 
					
						
							|  |  |  | export function createNameIdMap({ challenge }) { | 
					
						
							|  |  |  |   return { | 
					
						
							| 
									
										
										
										
											2019-02-18 19:32:49 +00:00
										 |  |  |     challengeIdToName: Object.keys(challenge).reduce((map, challengeName) => { | 
					
						
							|  |  |  |       map[challenge[challengeName].id] = challenge[challengeName].dashedName; | 
					
						
							|  |  |  |       return map; | 
					
						
							|  |  |  |     }, {}) | 
					
						
							| 
									
										
										
										
											2017-08-03 20:45:36 -07:00
										 |  |  |   }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | // addNameIdMap(
 | 
					
						
							|  |  |  | //  map: { entities; Object, ...rest }
 | 
					
						
							|  |  |  | // ) => { ...rest, entities: Object };
 | 
					
						
							|  |  |  | export function addNameIdMap({ entities, ...rest }) { | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     ...rest, | 
					
						
							|  |  |  |     entities: { | 
					
						
							|  |  |  |       ...entities, | 
					
						
							|  |  |  |       ...createNameIdMap(entities) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |