diff --git a/iris_webhooks_module/IrisWebHooksInterface.py b/iris_webhooks_module/IrisWebHooksInterface.py index 2496f95..a92eb8a 100644 --- a/iris_webhooks_module/IrisWebHooksInterface.py +++ b/iris_webhooks_module/IrisWebHooksInterface.py @@ -476,11 +476,21 @@ def map_request_content(self, request_content, data): # Handle templated strings result[key] = self.replace_template_placeholders(value, data) - # handle nested values + # handle nested dicts elif isinstance(value, dict): result[key] = self.map_request_content(value, data) - else: + # handle nested lists + elif isinstance(value, list): + result[key] = [ + self.map_request_content(item, data) if isinstance(item, dict) + else self.replace_template_placeholders(item, data) if isinstance(item, str) and '${{' in item + else item + for item in value + ] + + # handle string paths like "field.subfield" + elif isinstance(value, str): keys = value.split('.') if isinstance(data.get(keys[0]), list): @@ -498,6 +508,10 @@ def map_request_content(self, request_content, data): nested_value = self.get_nested(data, keys) result[key] = nested_value if nested_value is not None else "" + # pass through other types as-is + else: + result[key] = value + return result def _render_url(self, url, link, rendering_format):