ledgerrz/app/Http/Controllers/MessageController.php
Daan Meijer a1adf1da1c
Some checks failed
linter / quality (push) Failing after 1m3s
tests / ci (8.3) (push) Failing after 48s
tests / ci (8.4) (push) Failing after 1m5s
tests / ci (8.5) (push) Failing after 1m4s
added media, mutation events, agent instructions
2026-06-15 22:30:17 +02:00

90 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Events\MessageSent;
use App\Http\Requests\StoreMessageRequest;
use App\Models\Chat;
use App\Models\Message;
use Illuminate\Http\Request;
class MessageController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(StoreMessageRequest $request, Chat $chat)
{
$message = $chat->messages()->create([
...$request->except('media'),
'user_id' => $request->user()->id,
]);
if ($request->hasFile('media')) {
foreach ($request->file('media') as $file) {
$path = $file->store('media', 'public');
$message->media()->create([
'file_path' => $path,
'file_name' => $file->getClientOriginalName(),
'mime_type' => $file->getMimeType(),
]);
}
}
// Eager-load relations before broadcasting
$message->load('media', 'user');
broadcast(new MessageSent($message));
return redirect()->back();
}
/**
* Display the specified resource.
*/
public function show(Message $message)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Message $message)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, Message $message)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Message $message)
{
//
}
}