Edit File: NotificationController.php
<?php namespace App\Http\Controllers\Dashboard; use App\Http\Controllers\Controller; use App\Http\Requests\EmailRequest; use App\Http\Requests\NotificationRequest; use App\Http\Requests\SmsRequest; use App\Mail\PublicMessage; use App\Models\Notification; use App\Models\User; use App\Traits\EmailTrait; use App\Traits\NotificationTrait; use App\Traits\ReportTrait; use App\Traits\SmsTrait; use Illuminate\Http\Request; use Illuminate\Support\Facades\Mail; class NotificationController extends Controller { use SmsTrait, EmailTrait, NotificationTrait, ReportTrait; public function index() { $notifications = auth()->user()->notifications; foreach ( $notifications as $notification ) $notification->markAsRead(); return view( 'admin.notifications.index', compact( 'notifications' ) ); } public function create() { return view( 'admin.notifications.create' ); } public function sendSmsMessage( SmsRequest $request ) { $user_type = $request->user_type; switch ( $user_type ) { case'admins' : $users = User::where( 'type', 'admin' ); break; case 'all_users' : $users = User::all(); break; case 'active_users' : $users = User::where( 'active', 'true' ); break; case 'inactive_users' : $users = User::where( 'active', 'false' ); break; case 'block_users' : $users = User::where( 'status', 'block' ); break; default: $users = User::all(); } $numbers = ''; foreach ( $users as $user ) { $numbers .= $user->country_key . $user->phone . ','; } $this->sendSms( $numbers, $request->content_sms ); auth()->user()->saveReport( 'ارسال رسالة SMS الي ' . __( 'dashboard.user.' . $user_type ) ); return back()->with( 'success', __( 'dashboard.alerts.message_sent_successfully' ) ); } public function sendEmail( EmailRequest $request ) { $user_type = $request->user_type; switch ( $user_type ) { case'admins' : $users = User::where( 'type', 'admin' ); break; case 'all_users' : $users = User::all(); break; case 'active_users' : $users = User::where( 'active', 'true' ); break; case 'inactive_users' : $users = User::where( 'active', 'false' ); break; case 'block_users' : $users = User::where( 'status', 'block' ); break; default: $users = User::all(); } if ( !$this->checkEmailConfig() ) { return back()->with( 'error', 'لم يتم ارسال الرساله ! .. يرجى مراجعة بيانات ال SMTP' ); } foreach ( $users as $user ) { Mail::to( $user->email )->send( new PublicMessage( $request->email_message ) ); } auth()->user()->saveReport( 'ارسال رسالة Email الي ' . __( 'dashboard.user.' . $user_type ) ); return back()->with( 'success', __( 'dashboard.alerts.message_sent_successfully' ) ); } public function adminSendNotification( NotificationRequest $request ) { $user_type = $request->user_type; switch ( $user_type ) { case'admins' : $users = User::where( 'type', 'admin' ); break; case 'all_users' : $users = User::all(); break; case 'active_users' : $users = User::where( 'active', 'true' ); break; case 'inactive_users' : $users = User::where( 'active', 'false' ); break; case 'block_users' : $users = User::where( 'status', 'block' ); break; default: $users = User::all(); } $data = $request->validated(); $data[ 'key' ] = 'from_admin'; foreach ( $users as $user ) { $this->sendNotification( $user, $data[ 'key' ], $data, false ); } auth()->user()->saveReport( 'ارسال اشعار الي ' . __( 'dashboard.user.' . $user_type ) ); return back()->with( 'success', __( 'dashboard.alerts.message_sent_successfully' ) ); } }
Back to File Manager