fixed parameter testing
This commit is contained in:
		
							parent
							
								
									917266dfd2
								
							
						
					
					
						commit
						fdf69cd9f4
					
				
					 1 changed files with 42 additions and 48 deletions
				
			
		|  | @ -77,33 +77,32 @@ export async function read(DATA_NAME, CLOUD = 0, PARAMETER_TEST = null) { | |||
| 
 | ||||
| 	@param {dictionary} DATA_ALL the data | ||||
| 	@param {object} DATA_PATH the path of the data | ||||
| 	@param {object} PARAMETER_TEST what among the value to test | ||||
| 	@return {object} the data | ||||
| 	*/ | ||||
| 	function find_data(DATA_ALL, DATA_PATH, PARAMETER_TEST) { | ||||
| 		// Pull the data out.
 | ||||
| 		let DATA_PATH_SELECTED = String(DATA_PATH.shift()).trim(); | ||||
| 		let DATA_SELECTED = DATA_ALL; | ||||
| 
 | ||||
| 		// Only run when the data is valid.
 | ||||
| 		if (DATA_ALL) { | ||||
| 			if (DATA_SELECTED) { | ||||
| 		// Pull the data out.
 | ||||
| 		if (DATA_ALL && DATA_PATH && (DATA_PATH != null) ? DATA_PATH.length > 0 : false) { | ||||
| 			let DATA_PATH_SELECTED = String(DATA_PATH.shift()).trim(); | ||||
| 			 | ||||
| 			// Get the selected data.
 | ||||
| 			DATA_SELECTED = DATA_ALL[DATA_PATH_SELECTED]; | ||||
| 
 | ||||
| 				if (DATA_PATH.length > 0) { | ||||
| 			// must run if there is actually a parameter to test
 | ||||
| 			if (DATA_PATH.length > 0 || (((PARAMETER_TEST != null) ? PARAMETER_TEST.length > 0 : false) ? PARAMETER_TEST[`field`] : false)) { | ||||
| 				// Recursively run to make use of the existing data.
 | ||||
| 				DATA_SELECTED = find_data(DATA_SELECTED, DATA_PATH, PARAMETER_TEST); | ||||
| 			} | ||||
| 			} else if (PARAMETER_TEST && DATA_SELECTED) { | ||||
| 		} else if ((PARAMETER_TEST) ? (!!PARAMETER_TEST[`field`] && !!PARAMETER_TEST[`test value`]) : false) { | ||||
| 			let QUALIFIED = false; | ||||
| 			let DATA_SELECTED_KEYS = Object.keys(DATA_SELECTED); | ||||
| 
 | ||||
| 				// The expected keys are "field" and "test value"
 | ||||
| 				DATA_SELECTED_KEYS = Object.keys(DATA_SELECTED); | ||||
| 				if (PARAMETER_TEST[`field`] && PARAMETER_TEST[`test value`]) { | ||||
| 			// Perform a sequential search.
 | ||||
| 			for ( | ||||
| 				let DATA_SELECTED_KEY_INDEX = 0; | ||||
| 						DATA_SELECTED_KEY_INDEX < DATA_SELECTED_KEYS.length || !QUALIFIED; | ||||
| 				(DATA_SELECTED_KEY_INDEX < DATA_SELECTED_KEYS.length) && !QUALIFIED; | ||||
| 				DATA_SELECTED_KEY_INDEX++ | ||||
| 			) { | ||||
| 				PARAMETER_TEST[`value`] = | ||||
|  | @ -128,12 +127,7 @@ export async function read(DATA_NAME, CLOUD = 0, PARAMETER_TEST = null) { | |||
| 			if (!QUALIFIED) { | ||||
| 				DATA_SELECTED = null; | ||||
| 			} | ||||
| 				} else { | ||||
| 					// It is not valid, so do not return anything.
 | ||||
| 					DATA_SELECTED = null; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		} else {return (null);} | ||||
| 
 | ||||
| 		// Now return the data.
 | ||||
| 		return DATA_SELECTED; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue