<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Foundation\Bus\Dispatchable; class SendInvitation { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public $course; public $user; public function __construct($course, $user) { $this->course = $course; $this->user = $user; } public function handle() { if (UserEmailNotificationSetup('Course_Invitation', $this->user)) { SendGeneralEmail::dispatch($this->user, 'Course_Invitation', [ 'name' => $this->user->name, 'course_name' => $this->course->title, 'instructor_name' => $this->course->user->name, 'course_url' => route('courseDetailsView', $this->course->slug), 'price' => $this->course->price, 'about' => $this->course->about, ]); } if (UserBrowserNotificationSetup('Course_Invitation', $this->user)) { send_browser_notification($this->user, 'Course_Invitation', [ 'name' => $this->user->name, 'course_name' => $this->course->title, 'instructor_name' => $this->course->user->name, 'course_url' => route('courseDetailsView', $this->course->slug), 'price' => $this->course->price, 'about' => $this->course->about, ], trans('common.View'), courseDetailsUrl(@$this->course->id, @$this->course->type, @$this->course->slug), ); } if (UserMobileNotificationSetup('Course_Invitation', $this->user) && !empty($this->user->device_token)) { send_mobile_notification($this->user, 'Course_Invitation', [ 'name' => $this->user->name, 'course_name' => $this->course->title, 'instructor_name' => $this->course->user->name, 'course_url' => route('courseDetailsView', $this->course->slug), 'price' => $this->course->price, 'about' => $this->course->about, ]); } } }