/**
* Injects API payload parameters for validation checks with dry-run mode.
* @param {object} validationConfig - Configuration object for validation checks.
* @param {function} validatePayload - Function to validate the payload.
* @param {boolean} dryRun - Flag to enable dry-run mode (true/false).
* @returns {object} - Object containing injected parameters and validation results.
*/
function injectAndValidate(validationConfig, validatePayload, dryRun) {
const injectedParams = {};
// Inject parameters based on validationConfig
for (const paramName in validationConfig.params) {
if (validationConfig.params.hasOwnProperty(paramName)) {
const paramConfig = validationConfig.params[paramName];
injectedParams[paramName] = paramConfig.value; // Assign the value
}
}
// Add any other parameters specified in the config
for(const paramName in validationConfig.otherParams) {
if(validationConfig.otherParams.hasOwnProperty(paramName)) {
injectedParams[paramName] = validationConfig.otherParams[paramName];
}
}
// Perform validation checks
let validationResults = {};
try {
validationResults = validatePayload(injectedParams, validationConfig.rules);
} catch (error) {
validationResults = { error: error.message }; // Capture errors
}
return {
injectedParams: injectedParams,
validationResults: validationResults,
};
}
Add your comment