Edit File: NotificationController.php
<?php namespace App\Http\Controllers\Admin; use App\Jobs\Notify; use App\Models\User; use App\Jobs\SendSms; use App\Models\Admin; use App\Jobs\AdminNotify; use App\Jobs\SendEmailJob; use App\Notifications\NotifyUser; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Notification; use App\Http\Requests\Admin\Notification\Store; class NotificationController extends Controller { public function index( Type $var = null ) { return view( 'admin.notifications.index' ); } public function sendNotifications( Store $request ) { if ( $request->user_type == 'all_members' ) { $rows = User::with( [ 'devices' ] )->get() ; } elseif ( $request->user_type == 'all_users' ) { $rows = User::with( [ 'devices' ] )->where( 'type', 'user' )->get() ; } else if ( $request->user_type == 'active_users' ) { $rows = User::where( [ 'type'=>'user', 'active' => true ] )->get() ; } else if ( $request->user_type == 'not_active_users' ) { $rows = User::where( [ 'type'=>'user', 'active' => false ] )->get() ; } else if ( $request->user_type == 'blocked_users' ) { $rows = User::where( [ 'type'=>'user', 'status' => 'block' ] )->get() ; } else if ( $request->user_type == 'not_blocked_users' ) { $rows = User::where( [ 'type'=>'user', 'status' => 'active' ] )->get() ; } else if ( $request->user_type == 'all_companies' ) { $rows = User::with( [ 'devices' ] )->where( 'type', 'company' )->get() ; } else if ( $request->user_type == 'active_companies' ) { $rows = User::where( [ 'type'=>'company', 'active' => true ] )->get() ; } else if ( $request->user_type == 'not_active_companies' ) { $rows = User::where( [ 'type'=>'company', 'active' => false ] )->get() ; } else if ( $request->user_type == 'blocked_companies' ) { $rows = User::where( [ 'type'=>'company','status' => 'block' ] )->get() ; } else if ( $request->user_type == 'not_blocked_companies' ) { $rows = User::where( [ 'type'=>'company', 'status' => 'active' ] )->get() ; } else if ( $request->user_type == 'all_delegates' ) { $rows = User::with( [ 'devices' ] )->where( 'type', 'delegate' )->get() ; } else if ( $request->user_type == 'active_delegates' ) { $rows = User::where( [ 'type'=>'delegate', 'active' => true ] )->get() ; } else if ( $request->user_type == 'not_active_delegates' ) { $rows = User::where( [ 'type'=>'delegate', 'active' => false ] )->get() ; } else if ( $request->user_type == 'blocked_delegates' ) { $rows = User::where( [ 'type'=>'delegate' , 'status' => 'block' ] )->get() ; } else if ( $request->user_type == 'not_blocked_delegates' ) { $rows = User::where( [ 'type'=>'delegate', 'status' => 'active' ] )->get() ; } else if ( $request->user_type == 'all_stores' ) { $rows = User::where( 'type', 'store' )->get(); } else if ( $request->user_type == 'active_stores' ) { $rows = User::where( [ 'type'=>'store', 'active' => true ] )->get() ; } else if ( $request->user_type == 'not_active_stores' ) { $rows = User::where( [ 'type'=>'store', 'active' => false ] )->get() ; } else if ( $request->user_type == 'blocked_stores' ) { $rows = User::where( [ 'type'=>'store', 'status' => 'block' ] )->get() ; } else if ( $request->user_type == 'not_blocked_stores' ) { $rows = User::where( [ 'type'=>'store', 'status' => 'active' ] )->get() ; } else if ( $request->user_type == 'admins' ) { $rows = Admin::get() ; } if ( $request->type == 'notify' ) { $request->validate([ 'message_ar' => 'required|string', 'message_en' => 'required|string', 'title_ar' => 'required|string', 'title_en' => 'required|string', ]); if ( $request->user_type == 'admins' ) { dispatch( new AdminNotify( $rows, $request ) ); } else { $auth = auth( 'admin' )->user(); dispatch( new Notify( $rows, \request()->all(), $auth ) ); } } else if ( $request->type == 'email' ) { $request->validate([ 'message' => 'required|string', ]); $rows = User::with( [ 'devices' ] )->whereNotNull( 'email' )->pluck( 'email' )->toArray() ; dispatch( new SendEmailJob( $rows, $request ) ); } else { $request->validate([ 'message' => 'required|string', ]); dispatch( new SendSms( $rows->pluck( 'phone' )->toArray(), $request->message ) ); } return response()->json() ; } }
Back to File Manager