KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/namascar_app/panel.namascar.app/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/namascar_app/panel.namascar.app/app/Http/Controllers/AdminNotificationController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\UserApp;
use App\Models\Driver;
use App\Models\AdminNotification;
use App\Http\Controllers\GcmController;
use Validator;
use Illuminate\Support\Facades\DB;

class AdminNotificationController extends Controller
{
    public function __construct()
    {

        $this->middleware('auth');
    }

    public function index(Request $request)
    {

        $query = AdminNotification::select('*');

        $notifications = $query->orderBy('created_at', 'desc')->paginate(10);



        if ($request->has('search') && $request->search != '' && $request->selected_search == 'title') {
            $search = $request->input('search');

            $notifications = DB::table('admin_notification')
                ->where('admin_notification.title', 'LIKE', '%' . $search . '%')

                ->orderBy('admin_notification.created_at', 'desc')
                ->paginate(10);
        } else if ($request->has('search') && $request->search != '' && $request->selected_search == 'message') {
            $search = $request->input('search');
            $notifications = DB::table('admin_notification')
                ->where('admin_notification.message', 'LIKE', '%' . $search . '%')

                ->orderBy('admin_notification.created_at', 'desc')
                ->paginate(10);
        } else {

            $notifications = $query->orderBy('created_at', 'desc')->paginate(10);
        }

        return view("admin_notifications.index")->with("notifications", $notifications);
    }
    public function create()
    {
        return view("admin_notifications.send");
    }
    public function send(Request $request)
    {
        $validator = Validator::make(
            $request->all(),
            [
                'title' => 'required',
                'message' => 'required',
                'send_to' => 'required',
            ],
            [
                'send_to.required' => 'Please choose customer or driver or both to send notification.'
            ]
        );

        if ($validator->fails()) {
            return redirect('notification/create')->withErrors($validator)->withInput();
        }

        $title = $request->input('title');
        $message = $request->input('message');
        $send_to = $request->input('send_to');

        $messages = array("body" => $message, "title" => $title, "sound" => "default", "tag" => "notification");

        //Send notification to registered users
        if (in_array('customer', $send_to)) {

            $users = UserApp::where('fcm_id', '!=', '')->get();

            $tokens = $insert_data = array();
            $temp = array();

            if (count($users) > 0) {
                foreach ($users as $user) {
                    array_push($tokens, $user->fcm_id);
                }
                GcmController::send_notification($tokens, $messages, $temp);
                $msg = 'Notification successfully sent';
            }
        }

        //Send notification to guest users
        if (in_array('driver', $send_to)) {

            $drivers = Driver::where('fcm_id', '!=', '')->get();
            $tokens = $insert_data = array();
            $temp = array();

            if (count($drivers) > 0) {

                foreach ($drivers as $driver) {
                    array_push($tokens, $driver->fcm_id);
                }
                GcmController::send_notification($tokens, $messages, $temp);
                $msg = 'Notification successfully sent';
            }
        }

        AdminNotification::insert(array('title' => $title, 'message' => $message, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')));

        return redirect("notification")->with('message', $msg);
    }

    public function delete($id)
    {

        /*$id = json_decode($id);
     
        if ($id != "") {
            $notification = AdminNotification::where('id', $id)->get();
            dd($notification);
            $notification->delete();
        }

        return redirect('notification')->with('message', 'notification successfully deleted');*/

        if ($id != "") {

            $id = json_decode($id);

            if (is_array($id)) {

                for ($i = 0; $i < count($id); $i++) {
                    $user = AdminNotification::find($id[$i]);
                    $user->delete();
                }
                return redirect('notification')->with('message', 'notification successfully deleted');
            } else {
                $user = AdminNotification::find($id);
                $user->delete();
                return redirect('notification')->with('message', 'notification successfully deleted');
            }
        }
    }
}

Anon7 - 2021