ldc-legaulois/app/Http/Controllers/Club/MessageController.php
2024-07-12 16:33:26 +02:00

39 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers\Club;
use App\Enums\NotificationType;
use App\Events\NewNotification;
use App\Http\Controllers\Controller;
use App\Http\Requests\Club\Messages\SendMessageRequest;
use App\Lib\Helpers\ToolboxHelper;
use App\Models\Message;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Auth;
class MessageController extends Controller
{
/**
* Send a message to a user
*
* @param \App\Http\Requests\Club\Messages\SendMessageRequest $request
* @return \Illuminate\Http\JsonResponse
*/
public function sendMessage(SendMessageRequest $request): JsonResponse
{
/** @var \App\Models\Customer */
$customer = Auth::guard('club')->user();
$message = new Message($request->validated());
$message->toCustomer()->associate($customer);
$message->fromCustomer()->associate($customer);
$message->message = ToolboxHelper::censorString($message->message);
$message->saveOrFail();
event(new NewNotification(
NotificationType::message,
route('club.messages.index', ['m' => $message->id]),
$message,
$customer
));
return response()->json();
}
}