From 5cd2ae0dbe683283c4048b087531c7093a7e3ec9 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 12 Nov 2020 14:04:27 +1100 Subject: [PATCH] payment listeners --- app/Events/Payment/PaymentWasEmailed.php | 9 ++- .../Payment/PaymentWasEmailedAndFailed.php | 14 ++++- app/Exceptions/Handler.php | 2 +- app/Jobs/Payment/EmailPayment.php | 15 ++++- .../Payment/PaymentEmailFailureActivity.php | 57 +++++++++++++++++++ .../Payment/PaymentEmailedActivity.php | 55 ++++++++++++++++++ app/Providers/EventServiceProvider.php | 10 ++++ 7 files changed, 154 insertions(+), 8 deletions(-) create mode 100644 app/Listeners/Payment/PaymentEmailFailureActivity.php create mode 100644 app/Listeners/Payment/PaymentEmailedActivity.php diff --git a/app/Events/Payment/PaymentWasEmailed.php b/app/Events/Payment/PaymentWasEmailed.php index 6dec1e9a4c83..5a759b59d2cb 100644 --- a/app/Events/Payment/PaymentWasEmailed.php +++ b/app/Events/Payment/PaymentWasEmailed.php @@ -11,8 +11,15 @@ namespace App\Events\Payment; +use App\Models\Client; use App\Models\Company; use App\Models\Payment; +use Illuminate\Broadcasting\Channel; +use Illuminate\Broadcasting\InteractsWithSockets; +use Illuminate\Broadcasting\PresenceChannel; +use Illuminate\Broadcasting\PrivateChannel; +use Illuminate\Contracts\Broadcasting\ShouldBroadcast; +use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; /** @@ -20,7 +27,7 @@ use Illuminate\Queue\SerializesModels; */ class PaymentWasEmailed { - use SerializesModels; + use Dispatchable, InteractsWithSockets, SerializesModels; /** * @var Payment diff --git a/app/Events/Payment/PaymentWasEmailedAndFailed.php b/app/Events/Payment/PaymentWasEmailedAndFailed.php index 4c0149519f53..bedc6bec85b5 100644 --- a/app/Events/Payment/PaymentWasEmailedAndFailed.php +++ b/app/Events/Payment/PaymentWasEmailedAndFailed.php @@ -11,15 +11,23 @@ namespace App\Events\Payment; +use App\Models\Client; +use App\Models\Company; use App\Models\Payment; +use Illuminate\Broadcasting\Channel; +use Illuminate\Broadcasting\InteractsWithSockets; +use Illuminate\Broadcasting\PresenceChannel; +use Illuminate\Broadcasting\PrivateChannel; +use Illuminate\Contracts\Broadcasting\ShouldBroadcast; +use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; /** - * Class InvoiceWasEmailedAndFailed. + * Class PaymentWasEmailedAndFailed. */ class PaymentWasEmailedAndFailed { - use SerializesModels; + use Dispatchable, InteractsWithSockets, SerializesModels; /** * @var Payment @@ -39,7 +47,7 @@ class PaymentWasEmailedAndFailed * @param array $errors * @param array $event_vars */ - public function __construct(Payment $payment, $company, array $errors, array $event_vars) + public function __construct(Payment $payment, Company $company, array $errors, array $event_vars) { $this->payment = $payment; diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 782677e0e020..869d5a2df8a2 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -46,7 +46,7 @@ class Handler extends ExceptionHandler */ protected $dontReport = [ PDOException::class, - Swift_TransportException::class, + //Swift_TransportException::class, MaxAttemptsExceededException::class, CommandNotFoundException::class, ]; diff --git a/app/Jobs/Payment/EmailPayment.php b/app/Jobs/Payment/EmailPayment.php index 83c264d8a5ab..086153ec96cb 100644 --- a/app/Jobs/Payment/EmailPayment.php +++ b/app/Jobs/Payment/EmailPayment.php @@ -72,7 +72,8 @@ class EmailPayment extends BaseMailerJob implements ShouldQueue * @return void */ public function handle() - {info("inside email payment"); + { + if($this->company->is_disabled) return true; @@ -85,8 +86,16 @@ class EmailPayment extends BaseMailerJob implements ShouldQueue $email_builder = (new PaymentEmailEngine($this->payment, $this->contact))->build(); - $mail = Mail::to($this->contact->email, $this->contact->present()->name()); - $mail->send(new TemplateEmail($email_builder, $this->contact->user, $this->contact->client)); + try{ + + $mail = Mail::to($this->contact->email, $this->contact->present()->name()); + $mail->send(new TemplateEmail($email_builder, $this->contact->user, $this->contact->client)); + + }catch(\Exception $e) { + + info("mailing failed with message " . $e->getMessage()); + + } if (count(Mail::failures()) > 0) { event(new PaymentWasEmailedAndFailed($this->payment, Mail::failures(), Ninja::eventVars())); diff --git a/app/Listeners/Payment/PaymentEmailFailureActivity.php b/app/Listeners/Payment/PaymentEmailFailureActivity.php new file mode 100644 index 000000000000..78920d20da35 --- /dev/null +++ b/app/Listeners/Payment/PaymentEmailFailureActivity.php @@ -0,0 +1,57 @@ +company->db); + + $payment = $event->payment; + + info("i failed emailing {$payment->number}"); + // info(print_r($event->errors,1)); + + } +} + diff --git a/app/Listeners/Payment/PaymentEmailedActivity.php b/app/Listeners/Payment/PaymentEmailedActivity.php new file mode 100644 index 000000000000..60bc6e8785e1 --- /dev/null +++ b/app/Listeners/Payment/PaymentEmailedActivity.php @@ -0,0 +1,55 @@ +company->db); + + $payment = $event->payment; + + info("i succeeded in emailing payment {$payment->number}"); + } +} + diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index c035126c8e4c..3b846892bb5a 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -51,6 +51,8 @@ use App\Events\Misc\InvitationWasViewed; use App\Events\Payment\PaymentWasArchived; use App\Events\Payment\PaymentWasCreated; use App\Events\Payment\PaymentWasDeleted; +use App\Events\Payment\PaymentWasEmailed; +use App\Events\Payment\PaymentWasEmailedAndFailed; use App\Events\Payment\PaymentWasRefunded; use App\Events\Payment\PaymentWasRestored; use App\Events\Payment\PaymentWasUpdated; @@ -129,6 +131,8 @@ use App\Listeners\Invoice\InvoiceViewedActivity; use App\Listeners\Invoice\UpdateInvoiceActivity; use App\Listeners\Invoice\UpdateInvoiceInvitations; use App\Listeners\Misc\InvitationViewedListener; +use App\Listeners\Payment\PaymentEmailFailureActivity; +use App\Listeners\Payment\PaymentEmailedActivity; use App\Listeners\Payment\PaymentNotification; use App\Listeners\Payment\PaymentRestoredActivity; use App\Listeners\Quote\QuoteApprovedActivity; @@ -310,6 +314,12 @@ class EventServiceProvider extends ServiceProvider InvitationWasViewed::class => [ InvitationViewedListener::class, ], + PaymentWasEmailed::class => [ + PaymentEmailedActivity::class, + ], + PaymentWasEmailedAndFailed::class => [ + PaymentEmailFailureActivity::class, + ], CompanyDocumentsDeleted::class => [ DeleteCompanyDocuments::class, ],