97 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Notifications;
 | |
| 
 | |
| use App\Company;
 | |
| use App\SlackSetting;
 | |
| use App\Traits\SmtpSettings;
 | |
| use Illuminate\Bus\Queueable;
 | |
| use Illuminate\Notifications\Messages\SlackMessage;
 | |
| use Illuminate\Notifications\Notification;
 | |
| use Illuminate\Contracts\Queue\ShouldQueue;
 | |
| use Illuminate\Notifications\Messages\MailMessage;
 | |
| 
 | |
| class NewCompanyRegister extends Notification implements ShouldQueue
 | |
| {
 | |
|     use Queueable, SmtpSettings;
 | |
| 
 | |
|     /**
 | |
|      * Create a new notification instance.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     private $company;
 | |
|     public function __construct(Company $company)
 | |
|     {
 | |
|         $this->company = $company;
 | |
|         $this->setMailConfigs();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the notification's delivery channels.
 | |
|      *t('mail::layout')
 | |
|      * @param  mixed  $notifiable
 | |
|      * @return array
 | |
|      */
 | |
|     public function via($notifiable)
 | |
|     {
 | |
|         $via = ['database'];
 | |
|         if ($notifiable->email_notifications) {
 | |
|             array_push($via, 'mail');
 | |
|         }
 | |
|         return $via;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the mail representation of the notification.
 | |
|      *
 | |
|      * @param  mixed  $notifiable
 | |
|      * @return \Illuminate\Notifications\Messages\MailMessage
 | |
|      */
 | |
|     public function toMail($notifiable)
 | |
|     {
 | |
| 
 | |
|         return (new MailMessage)
 | |
|             ->subject(__('email.newCompany.subject').' '.config('app.name').'!')
 | |
|             ->greeting(__('email.hello').' '.ucwords($notifiable->name).'!')
 | |
|             ->line(__('email.newCompany.text'))
 | |
|             ->line('With name:- '.$this->company->company_name)
 | |
|             ->action(__('email.loginDashboard'), getDomainSpecificUrl(url('/login')))
 | |
|             ->line(__('email.thankyouNote'));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the array representation of the notification.
 | |
|      *
 | |
|      * @param  mixed  $notifiable
 | |
|      * @return array
 | |
|      */
 | |
|     public function toArray($notifiable)
 | |
|     {
 | |
|         return array_merge($notifiable->toArray(), ['company_name' => $this->company->company_name]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the Slack representation of the notification.
 | |
|      *
 | |
|      * @param  mixed  $notifiable
 | |
|      * @return SlackMessage
 | |
|      */
 | |
|     public function toSlack($notifiable)
 | |
|     {
 | |
|         $slack = SlackSetting::first();
 | |
|         if(count($notifiable->employee) > 0 && !is_null($notifiable->employee[0]->slack_username)){
 | |
|             return (new SlackMessage())
 | |
|                 ->from(config('app.name'))
 | |
|                 ->image($slack->slack_logo_url)
 | |
|                 ->to('@' . $notifiable->employee[0]->slack_username)
 | |
|                 ->content('Welcome to ' . config('app.name') . '! New company has been registered.');
 | |
|         }
 | |
|         return (new SlackMessage())
 | |
|             ->from(config('app.name'))
 | |
|             ->image($slack->slack_logo_url)
 | |
|             ->content('This is a redirected notification. Add slack username for *'.ucwords($notifiable->name).'*');
 | |
|     }
 | |
| 
 | |
| }
 |