feat(Notification & membership route)
This commit is contained in:
@@ -27,7 +27,7 @@ class ContactFormController extends Controller
|
||||
{
|
||||
$validated = $request->validated();
|
||||
try {
|
||||
$contact = $this->contactService->registerNewContactRequest($validated);
|
||||
$this->contactService->registerNewContactRequest($validated);
|
||||
} catch (\Throwable $e) {
|
||||
\Log::error('Erreur lors de la création d\'un contact', [
|
||||
'error' => $e->getMessage(),
|
||||
|
||||
@@ -4,13 +4,11 @@ namespace App\Http\Controllers\Forms;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Forms\MembershipRequest;
|
||||
use App\Models\Member;
|
||||
use App\Models\Membership;
|
||||
use App\Models\Package;
|
||||
use App\Services\MemberService;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Inertia\Inertia;
|
||||
|
||||
class MembershipFormController extends Controller
|
||||
@@ -25,7 +23,7 @@ class MembershipFormController extends Controller
|
||||
return Inertia::render('forms/membership', [
|
||||
'plans' => Package::query()
|
||||
->where('is_active', true)
|
||||
->select('id', 'name', 'price', 'description')
|
||||
->select('id', 'identifier', 'name', 'price', 'description')
|
||||
->get()
|
||||
]);
|
||||
}
|
||||
@@ -36,6 +34,7 @@ class MembershipFormController extends Controller
|
||||
*/
|
||||
public function store(MembershipRequest $request): RedirectResponse
|
||||
{
|
||||
dd($request->validated());
|
||||
$validated = $request->validated();
|
||||
|
||||
try {
|
||||
@@ -49,11 +48,11 @@ class MembershipFormController extends Controller
|
||||
|
||||
return redirect()
|
||||
->route('membership')
|
||||
->with('error', __('memberships.subscription.error'));
|
||||
->with('error', Membership::getAttributeLabel('memberships.subscription.error'));
|
||||
}
|
||||
|
||||
return redirect()
|
||||
->route('membership')
|
||||
->with('success', __('memberships.subscription.success'));
|
||||
->with('success', Membership::getAttributeLabel('memberships.subscription.success'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ class ContactRequest extends FormRequest
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,7 +11,7 @@ class MembershipRequest extends FormRequest
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -26,12 +26,11 @@ class MembershipRequest extends FormRequest
|
||||
'lastname' => 'required|string|max:255',
|
||||
'firstname' => 'required|string|max:255',
|
||||
'email' => 'required|email|max:255',
|
||||
'company' => 'required|string|max:255',
|
||||
'company' => 'string|max:255',
|
||||
'address' => 'required|string|max:255',
|
||||
'zipcode' => 'required|string|max:255',
|
||||
'city' => 'required|string|max:255',
|
||||
'phone1' => 'required|string|max:255',
|
||||
'group_id' => 'required|string|max:255',
|
||||
|
||||
// Membership
|
||||
'package' => 'required|string|max:255',
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Listeners;
|
||||
|
||||
use App\Events\MemberRegistered;
|
||||
use App\Models\User;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
|
||||
@@ -21,6 +22,9 @@ class NotifyAdminForMembershipRequest
|
||||
*/
|
||||
public function handle(MemberRegistered $event): void
|
||||
{
|
||||
//
|
||||
$admin = User::where('name', 'SuperAdmin')->first();
|
||||
|
||||
$admin->notify(new AdminNewUserPending($event->user));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
|
||||
/**
|
||||
* @property int $id
|
||||
@@ -63,7 +64,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
*/
|
||||
class Member extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use HasFactory, Notifiable;
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'keycloak_id',
|
||||
|
||||
@@ -59,7 +59,7 @@ class Membership extends Model
|
||||
|
||||
public static function getAttributeLabel(string $attribute): string
|
||||
{
|
||||
return __("membership.fields.$attribute");
|
||||
return __("memberships.fields.$attribute");
|
||||
}
|
||||
|
||||
public function member(): BelongsTo
|
||||
|
||||
@@ -17,5 +17,9 @@ class ContactService
|
||||
$contact->fill($data);
|
||||
$contact->save();
|
||||
|
||||
// Envoyer un email à l'administrateur
|
||||
|
||||
return $contact;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Events\MemberRegistered;
|
||||
use App\Models\Member;
|
||||
use App\Models\MemberGroup;
|
||||
use App\Models\Package;
|
||||
@@ -29,7 +30,6 @@ class MemberService
|
||||
$member->firstname = $data['firstname'];
|
||||
$member->email = $data['email'];
|
||||
$member->company = $data['company'] ?? null;
|
||||
$member->date_of_birth = Carbon::parse($data['date_of_birth'])->format('Y-m-d H:i:s') ?? null;
|
||||
$member->address = $data['address'];
|
||||
$member->zipcode = $data['zipcode'];
|
||||
$member->city = $data['city'];
|
||||
@@ -38,7 +38,7 @@ class MemberService
|
||||
$member->save();
|
||||
}
|
||||
|
||||
$package = Package::where('id', $data['package_id'])
|
||||
$package = Package::where('identifier', $data['package'])
|
||||
->where('is_active', true)
|
||||
->firstOrFail();
|
||||
|
||||
@@ -47,11 +47,13 @@ class MemberService
|
||||
'status' => 'pending',
|
||||
'package_id' => $package->id ?? null,
|
||||
'amount' => $data['amount'],
|
||||
'payment_status' => 'pending',
|
||||
'payment_status' => 'unpaid',
|
||||
|
||||
]);
|
||||
|
||||
// Notify Admin
|
||||
$admin = Member::where('role', 'admin')->first();
|
||||
event(new MemberRegistered($admin));
|
||||
|
||||
|
||||
return $member;
|
||||
|
||||
Reference in New Issue
Block a user