Remove old code related to notifications (#363)

* Integrations Refactoring - WIP

* integrations list & edit - WIP

* Fix integration store binding issue

* integrations refactor - WIP

* Form integration - WIP

* Form integration Edit - WIP

* Integration Refactor - Slack - WIP

* Integration Refactor - Discord - WIP

* Integration Refactor - Webhook - WIP

* Integration Refactor - Send Submission Confirmation - WIP

* Integration Refactor - Backend handler - WIP

* Form Integration Status field

* Integration Refactor - Backend SubmissionConfirmation - WIP

* IntegrationMigration Command

* skip confirmation email test case

* Small refactoring

* FormIntegration status active/inactive

* formIntegrationData to integrationData

* Rename file name with Integration suffix for integration realted files

* Loader on form integrations

* WIP

* form integration test case

* WIP

* Added Integration card - working on refactoring

* change location for IntegrationCard and update package file

* Form Integration Create/Edit in single Modal

* Remove integration extra pages

* crisp_help_page_slug for integration json

* integration logic as collapse

* UI improvements

* WIP

* Trying to debug vue devtools

* WIP for integrations

* getIntegrationHandler change namespace name

* useForm for integration fields + validation structure

* Integration Test case & apply validation rules

* Apply useform changes to integration other files

* validation rules for FormNotificationsMessageActions fields

* Zapier integration as coming soon

* Update FormCleaner

* set default settings for confirmation integration

* WIP

* Finish validation for all integrations

* Updated purify, added integration formatData

* Fix testcase

* Ran pint; working on integration errors

* Handle integration events

* Remove old code related to notifications

* command for Delete Old Integration Events

* Display Past Events in Modal

* on Integration event create with status error send email to form creator

* Polish styling

* Minor improvements

* Finish badge and integration status

* Fix tests and add an integration event test

* Run linters

---------

Co-authored-by: Forms Dev <chirag+new@notionforms.io>
Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
Chirag Chhatrala
2024-03-28 23:16:29 +05:30
committed by GitHub
parent 6f61faa9ef
commit 35efd6711d
27 changed files with 94 additions and 1020 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Models\Forms;
use App\Events\Models\FormCreated;
use App\Models\Integration\FormIntegration;
use App\Models\Integration\FormZapierWebhook;
use App\Models\Traits\CachableAttributes;
use App\Models\Traits\CachesAttributes;
@@ -41,21 +42,6 @@ class Form extends Model implements CachableAttributes
'properties',
'removed_properties',
// Notifications
'notifies',
'notification_emails',
'send_submission_confirmation',
'notification_sender',
'notification_subject',
'notification_body',
'notifications_include_submission',
'slack_webhook_url',
'discord_webhook_url',
'notification_settings',
// integrations
'webhook_url',
'title',
'description',
'tags',
@@ -109,8 +95,7 @@ class Form extends Model implements CachableAttributes
'closes_at' => 'datetime',
'tags' => 'array',
'removed_properties' => 'array',
'seo_meta' => 'object',
'notification_settings' => 'object',
'seo_meta' => 'object'
];
protected $appends = [
@@ -119,20 +104,10 @@ class Form extends Model implements CachableAttributes
protected $hidden = [
'workspace_id',
'notifies',
'slack_webhook_url',
'discord_webhook_url',
'webhook_url',
'send_submission_confirmation',
'redirect_url',
'database_fields_update',
'notification_sender',
'notification_subject',
'notification_body',
'notifications_include_submission',
'password',
'tags',
'notification_emails',
'removed_properties',
];
@@ -161,15 +136,15 @@ class Form extends Model implements CachableAttributes
public function getShareUrlAttribute()
{
if ($this->custom_domain) {
return 'https://'.$this->custom_domain.'/forms/'.$this->slug;
return 'https://' . $this->custom_domain . '/forms/' . $this->slug;
}
return front_url('/forms/'.$this->slug);
return front_url('/forms/' . $this->slug);
}
public function getEditUrlAttribute()
{
return front_url('/forms/'.$this->slug.'/show');
return front_url('/forms/' . $this->slug . '/show');
}
public function getSubmissionsCountAttribute()
@@ -218,7 +193,7 @@ class Form extends Model implements CachableAttributes
public function getFormPendingSubmissionKeyAttribute()
{
if ($this->updated_at?->timestamp) {
return 'openform-'.$this->id.'-pending-submission-'.substr($this->updated_at?->timestamp, -6);
return 'openform-' . $this->id . '-pending-submission-' . substr($this->updated_at?->timestamp, -6);
}
return null;
@@ -241,7 +216,7 @@ class Form extends Model implements CachableAttributes
public function getHasPasswordAttribute()
{
return ! empty($this->password);
return !empty($this->password);
}
public function getMaxFileSizeAttribute()
@@ -293,6 +268,11 @@ class Form extends Model implements CachableAttributes
return $this->hasMany(FormZapierWebhook::class);
}
public function integrations()
{
return $this->hasMany(FormIntegration::class);
}
/**
* Config/options
*/
@@ -301,7 +281,7 @@ class Form extends Model implements CachableAttributes
return SlugOptions::create()
->doNotGenerateSlugsOnUpdate()
->generateSlugsFrom(function (Form $form) {
return $form->title.' '.Str::random(6);
return $form->title . ' ' . Str::random(6);
})
->saveSlugsTo('slug');
}
@@ -310,19 +290,4 @@ class Form extends Model implements CachableAttributes
{
return FormFactory::new();
}
public function getNotifiesWebhookAttribute()
{
return ! empty($this->webhook_url);
}
public function getNotifiesDiscordAttribute()
{
return ! empty($this->discord_webhook_url);
}
public function getNotifiesSlackAttribute()
{
return ! empty($this->slack_webhook_url);
}
}

View File

@@ -3,7 +3,7 @@
namespace App\Models\Integration;
use App\Models\Forms\Form;
use App\Service\Forms\Integrations\WebhookHandlerProvider;
use App\Service\Forms\Webhooks\WebhookHandlerProvider;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;