Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/EntitlementObserver.php
Show All 18 Lines | class EntitlementObserver | ||||
* the {@link \App\User} entitled. | * the {@link \App\User} entitled. | ||||
* | * | ||||
* @param Entitlement $entitlement The entitlement being created. | * @param Entitlement $entitlement The entitlement being created. | ||||
* | * | ||||
* @return bool | * @return bool | ||||
*/ | */ | ||||
public function creating(Entitlement $entitlement): bool | public function creating(Entitlement $entitlement): bool | ||||
{ | { | ||||
while (true) { | |||||
$allegedly_unique = \App\Utils::uuidStr(); | |||||
if (!Entitlement::find($allegedly_unique)) { | |||||
$entitlement->{$entitlement->getKeyName()} = $allegedly_unique; | |||||
break; | |||||
} | |||||
} | |||||
// can't dispatch job here because it'll fail serialization | // can't dispatch job here because it'll fail serialization | ||||
// Make sure the owner is at least a controller on the wallet | // Make sure the owner is at least a controller on the wallet | ||||
$wallet = \App\Wallet::find($entitlement->wallet_id); | $wallet = \App\Wallet::find($entitlement->wallet_id); | ||||
if (!$wallet || !$wallet->owner) { | if (!$wallet || !$wallet->owner) { | ||||
return false; | return false; | ||||
} | } | ||||
$sku = \App\Sku::find($entitlement->sku_id); | $sku = \App\Sku::find($entitlement->sku_id); | ||||
if (!$sku) { | if (!$sku) { | ||||
return false; | return false; | ||||
} | } | ||||
$result = $sku->handler_class::preReq($entitlement, $wallet->owner); | $result = $sku->handler_class::preReq($entitlement, $wallet->owner); | ||||
if (!$result) { | if (!$result) { | ||||
return false; | return false; | ||||
} | } | ||||
while (true) { | |||||
$allegedly_unique = \App\Utils::uuidStr(); | |||||
if (!Entitlement::find($allegedly_unique)) { | |||||
$entitlement->{$entitlement->getKeyName()} = $allegedly_unique; | |||||
break; | |||||
} | |||||
} | |||||
return true; | return true; | ||||
} | } | ||||
/** | /** | ||||
* Handle the entitlement "created" event. | * Handle the entitlement "created" event. | ||||
* | * | ||||
* @param \App\Entitlement $entitlement The entitlement. | * @param \App\Entitlement $entitlement The entitlement. | ||||
* | * | ||||
▲ Show 20 Lines • Show All 102 Lines • Show Last 20 Lines |