diff --git a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/WebhookSettings.tsx b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/WebhookSettings.tsx index d1b76b527..eaa62d6d7 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/WebhookSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/webhook/components/WebhookSettings/WebhookSettings.tsx @@ -130,7 +130,39 @@ export const WebhookSettings = ({ if (error) return showToast({ title: error.name, description: error.message }) setTestResponse(JSON.stringify(data, undefined, 2)) - setResponseKeys(getDeepKeys(data)) + setResponseKeys( + getDeepKeys({ + employees: [ + { + name: 'Shyam', + email: 'shyamjaiswal@gmail.com', + employees: [ + { name: 'Shyam', email: 'shyamjaiswal@gmail.com' }, + { name: 'Bob', email: 'bob32@gmail.com' }, + { name: 'Jai', email: 'jai87@gmail.com' }, + ], + }, + { + name: 'Bob', + email: 'bob32@gmail.com', + employees: [ + { name: 'Shyam', email: 'shyamjaiswal@gmail.com' }, + { name: 'Bob', email: 'bob32@gmail.com' }, + { name: 'Jai', email: 'jai87@gmail.com' }, + ], + }, + { + name: 'Jai', + email: 'jai87@gmail.com', + employees: [ + { name: 'Shyam', email: 'shyamjaiswal@gmail.com' }, + { name: 'Bob', email: 'bob32@gmail.com' }, + { name: 'Jai', email: 'jai87@gmail.com' }, + ], + }, + ], + }) + ) setIsTestResponseLoading(false) } diff --git a/apps/builder/src/features/blocks/integrations/webhook/utils/getDeepKeys.ts b/apps/builder/src/features/blocks/integrations/webhook/utils/getDeepKeys.ts index ed6dd4b87..676c415a9 100644 --- a/apps/builder/src/features/blocks/integrations/webhook/utils/getDeepKeys.ts +++ b/apps/builder/src/features/blocks/integrations/webhook/utils/getDeepKeys.ts @@ -11,19 +11,18 @@ export const getDeepKeys = (obj: any): string[] => { ) } else if (Array.isArray(obj[key])) { if (obj[key].length === 0) continue - if (obj[key].length === 1) { - const subkeys = getDeepKeys(obj[key][0]) + + const subkeys = getDeepKeys(obj[key][0]) + if (obj[key].length > 1) { keys = keys.concat( subkeys.map(function (subkey) { - return `${key}[0]${parseKey(subkey)}` + return `${key}.flatMap(item => item${parseKey(subkey)})` }) ) - continue } - const subkeys = getDeepKeys(obj[key][0]) keys = keys.concat( - subkeys.map(function (subkey) { - return `${key}.flatMap(item => item${parseKey(subkey)})` + subkeys.map(function (subkey, idx) { + return `${key}[${idx}]${parseKey(subkey)}` }) ) } else {