1. /**
  2. * Injects API payload parameters for validation checks with dry-run mode.
  3. * @param {object} validationConfig - Configuration object for validation checks.
  4. * @param {function} validatePayload - Function to validate the payload.
  5. * @param {boolean} dryRun - Flag to enable dry-run mode (true/false).
  6. * @returns {object} - Object containing injected parameters and validation results.
  7. */
  8. function injectAndValidate(validationConfig, validatePayload, dryRun) {
  9. const injectedParams = {};
  10. // Inject parameters based on validationConfig
  11. for (const paramName in validationConfig.params) {
  12. if (validationConfig.params.hasOwnProperty(paramName)) {
  13. const paramConfig = validationConfig.params[paramName];
  14. injectedParams[paramName] = paramConfig.value; // Assign the value
  15. }
  16. }
  17. // Add any other parameters specified in the config
  18. for(const paramName in validationConfig.otherParams) {
  19. if(validationConfig.otherParams.hasOwnProperty(paramName)) {
  20. injectedParams[paramName] = validationConfig.otherParams[paramName];
  21. }
  22. }
  23. // Perform validation checks
  24. let validationResults = {};
  25. try {
  26. validationResults = validatePayload(injectedParams, validationConfig.rules);
  27. } catch (error) {
  28. validationResults = { error: error.message }; // Capture errors
  29. }
  30. return {
  31. injectedParams: injectedParams,
  32. validationResults: validationResults,
  33. };
  34. }

Add your comment