HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Http/Controllers/ChatController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Events\ChatEvent;
use App\Chat;
use App\Message;
use App\ChatMessage;

class ChatController extends Controller
{
    public function index()
    {
        $chats = Chat::orderBy('created_at', 'DESC')->with('user')->with('chatMessages')->get();
        return view('chats.chats')->with('chats', $chats);
    }

    public function indexCheck($id)
    {
        $chat = Chat::where('id', $id)->with('user')->first();
        $messages = ChatMessage::where('chat_id', $chat->id)->with('messages')->get();

        foreach ($messages as $key => $msg) {

            $readMsg = Message::find($msg->messages_id);
            $readMsg->read_admin = 1;
            $readMsg->save();
        }

        return view('chats.checkChat')
            ->with('user', $chat)
            ->with('messages', $messages);
    }

    public function sendMessage(Request $request)
    {
        $message = $request['message'];
        $chat = $request['idChat'];
        $idAdmin = Auth::user()->id;
        $name = Auth::user()->first_name . ' ' . Auth::user()->last_name;

        $msg = new Message();
        $msg->message = $message;
        $msg->admin_id = $idAdmin;
        $msg->save();

        $time = Message::time_elapsed_string($msg->created_at);

        $chatMsg = new ChatMessage();
        $chatMsg->chat_id = $chat;
        $chatMsg->messages_id = $msg->id;
        $chatMsg->save();

        $chatClient = Chat::find($chat);

        event(new ChatEvent($message, $chatClient->user_id, Auth::user()->rol_id));

        $r = array('name' => $name, 'message' => $message, 'time' => $time);

        return array('r' => true, 'd' => $r);
    }

    public function searchFilter(Request $request)
    {
        $txt = $request['text'];
        $messages = Message::select('messages.message', 'users.*')
            ->join('users', 'messages.user_id', '=', 'users.id')
            ->where(function ($q) use ($txt) {
                $q->where('messages.id', $txt)
                    ->orWhere('messages.message', 'LIKE', '%' . $txt . '%')
                    ->orWhere('users.first_name', 'LIKE', '%' . $txt . '%')
                    ->orWhere('users.last_name', 'LIKE', '%' . $txt . '%');
            })->get();

        return array('r' => true, 'd' => $messages, 'm' => trans('messages.controller_chats_tag1'));
    }

    public function deleteChat(Request $request)
    {
        $chats = $request['chats'];
        $chatMessagesIds = array();

        foreach ($chats as $key => $chat) {
            $chatId = $chat['id'];

            $copyChatMsgs = ChatMessage::where('chat_id', $chatId)->get();
            ChatMessage::where('chat_id', $chatId)->delete();
            for ($i = 0; $i < count($copyChatMsgs); $i++) {
                Message::find($copyChatMsgs[$i]->messages_id)->delete();
            }

            $chat = Chat::find($chatId);
            $logObject = $chat;
            $this->registerLog(Auth::user()->id, 'EliminĂ³ un chat', json_encode($logObject), "Delete", 7);
            $chat->delete();
        }

        return array('r' => true, 'm' => trans('messages.controller_chats_tag2'));
    }
}