Skip to content

Commit d8aeff5

Browse files
committed
improve $user handling and add error logging
1 parent 08ec0fd commit d8aeff5

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

app/Livewire/MobilePricing.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use App\Models\User;
77
use Illuminate\Support\Facades\Auth;
88
use Illuminate\Support\Facades\Hash;
9+
use Illuminate\Support\Facades\Log;
910
use Illuminate\Support\Str;
1011
use Livewire\Component;
1112

@@ -24,11 +25,25 @@ public function handlePurchaseRequest(array $data)
2425

2526
public function createCheckoutSession(string $plan, ?User $user = null)
2627
{
27-
if (! ($user ??= Auth::user())) {
28+
// If a user isn't passed into this method, Livewire will instantiate
29+
// a new User. So we need to check that the user exists before using it,
30+
// and then use the authenticated user as a fallback if the user is
31+
// logged in.
32+
$user = $user?->exists ? $user : Auth::user();
33+
34+
if (! $user) {
35+
// TODO: return a flash message or notification to the user that there
36+
// was an error.
37+
Log::error('Failed to create checkout session. User does not exist and user is not authenticated.');
38+
2839
return;
2940
}
3041

3142
if (! ($subscription = Subscription::tryFrom($plan))) {
43+
// TODO: return a flash message or notification to the user that there
44+
// was an error.
45+
Log::error('Failed to create checkout session. Invalid subscription plan name provided.');
46+
3247
return;
3348
}
3449

0 commit comments

Comments
 (0)