trs_matrimony/app/Http/Controllers/ChatController.php
2024-08-22 09:31:12 +05:30

106 lines
3.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\ChatThread;
use App\Models\Chat;
use Auth;
class ChatController extends Controller
{
public function index(Request $request)
{
$chat_threads = ChatThread::where('sender_user_id', Auth::user()->id)->orWhere('receiver_user_id', Auth::user()->id)->get();
return view('frontend.member.messages.index', compact('chat_threads'));
}
public function chat_view($id)
{
$chat_thread = ChatThread::findOrFail($id);
foreach ($chat_thread->chats as $key => $chat) {
if($chat->sender_user_id != Auth::user()->id){
$chat->seen = 1;
$chat->save();
}
}
$chats = $chat_thread->chats()->latest()->limit(20)->get();
return view('frontend.member.messages.messages', compact('chats', 'chat_thread'));
}
public function get_old_messages(Request $request)
{
$chat = Chat::findOrFail($request->first_message_id);
$chats = Chat::where('id', '<', $chat->id)->where('chat_thread_id', $chat->chat_thread_id)->latest()->limit(20)->get();
if(count($chats) > 0){
return array('messages' => view('frontend.member.messages.messages_part', compact('chats'))->render(),
'first_message_id' => $chats->last()->id);
}
else {
return array('messages' => "", 'first_message_id' => 0);
}
}
public function chat_refresh($id)
{
$chat_thread = ChatThread::findOrFail($id);
$chats = $chat_thread->chats()->where('sender_user_id','!=', Auth::user()->id)->where('seen' , 0)->get();
foreach ($chats as $key => $value) {
$value->seen = 1;
$value->save();
}
return array('messages' => view('frontend.member.messages.messages_left_single', compact('chats'))->render(),
'count' => count($chats));
}
public function chat_reply(Request $request)
{
$chat = new Chat;
$chat->chat_thread_id = $request->chat_thread_id;
$chat->sender_user_id = Auth::user()->id;
$chat->message = $request->message;
if($request->attachment != null){
$chat->attachment = json_encode(explode(',', $request->attachment));
}
$chat->save();
return view('frontend.member.messages.messages_right_single', compact('chat'));
}
public function interview_status(Request $request)
{
$chat_thread = ChatThread::findOrFail($request->chat_thread_id);
if ($chat_thread->interview == 1) {
$chat_thread->interview = 0;
}
else {
$chat_thread->interview = 1;
}
if ($chat_thread->save()) {
return 1;
}
else {
return 0;
}
}
public function block_status(Request $request)
{
$chat_thread = ChatThread::findOrFail($request->chat_thread_id);
if ($chat_thread->active == 1) {
$chat_thread->active = 0;
}
else {
$chat_thread->active = 1;
}
if ($chat_thread->save()) {
return 1;
}
else {
return 0;
}
}
}