refactor: simplify computed webhook event

This commit is contained in:
Ali BARIN
2022-11-30 02:11:56 +01:00
parent b5436fe7fa
commit d2a6c45fd6

View File

@@ -1,4 +1,3 @@
import { IJSONObject } from '@automatisch/types';
import appConfig from '../../../../config/app'; import appConfig from '../../../../config/app';
import defineTrigger from '../../../../helpers/define-trigger'; import defineTrigger from '../../../../helpers/define-trigger';
@@ -29,58 +28,36 @@ export default defineTrigger({
], ],
async testRun($) { async testRun($) {
const createApiResponse = await $.http.get( const { data: form } = await $.http.get(
`/forms/${$.step.parameters.formId}` `/forms/${$.step.parameters.formId}`
); );
const responsesApiResponse = await $.http.get( const { data: responses } = await $.http.get(
`/forms/${$.step.parameters.formId}/responses` `/forms/${$.step.parameters.formId}/responses`
); );
const lastResponse = responsesApiResponse.data.items[0]; const lastResponse = responses.items[0];
const computedResponseItem = { const computedWebhookEvent = {
event_type: 'form_response', event_type: 'form_response',
form_response: { form_response: {
form_id: $.step.parameters.formId, form_id: form.id,
token: lastResponse.token, token: lastResponse.token,
landed_at: lastResponse.landed_at, landed_at: lastResponse.landed_at,
submitted_at: lastResponse.submitted_at, submitted_at: lastResponse.submitted_at,
definion: { definition: {
id: $.step.parameters.formId, id: $.step.parameters.formId,
title: createApiResponse.data.title, title: form.title,
fields: createApiResponse.data?.fields?.map((field: IJSONObject) => ({ fields: form?.fields,
id: field.id,
ref: field.ref,
type: field.type,
title: field.title,
properties: {},
choices: (
(field?.properties as IJSONObject)?.choices as IJSONObject[]
)?.map((choice) => ({
id: choice.id,
label: choice.label,
})),
})),
}, },
answers: lastResponse.answers?.map((answer: IJSONObject) => ({ answers: lastResponse.answers,
type: answer.type,
choice: {
label: (answer?.choice as IJSONObject)?.label,
},
field: {
id: (answer.field as IJSONObject).id,
ref: (answer.field as IJSONObject).ref,
type: (answer.field as IJSONObject).type,
},
})),
}, },
}; };
const dataItem = { const dataItem = {
raw: computedResponseItem, raw: computedWebhookEvent,
meta: { meta: {
internalId: computedResponseItem.form_response.token, internalId: computedWebhookEvent.form_response.token,
}, },
}; };