Skip to content

Commit 4fca113

Browse files
authored
Fix deleting related resources (#91)
* Fix issue with nullable billable on events * Prevent firing of events when billable is deleted * wip
1 parent d5be423 commit 4fca113

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

src/Http/Controllers/WebhookController.php

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,9 @@ private function handleSubscriptionUpdated(array $payload): void
165165

166166
$subscription = $subscription->sync($payload['data']['attributes']);
167167

168-
SubscriptionUpdated::dispatch($subscription->billable, $subscription, $payload);
168+
if ($subscription->billable) {
169+
SubscriptionUpdated::dispatch($subscription->billable, $subscription, $payload);
170+
}
169171
}
170172

171173
private function handleSubscriptionCancelled(array $payload): void
@@ -176,7 +178,9 @@ private function handleSubscriptionCancelled(array $payload): void
176178

177179
$subscription = $subscription->sync($payload['data']['attributes']);
178180

179-
SubscriptionCancelled::dispatch($subscription->billable, $subscription, $payload);
181+
if ($subscription->billable) {
182+
SubscriptionCancelled::dispatch($subscription->billable, $subscription, $payload);
183+
}
180184
}
181185

182186
private function handleSubscriptionResumed(array $payload): void
@@ -198,7 +202,9 @@ private function handleSubscriptionExpired(array $payload): void
198202

199203
$subscription = $subscription->sync($payload['data']['attributes']);
200204

201-
SubscriptionExpired::dispatch($subscription->billable, $subscription, $payload);
205+
if ($subscription->billable) {
206+
SubscriptionExpired::dispatch($subscription->billable, $subscription, $payload);
207+
}
202208
}
203209

204210
private function handleSubscriptionPaused(array $payload): void
@@ -225,21 +231,30 @@ private function handleSubscriptionUnpaused(array $payload): void
225231

226232
private function handleSubscriptionPaymentSuccess(array $payload): void
227233
{
228-
if ($subscription = $this->findSubscription($payload['data']['attributes']['subscription_id'])) {
234+
if (
235+
($subscription = $this->findSubscription($payload['data']['attributes']['subscription_id'])) &&
236+
$subscription->billable
237+
) {
229238
SubscriptionPaymentSuccess::dispatch($subscription->billable, $subscription, $payload);
230239
}
231240
}
232241

233242
private function handleSubscriptionPaymentFailed(array $payload): void
234243
{
235-
if ($subscription = $this->findSubscription($payload['data']['attributes']['subscription_id'])) {
244+
if (
245+
($subscription = $this->findSubscription($payload['data']['attributes']['subscription_id'])) &&
246+
$subscription->billable
247+
) {
236248
SubscriptionPaymentFailed::dispatch($subscription->billable, $subscription, $payload);
237249
}
238250
}
239251

240252
private function handleSubscriptionPaymentRecovered(array $payload): void
241253
{
242-
if ($subscription = $this->findSubscription($payload['data']['attributes']['subscription_id'])) {
254+
if (
255+
($subscription = $this->findSubscription($payload['data']['attributes']['subscription_id'])) &&
256+
$subscription->billable
257+
) {
243258
SubscriptionPaymentRecovered::dispatch($subscription->billable, $subscription, $payload);
244259
}
245260
}

0 commit comments

Comments
 (0)