From afa4d22d409164cd2c1472b7a41f2bf5e0a5ef7f Mon Sep 17 00:00:00 2001 From: Abdul Qoyyuum Date: Fri, 24 Oct 2025 11:24:15 +0800 Subject: [PATCH] feat: add support for nested list handling in webhook request content mapping --- iris_webhooks_module/IrisWebHooksInterface.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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):