39 lines
1.2 KiB
PHP
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();
|
|
}
|
|
}
|