mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Updates for spam notifications
This commit is contained in:
parent
dd77eba16a
commit
bbb60eea3a
@ -11,24 +11,25 @@
|
|||||||
|
|
||||||
namespace App\Jobs\PostMark;
|
namespace App\Jobs\PostMark;
|
||||||
|
|
||||||
use App\DataMapper\Analytics\Mail\EmailBounce;
|
use App\Models\Company;
|
||||||
use App\DataMapper\Analytics\Mail\EmailSpam;
|
use App\Models\SystemLog;
|
||||||
use App\Jobs\Util\SystemLogger;
|
|
||||||
use App\Libraries\MultiDB;
|
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\CreditInvitation;
|
||||||
use App\Models\InvoiceInvitation;
|
use App\Models\InvoiceInvitation;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Turbo124\Beacon\Facades\LightLogs;
|
||||||
use App\Models\PurchaseOrderInvitation;
|
use App\Models\PurchaseOrderInvitation;
|
||||||
use App\Models\QuoteInvitation;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
use App\Models\RecurringInvoiceInvitation;
|
use App\Models\RecurringInvoiceInvitation;
|
||||||
use App\Models\SystemLog;
|
|
||||||
use App\Notifications\Ninja\EmailSpamNotification;
|
|
||||||
use Illuminate\Bus\Queueable;
|
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
use App\DataMapper\Analytics\Mail\EmailSpam;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use App\DataMapper\Analytics\Mail\EmailBounce;
|
||||||
use Postmark\PostmarkClient;
|
use App\Notifications\Ninja\EmailSpamNotification;
|
||||||
use Turbo124\Beacon\Facades\LightLogs;
|
|
||||||
|
|
||||||
class ProcessPostmarkWebhook implements ShouldQueue
|
class ProcessPostmarkWebhook implements ShouldQueue
|
||||||
{
|
{
|
||||||
@ -82,9 +83,14 @@ class ProcessPostmarkWebhook implements ShouldQueue
|
|||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
MultiDB::findAndSetDbByCompanyKey($this->request['Tag']);
|
MultiDB::findAndSetDbByCompanyKey($this->request['Tag']);
|
||||||
|
$company = Company::where('company_key', $this->request['Tag'])->first();
|
||||||
|
|
||||||
$this->invitation = $this->discoverInvitation($this->request['MessageID']);
|
$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) {
|
if (!$this->invitation) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -305,20 +311,8 @@ class ProcessPostmarkWebhook implements ShouldQueue
|
|||||||
|
|
||||||
if($sl) {
|
if($sl) {
|
||||||
$this->updateSystemLog($sl, $data);
|
$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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function discoverInvitation($message_id)
|
private function discoverInvitation($message_id)
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace App\Notifications\Ninja;
|
namespace App\Notifications\Ninja;
|
||||||
|
|
||||||
|
use App\Models\Company;
|
||||||
use Illuminate\Notifications\Messages\SlackMessage;
|
use Illuminate\Notifications\Messages\SlackMessage;
|
||||||
use Illuminate\Notifications\Notification;
|
use Illuminate\Notifications\Notification;
|
||||||
|
|
||||||
@ -21,11 +22,8 @@ class EmailSpamNotification extends Notification
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected $account;
|
public function __construct(protected Company $company)
|
||||||
|
|
||||||
public function __construct($account)
|
|
||||||
{
|
{
|
||||||
$this->account = $account;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,9 +61,9 @@ class EmailSpamNotification extends Notification
|
|||||||
|
|
||||||
public function toSlack($notifiable)
|
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}";
|
$content .= "Owner {$owner->present()->name() } | {$owner->email}";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user