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 {dictionary} DATA_ALL the data | ||||||
| 	@param {object} DATA_PATH the path of 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 | 	@return {object} the data | ||||||
| 	*/ | 	*/ | ||||||
| 	function find_data(DATA_ALL, DATA_PATH, PARAMETER_TEST) { | 	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; | 		let DATA_SELECTED = DATA_ALL; | ||||||
| 
 | 
 | ||||||
| 		// Only run when the data is valid.
 | 		// Pull the data out.
 | ||||||
| 		if (DATA_ALL) { | 		if (DATA_ALL && DATA_PATH && (DATA_PATH != null) ? DATA_PATH.length > 0 : false) { | ||||||
| 			if (DATA_SELECTED) { | 			let DATA_PATH_SELECTED = String(DATA_PATH.shift()).trim(); | ||||||
|  | 			 | ||||||
| 			// Get the selected data.
 | 			// Get the selected data.
 | ||||||
| 			DATA_SELECTED = DATA_ALL[DATA_PATH_SELECTED]; | 			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.
 | 				// Recursively run to make use of the existing data.
 | ||||||
| 				DATA_SELECTED = find_data(DATA_SELECTED, DATA_PATH, PARAMETER_TEST); | 				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 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.
 | 			// Perform a sequential search.
 | ||||||
| 			for ( | 			for ( | ||||||
| 				let DATA_SELECTED_KEY_INDEX = 0; | 				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++ | 				DATA_SELECTED_KEY_INDEX++ | ||||||
| 			) { | 			) { | ||||||
| 				PARAMETER_TEST[`value`] = | 				PARAMETER_TEST[`value`] = | ||||||
|  | @ -128,12 +127,7 @@ export async function read(DATA_NAME, CLOUD = 0, PARAMETER_TEST = null) { | ||||||
| 			if (!QUALIFIED) { | 			if (!QUALIFIED) { | ||||||
| 				DATA_SELECTED = null; | 				DATA_SELECTED = null; | ||||||
| 			} | 			} | ||||||
| 				} else { | 		} else {return (null);} | ||||||
| 					// It is not valid, so do not return anything.
 |  | ||||||
| 					DATA_SELECTED = null; |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 
 | 
 | ||||||
| 		// Now return the data.
 | 		// Now return the data.
 | ||||||
| 		return DATA_SELECTED; | 		return DATA_SELECTED; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue