Updates for spam notifications

This commit is contained in:
David Bomba 2023-12-17 09:50:35 +11:00
parent dd77eba16a
commit bbb60eea3a
2 changed files with 21 additions and 29 deletions

View File

@ -11,24 +11,25 @@
namespace App\Jobs\PostMark;
use App\DataMapper\Analytics\Mail\EmailBounce;
use App\DataMapper\Analytics\Mail\EmailSpam;
use App\Jobs\Util\SystemLogger;
use App\Models\Company;
use App\Models\SystemLog;
use App\Libraries\MultiDB;
use Postmark\PostmarkClient;
use Illuminate\Bus\Queueable;
use App\Jobs\Util\SystemLogger;
use App\Models\QuoteInvitation;
use App\Models\CreditInvitation;
use App\Models\InvoiceInvitation;
use Illuminate\Queue\SerializesModels;
use Turbo124\Beacon\Facades\LightLogs;
use App\Models\PurchaseOrderInvitation;
use App\Models\QuoteInvitation;
use Illuminate\Queue\InteractsWithQueue;
use App\Models\RecurringInvoiceInvitation;
use App\Models\SystemLog;
use App\Notifications\Ninja\EmailSpamNotification;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Postmark\PostmarkClient;
use Turbo124\Beacon\Facades\LightLogs;
use App\DataMapper\Analytics\Mail\EmailSpam;
use App\DataMapper\Analytics\Mail\EmailBounce;
use App\Notifications\Ninja\EmailSpamNotification;
class ProcessPostmarkWebhook implements ShouldQueue
{
@ -82,9 +83,14 @@ class ProcessPostmarkWebhook implements ShouldQueue
public function handle()
{
MultiDB::findAndSetDbByCompanyKey($this->request['Tag']);
$company = Company::where('company_key', $this->request['Tag'])->first();
$this->invitation = $this->discoverInvitation($this->request['MessageID']);
if ($company && $this->request['RecordType'] == 'SpamComplaint' && config('ninja.notification.slack')) {
$company->notification(new EmailSpamNotification($company))->ninja();
}
if (!$this->invitation) {
return;
}
@ -305,18 +311,6 @@ class ProcessPostmarkWebhook implements ShouldQueue
if($sl) {
$this->updateSystemLog($sl, $data);
if (config('ninja.notification.slack')) {
$this->invitation->company->notification(new EmailSpamNotification($this->invitation->company->account))->ninja();
}
return;
}
(new SystemLogger($data, SystemLog::CATEGORY_MAIL, SystemLog::EVENT_MAIL_SPAM_COMPLAINT, SystemLog::TYPE_WEBHOOK_RESPONSE, $this->invitation->contact->client, $this->invitation->company))->handle();
if (config('ninja.notification.slack')) {
$this->invitation->company->notification(new EmailSpamNotification($this->invitation->company->account))->ninja();
}
}

View File

@ -11,6 +11,7 @@
namespace App\Notifications\Ninja;
use App\Models\Company;
use Illuminate\Notifications\Messages\SlackMessage;
use Illuminate\Notifications\Notification;
@ -21,11 +22,8 @@ class EmailSpamNotification extends Notification
*
* @return void
*/
protected $account;
public function __construct($account)
public function __construct(protected Company $company)
{
$this->account = $account;
}
/**
@ -63,9 +61,9 @@ class EmailSpamNotification extends Notification
public function toSlack($notifiable)
{
$content = "Email SPAM notification for Account {$this->account->key} \n";
$content = "Email SPAM notification for Company {$this->company->company_key} \n";
$owner = $this->account->companies()->first()->owner();
$owner = $this->company->owner();
$content .= "Owner {$owner->present()->name() } | {$owner->email}";