106a6 integration performance issues (#581)

* apply performance fixes

* fix integration

* Update client/components/open/forms/components/FirstSubmissionModal.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix unique cache for forms

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
Favour Olayinka
2024-10-01 11:42:03 +01:00
committed by GitHub
parent 5346054584
commit dea8fe5741
3 changed files with 118 additions and 7 deletions

View File

@@ -52,11 +52,15 @@ class IntegrationController
$this->authorize('view', $form);
$lastSubmission = $form->submissions()->latest()->first();
$submissionData = null;
if (!$lastSubmission) {
// Generate fake data when no previous submissions
$submissionData = (new FormSubmissionDataFactory($form))->asFormSubmissionData()->createSubmissionData();
}
$cacheKey = "zapier-poll-submissions-{$form->id}";
return (array) \Cache::remember($cacheKey, 60 * 5, function () use ($form, $submissionData, $lastSubmission) {
return [ZapierIntegration::formatWebhookData($form, $submissionData ?? $lastSubmission->data)];
});
return [ZapierIntegration::formatWebhookData($form, $submissionData ?? $lastSubmission->data)];
}
}

View File

@@ -114,13 +114,12 @@ abstract class AbstractIntegrationHandler
// Old format - kept for retro-compatibility
$oldFormatData = [];
foreach ($formatter->getFieldsWithValue() as $field) {
$oldFormatData[$field['name']] = $field['value'];
}
// New format using ID
$formattedData = [];
foreach ($formatter->getFieldsWithValue() as $field) {
$fieldsWithValue = $formatter->getFieldsWithValue();
foreach ($fieldsWithValue as $field) {
$oldFormatData[$field['name']] = $field['value'];
// New format using ID
$formattedData[$field['id']] = [
'value' => $field['value'],
'name' => $field['name'],