Files
roxane/app/Http/Controllers/Forms/MembershipFormController.php

59 lines
1.6 KiB
PHP
Raw Permalink Normal View History

2025-10-22 17:09:48 +02:00
<?php
namespace App\Http\Controllers\Forms;
use App\Http\Controllers\Controller;
2025-10-24 14:09:54 +02:00
use App\Http\Requests\Forms\MembershipRequest;
2025-10-22 17:09:48 +02:00
use App\Models\Membership;
2025-10-24 14:09:54 +02:00
use App\Models\Package;
use App\Services\MemberService;
2025-10-22 17:09:48 +02:00
use Carbon\Carbon;
use Illuminate\Http\RedirectResponse;
use Inertia\Inertia;
class MembershipFormController extends Controller
{
2025-10-24 14:09:54 +02:00
public function __construct(protected MemberService $memberService) {}
2025-10-22 17:09:48 +02:00
/**
* Show the contact form page.
*/
public function create()
{
2025-10-24 14:09:54 +02:00
return Inertia::render('forms/membership', [
'plans' => Package::query()
->where('is_active', true)
2025-10-26 00:16:25 +02:00
->select('id', 'identifier', 'name', 'price', 'description')
2025-10-24 14:09:54 +02:00
->get()
]);
2025-10-22 17:09:48 +02:00
}
/**
* Handle an incoming membership form request.
*
*/
2025-10-24 14:09:54 +02:00
public function store(MembershipRequest $request): RedirectResponse
2025-10-22 17:09:48 +02:00
{
2025-10-26 00:16:25 +02:00
dd($request->validated());
2025-10-24 14:09:54 +02:00
$validated = $request->validated();
try {
$this->memberService->registerNewMember($validated);
} catch (\Throwable $e) {
\Log::error('Erreur lors de la création dun membre', [
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
'data' => $validated,
]);
return redirect()
->route('membership')
2025-10-26 00:16:25 +02:00
->with('error', Membership::getAttributeLabel('memberships.subscription.error'));
2025-10-24 14:09:54 +02:00
}
return redirect()
->route('membership')
2025-10-26 00:16:25 +02:00
->with('success', Membership::getAttributeLabel('memberships.subscription.success'));
2025-10-22 17:09:48 +02:00
}
}