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