Skip to content

Commit e349efe

Browse files
authored
fix: allow canUseFeature to return true when no usage record exists (#40)
1 parent 74c623f commit e349efe

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

src/Models/Subscription.php

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -342,25 +342,28 @@ public function reduceFeatureUsage(string $featureSlug, int $uses = 1): ?Subscri
342342
return $usage;
343343
}
344344

345-
/**
346-
* Determine if the feature can be used.
347-
*/
348345
public function canUseFeature(string $featureSlug): bool
349346
{
350347
$featureValue = $this->getFeatureValue($featureSlug);
351-
$usage = $this->usage()->byFeatureSlug($featureSlug, $this->plan_id)->first();
348+
349+
if ($featureValue === null) {
350+
return false;
351+
}
352352

353353
if ($featureValue === 'true') {
354354
return true;
355355
}
356356

357-
// If the feature value is zero, let's return false since
358-
// there's no uses available. (useful to disable countable features)
359-
if (! $usage || $usage->expired() || $featureValue === null || $featureValue === '0' || $featureValue === 'false') {
357+
if ($featureValue === 'false' || $featureValue === '0') {
358+
return false;
359+
}
360+
361+
$usage = $this->usage()->byFeatureSlug($featureSlug, $this->plan_id)->first();
362+
363+
if ($usage && $usage->expired()) {
360364
return false;
361365
}
362366

363-
// Check for available uses
364367
return $this->getFeatureRemainings($featureSlug) > 0;
365368
}
366369

0 commit comments

Comments
 (0)