Server IP : 66.29.132.124 / Your IP : 18.219.94.17 Web Server : LiteSpeed System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : wavevlvu ( 1524) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/wavevlvu/book24.ng/modules/User/Controllers/ |
Upload File : |
<?php namespace Modules\User\Controllers; use App\Notifications\PrivateChannelServices; use App\User; use Chatify\Facades\ChatifyMessenger as Chatify; use Chatify\Http\Controllers\MessagesController; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Response; use Illuminate\Support\Str; class MessageController extends MessagesController { public function send(Request $request) { // default variables $error = (object)[ 'status' => 0, 'message' => null ]; $attachment = null; $attachment_title = null; // if there is attachment [file] if ($request->hasFile('file')) { // allowed extensions $allowed_images = Chatify::getAllowedImages(); $allowed_files = Chatify::getAllowedFiles(); $allowed = array_merge($allowed_images, $allowed_files); $request->validate([ 'file' => 'required|mimes:'.implode(',',$allowed) ]); $file = $request->file('file'); // if size less than 150MB if ($file->getSize() < Chatify::getMaxUploadSize()) { if (in_array($file->getClientOriginalExtension(), $allowed)) { // get attachment name $attachment_title = $file->getClientOriginalName(); // upload attachment and store the new name $attachment = Str::uuid() . "." . $file->getClientOriginalExtension(); $file->storeAs("public/" . config('chatify.attachments.folder'), $attachment); } else { $error->status = 1; $error->message = "File extension not allowed!"; } } else { $error->status = 1; $error->message = "File size you are trying to upload is too large!"; } } if (!$error->status) { // send to database $messageID = mt_rand(9, 999999999) + time(); Chatify::newMessage([ 'id' => $messageID, 'type' => $request['type'], 'from_id' => Auth::user()->id, 'to_id' => $request['id'], 'body' => htmlentities(trim($request['message']), ENT_QUOTES, 'UTF-8'), 'attachment' => ($attachment) ? json_encode((object)[ 'new_name' => $attachment, 'old_name' => htmlentities(trim($attachment_title), ENT_QUOTES, 'UTF-8'), ]) : null, ]); // fetch message to send it with the response $messageData = Chatify::fetchMessage($messageID); // send to user using pusher Chatify::push('private-chatify', 'messaging', [ 'from_id' => Auth::user()->id, 'to_id' => $request['id'], 'message' => Chatify::messageCard($messageData, 'default') ]); $this->notifyUser($request,$messageData); } // send the response return Response::json([ 'status' => '200', 'error' => $error, 'message' => Chatify::messageCard(@$messageData), 'tempID' => $request['temporaryMsgId'], ]); } protected function notifyUser(Request $request,$message){ $currentUser = auth()->user(); $toUser = User::find($request->id); if(!$toUser) return; $message_content = __(':name send you message: :message', ['name' =>$currentUser->display_name, 'message' => Str::words($message['message'],6)]); if(empty($message['message']) and !empty($message['attachment'][0])){ $message_content = __(':name send you file',['name' =>$currentUser->display_name]); } $data = [ 'id' => $message['id'], 'event'=>'MessageSent', 'to'=>'vendor', 'name' => $currentUser->display_name, 'avatar' => '', 'link' => route('user.chat',['user_id'=>$currentUser->id]), 'type' => 'chat', 'message' => $message_content ]; if($toUser){ $toUser->notify(new PrivateChannelServices($data)); } } }