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