feat/reverb (#20)

Co-authored-by: jon brookes <marshyon@gmail.com>
Reviewed-on: https://codeberg.org/headshed/share-lt/pulls/20
This commit is contained in:
Jon Brookes 2026-02-14 17:49:01 +01:00
parent 74bc17d019
commit 21147af908
30 changed files with 1948 additions and 29 deletions

View file

@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers;
use App\Events\PreviewSiteBuilt;
use App\Http\Requests\SendPreviewSiteBuiltNotificationRequest;
use Illuminate\Http\JsonResponse;
class NotificationController extends Controller
{
/**
* Send preview site built notification.
*/
public function sendPreviewSiteBuilt(SendPreviewSiteBuiltNotificationRequest $request): JsonResponse
{
$message = $request->validated()['message'];
PreviewSiteBuilt::dispatch($message, 'success');
return response()->json([
'success' => true,
'message' => 'Preview site built notification sent successfully',
'data' => [
'notification_message' => $message,
],
]);
}
}

View file

@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class SendPreviewSiteBuiltNotificationRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return $this->user() && $this->user()->email === config('app.admin_email');
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'message' => 'required|string|max:255',
];
}
}