2
0

🐛 (webhook) Fix parent linked typebot data parsing in webhook

This commit is contained in:
Baptiste Arnaud
2022-12-22 11:49:46 +01:00
parent d1b5b6ebe6
commit c3985b0d50
15 changed files with 166 additions and 75 deletions

View File

@ -1,4 +1,3 @@
import { getLinkedTypebots } from '@/features/blocks/logic/typebotLink/api'
import { ExecuteIntegrationResponse } from '@/features/chat'
import { saveErrorLog, saveSuccessLog } from '@/features/logs/api'
import { parseVariables } from '@/features/variables'
@ -183,13 +182,12 @@ const getEmailBody = async ({
where: { typebotId },
})) as unknown as PublicTypebot
if (!typebot) return
const linkedTypebots = await getLinkedTypebots(typebot)
const resultValues = (await prisma.result.findUnique({
where: { id: resultId },
include: { answers: true },
})) as ResultValues | null
if (!resultValues) return
const answers = parseAnswers(typebot, linkedTypebots)(resultValues)
const answers = parseAnswers(typebot, [])(resultValues)
return {
html: render(
<DefaultBotNotificationEmail

View File

@ -24,7 +24,6 @@ import { stringify } from 'qs'
import { byId, omit, parseAnswers } from 'utils'
import got, { Method, Headers, HTTPError } from 'got'
import { getResultValues } from '@/features/results/api'
import { getLinkedTypebots } from '@/features/blocks/logic/typebotLink/api'
import { parseSampleResult } from './parseSampleResult'
export const executeWebhookBlock = async (
@ -45,7 +44,7 @@ export const executeWebhookBlock = async (
const preparedWebhook = prepareWebhookAttributes(webhook, block.options)
const resultValues = await getResultValues(result.id)
if (!resultValues) return { outgoingEdgeId: block.outgoingEdgeId }
const webhookResponse = await executeWebhook(typebot)(
const webhookResponse = await executeWebhook({ typebot })(
preparedWebhook,
typebot.variables,
block.groupId,
@ -112,7 +111,7 @@ const prepareWebhookAttributes = (
const checkIfBodyIsAVariable = (body: string) => /^{{.+}}$/.test(body)
export const executeWebhook =
(typebot: SessionState['typebot']) =>
({ typebot }: Pick<SessionState, 'typebot'>) =>
async (
webhook: Webhook,
variables: Variable[],
@ -148,11 +147,10 @@ export const executeWebhook =
convertKeyValueTableToObject(webhook.queryParams, variables)
)
const contentType = headers ? headers['Content-Type'] : undefined
const linkedTypebots = await getLinkedTypebots(typebot)
const bodyContent = await getBodyContent(
typebot,
linkedTypebots
[]
)({
body: webhook.body,
resultValues,