From 4bfff15612f0e12ee7819cfff34971fc035a2296 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 14 Feb 2021 22:09:32 +1100 Subject: [PATCH] refactoring emails --- app/Jobs/Mail/NinjaMailer.php | 2 +- app/Jobs/Mail/PaymentFailureMailer.php | 2 +- .../SendVerificationNotification.php | 15 ++++- app/Mail/Admin/VerifyUserObject.php | 56 +++++++++++++++++++ 4 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 app/Mail/Admin/VerifyUserObject.php diff --git a/app/Jobs/Mail/NinjaMailer.php b/app/Jobs/Mail/NinjaMailer.php index a5e68c4e480e..c8f697d13992 100644 --- a/app/Jobs/Mail/NinjaMailer.php +++ b/app/Jobs/Mail/NinjaMailer.php @@ -9,7 +9,7 @@ * @license https://opensource.org/licenses/AAL */ -namespace App\Mail; +namespace App\Jobs\Mail; use Illuminate\Mail\Mailable; diff --git a/app/Jobs/Mail/PaymentFailureMailer.php b/app/Jobs/Mail/PaymentFailureMailer.php index f64192762e62..c1a5dbc47977 100644 --- a/app/Jobs/Mail/PaymentFailureMailer.php +++ b/app/Jobs/Mail/PaymentFailureMailer.php @@ -91,7 +91,7 @@ class PaymentFailureMailer extends BaseMailerJob implements ShouldQueue $nmo = new NinjaMailerObject; $nmo->mailable = new NinjaMailer($mail_obj); - $nmo->company = $this->companyl; + $nmo->company = $this->company; $nmo->to_user = $company_user->user; $nmo->settings = $this->settings; diff --git a/app/Listeners/SendVerificationNotification.php b/app/Listeners/SendVerificationNotification.php index 8bc5a287a825..d7747459698f 100644 --- a/app/Listeners/SendVerificationNotification.php +++ b/app/Listeners/SendVerificationNotification.php @@ -11,7 +11,11 @@ namespace App\Listeners; +use App\Jobs\Mail\NinjaMailer; +use App\Jobs\Mail\NinjaMailerJob; +use App\Jobs\Mail\NinjaMailerObject; use App\Libraries\MultiDB; +use App\Mail\Admin\VerifyUserObject; use App\Notifications\Ninja\VerifyUser; use App\Utils\Ninja; use Exception; @@ -45,7 +49,16 @@ class SendVerificationNotification implements ShouldQueue MultiDB::setDB($event->company->db); try { - $event->user->notify(new VerifyUser($event->user, $event->company)); + + $nmo = new NinjaMailerObject; + $nmo->mailable = new NinjaMailer(new VerifyUserObject($event->user, $event->company)); + $nmo->company = $event->company; + $nmo->to_user = $event->user; + $nmo->settings = $event->company->settings; + + NinjaMailerJob::dispatch($nmo); + + // $event->user->notify(new VerifyUser($event->user, $event->company)); Ninja::registerNinjaUser($event->user); } catch (Exception $e) { diff --git a/app/Mail/Admin/VerifyUserObject.php b/app/Mail/Admin/VerifyUserObject.php new file mode 100644 index 000000000000..4d8c3b29f3d8 --- /dev/null +++ b/app/Mail/Admin/VerifyUserObject.php @@ -0,0 +1,56 @@ +user = $user; + $this->company = $company; + } + + public function build() + { + $this->user->confirmation_code = $this->createDbHash($this->company->db); + $this->user->save(); + + $data = [ + 'title' => ctrans('texts.confirmation_subject'), + 'message' => ctrans('texts.confirmation_message'), + 'url' => url("/user/confirm/{$this->user->confirmation_code}"), + 'button' => ctrans('texts.button_confirmation_message'), + 'settings' => $this->company->settings, + ]; + + + $mail_obj = new \stdClass; + $mail_obj->subject = ctrans('texts.confirmation_subject'); + $mail_obj->data = $data; + $mail_obj->markdown = 'email.admin.generic'; + $mail_obj->tag = $this->company->company_key; + + return $mail_obj; + } +} \ No newline at end of file