🚸 (webhook) Also add atomic deep keys selection
This commit is contained in:
@ -130,7 +130,39 @@ export const WebhookSettings = ({
|
|||||||
if (error)
|
if (error)
|
||||||
return showToast({ title: error.name, description: error.message })
|
return showToast({ title: error.name, description: error.message })
|
||||||
setTestResponse(JSON.stringify(data, undefined, 2))
|
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)
|
setIsTestResponseLoading(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,21 +11,20 @@ export const getDeepKeys = (obj: any): string[] => {
|
|||||||
)
|
)
|
||||||
} else if (Array.isArray(obj[key])) {
|
} else if (Array.isArray(obj[key])) {
|
||||||
if (obj[key].length === 0) continue
|
if (obj[key].length === 0) continue
|
||||||
if (obj[key].length === 1) {
|
|
||||||
const subkeys = getDeepKeys(obj[key][0])
|
|
||||||
keys = keys.concat(
|
|
||||||
subkeys.map(function (subkey) {
|
|
||||||
return `${key}[0]${parseKey(subkey)}`
|
|
||||||
})
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
const subkeys = getDeepKeys(obj[key][0])
|
const subkeys = getDeepKeys(obj[key][0])
|
||||||
|
if (obj[key].length > 1) {
|
||||||
keys = keys.concat(
|
keys = keys.concat(
|
||||||
subkeys.map(function (subkey) {
|
subkeys.map(function (subkey) {
|
||||||
return `${key}.flatMap(item => item${parseKey(subkey)})`
|
return `${key}.flatMap(item => item${parseKey(subkey)})`
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
keys = keys.concat(
|
||||||
|
subkeys.map(function (subkey, idx) {
|
||||||
|
return `${key}[${idx}]${parseKey(subkey)}`
|
||||||
|
})
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
keys.push(key)
|
keys.push(key)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user