File Manager Lite
Dir:
/home/codewavebd/public_html/app/Http/Controllers
Upload
[..]
Admin/
Rename
Del
ChatController.php (2.34 KB)
Edit
Rename
Del
Controller.php (77 B)
Edit
Rename
Del
HomeController.php (4.47 KB)
Edit
Rename
Del
LeadController.php (4.42 KB)
Edit
Rename
Del
SEOController.php (1.13 KB)
Edit
Rename
Del
Edit: ChatController.php
<?php namespace App\Http\Controllers; use App\Models\ChatThread; use App\Models\ChatMessage; use Illuminate\Http\Request; class ChatController extends Controller { public function start(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'phone' => 'required|string|max:50', 'email' => 'nullable|email|max:255', 'message' => 'required|string|max:1000', ]); $sessionId = session()->getId(); // Create or update open chat thread $thread = ChatThread::updateOrCreate( ['session_id' => $sessionId, 'status' => 'open'], [ 'name' => $request->name, 'email' => $request->email, 'phone' => $request->phone, ] ); // Save the first message ChatMessage::create([ 'chat_thread_id' => $thread->id, 'sender' => 'visitor', 'message' => $request->message, ]); return response()->json([ 'success' => true, 'thread_id' => $thread->id, ]); } public function getMessages() { $sessionId = session()->getId(); $thread = ChatThread::where('session_id', $sessionId)->where('status', 'open')->first(); if (!$thread) { return response()->json(['success' => false, 'messages' => []]); } $messages = $thread->messages()->orderBy('created_at', 'asc')->get(['sender', 'message', 'created_at']); return response()->json([ 'success' => true, 'messages' => $messages, ]); } public function sendMessage(Request $request) { $request->validate([ 'message' => 'required|string|max:1000', ]); $sessionId = session()->getId(); $thread = ChatThread::where('session_id', $sessionId)->where('status', 'open')->first(); if (!$thread) { return response()->json(['success' => false, 'error' => 'No active session found.'], 400); } $message = ChatMessage::create([ 'chat_thread_id' => $thread->id, 'sender' => 'visitor', 'message' => $request->message, ]); return response()->json([ 'success' => true, 'message' => $message, ]); } }
Simpan