Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/V4/SkusController.php
Show First 20 Lines • Show All 131 Lines • ▼ Show 20 Lines | public function userSkus($id) | ||||
$type = request()->input('type'); | $type = request()->input('type'); | ||||
$response = []; | $response = []; | ||||
// Note: Order by title for consistent ordering in tests | // Note: Order by title for consistent ordering in tests | ||||
$skus = Sku::orderBy('title')->get(); | $skus = Sku::orderBy('title')->get(); | ||||
foreach ($skus as $sku) { | foreach ($skus as $sku) { | ||||
if (!class_exists($sku->handler_class)) { | |||||
continue; | |||||
} | |||||
if (!$sku->handler_class::isAvailable($sku, $user)) { | if (!$sku->handler_class::isAvailable($sku, $user)) { | ||||
continue; | continue; | ||||
} | } | ||||
if ($data = $this->skuElement($sku)) { | if ($data = $this->skuElement($sku)) { | ||||
if ($type && $type != $data['type']) { | if ($type && $type != $data['type']) { | ||||
continue; | continue; | ||||
} | } | ||||
Show All 14 Lines | class SkusController extends Controller | ||||
* display the form control | * display the form control | ||||
* | * | ||||
* @param \App\Sku $sku SKU object | * @param \App\Sku $sku SKU object | ||||
* | * | ||||
* @return array|null Metadata | * @return array|null Metadata | ||||
*/ | */ | ||||
protected function skuElement($sku): ?array | protected function skuElement($sku): ?array | ||||
{ | { | ||||
if (!class_exists($sku->handler_class)) { | |||||
return null; | |||||
} | |||||
$data = array_merge($sku->toArray(), $sku->handler_class::metadata($sku)); | $data = array_merge($sku->toArray(), $sku->handler_class::metadata($sku)); | ||||
// ignore incomplete handlers | // ignore incomplete handlers | ||||
if (empty($data['type'])) { | if (empty($data['type'])) { | ||||
return null; | return null; | ||||
} | } | ||||
// Use localized value, toArray() does not get them right | // Use localized value, toArray() does not get them right | ||||
$data['name'] = $sku->name; | $data['name'] = $sku->name; | ||||
$data['description'] = $sku->description; | $data['description'] = $sku->description; | ||||
unset($data['handler_class'], $data['created_at'], $data['updated_at']); | unset($data['handler_class'], $data['created_at'], $data['updated_at']); | ||||
return $data; | return $data; | ||||
} | } | ||||
} | } |