MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/amanda/app/Http/Controllers/ChatController.php
<?php

namespace App\Http\Controllers;

use App\ChatHistory;
use App\User;
use Illuminate\Http\Request;

class ChatController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
   
    public function getUser(Request $request)
    {
        $page=$request->page;
        $result=array();
        $users = User::
               select("users.name","users.id","users.image","users.gender","users.email")
              ->orderBy('users.name','asc')
              ->where(array("is_admin"=>0,'status'=>'active'))
              ->take(1)->skip($page)
              ->get();

        foreach ($users as $user) {
          $image="/api/imagesView/".$user->image;
            if($user->image=="")
            {
               $image='/images/'.$user->gender.'.png';
            }
            //$test = ChatHistory::getLatestTimeStamp($user->id,1);
            /*print_r($test);
            die();*/

            //$timestamp = date("h:i",strtotime($test));

             $data=array(
                "roomId"=>$user->id,
                "avatar"=>$image,
                "roomName"=> $user->name,
                "roomInfo"=>array('gender'=>$user->gender, 'email'=>$user->email),
                "unreadCount"=>ChatHistory::getUnredMessageCount($user->id,1),
                "users"=>array()
              );
        

           $result[]=$data;
        }

       return response()->json([
            'status' => (bool) $result,
            'data'   => $result
        ]);
    }
     public function sendMessage(Request $request)
    {
        $imageName="";
        if($request->hasfile('file'))
        {
           $file=$request->file("file");
           $extension=$request->extension;
           $imageName = rand(111,999).time().".".$extension;
           $file->move(config('constants.imageFolderPath')."/chatImage/",$imageName); 
        }
        $chat = ChatHistory::create([
            'from' =>1,
            'to' => $request->sender_id,
            'message' =>$request->content,
            'fileName'=> $imageName
        ]);

        $chat['date']=date("d M",strtotime($chat['created_at']));
        $chat['day']=date("h:i",strtotime($chat['created_at']));


       if ($chat['fileName']!="") {
              $chat["file"]=array(
                    "name"=> $imageName,
                    "size"=> '67351',
                    "type"=>'png',
                    "duration"=> 14.4,
                    "url"=>url('/')."/api/chatImagesView/".$chat['fileName']
              );
         }

        return response()->json([
            'imageName'=>$imageName,
            'status' => (bool) $chat,
            'data'   => $chat,
            'message' => $chat ? 'Tag Created!' : 'Error Creating Tag']);
    }

    public function getMessage(Request $request)
    {
       $page=$request->page;
       $result=array();
       $to=$request->sender_id;
       $from=1;

      $parameter=array("from"=>$from,"to"=>$to);


      $chats= ChatHistory::
       leftjoin("users","users.id","chat_history.from")
      ->leftjoin("users as users2","users.id","chat_history.to")
      ->where(function($query) use ($parameter)
      {
          $query->where('chat_history.from', '=', $parameter['from'])
                ->where('chat_history.to', '=', $parameter['to']);
      })  
     ->orwhere(function($query) use ($parameter)
      {
          $query->where('chat_history.from', '=', $parameter['to'])
                ->where('chat_history.to', '=', $parameter['from']);
      })  

      ->select("chat_history.*","users.name","users2.name as toname")
      ->take(20)
      ->orderBy("id","asc")
      ->take(10)->skip($page*10)
      ->get();

        foreach ($chats as $chat) {

             $data=array(
                "_id"=>$chat->id,
                "content"=> $chat->message,
                "senderId"=>$chat->to,
                "username"=>$chat->name,
                "date"=>date("d M",strtotime($chat->created_at)),
                "timestamp"=>date("h:i",strtotime($chat->created_at)),
                "system"=> false,
                "saved"=> true,
                "distributed"=> true,
                "seen"=> 'true',
                "disableActions"=>'false',
                "disableReactions"=> 'false'
               );


             if ($chat->fileName!="") {
                  $data=array_merge($data,
                    array(
                      "file"=>array(
                        "name"=> 'My File',
                        "size"=> '67351',
                        "type"=>'png',
                        "duration"=> 14.4,
                        "url"=>url('/')."/api/chatImagesView/".$chat->fileName,
                      )
                    )
                  );
                }
            
             $result[]=$data;
        }
     
       ChatHistory::updateUnredMessage($to,1);
        return response()->json([
            'status' => (bool) $result,
            'data'   => $result,
            'message' => $result ? 'Get Chat!' : 'Error Geting Chat'
        ]);
    }


    public function updateStatus(Request $request)
    {

        $chat_history =ChatHistory::updateUnredMessage($request->senderId,1);
        return response()->json([
                'status' => (bool) $chat_history,
                'data'   => $chat_history,
                'message' => $chat_history ? 'Message Status update!' : 'Error in Message status update'
            ]);
    }

    

}