. */ namespace SP\Adapters; use League\Fractal\Resource\Collection; use SP\Core\Acl\ActionsInterface; use SP\Core\Exceptions\SPException; use SP\DataModel\CategoryData; use SP\Mvc\Controller\ItemTrait; use SP\Util\Link; /** * Class CategoryAdapter * * @package SP\Adapters */ final class CategoryAdapter extends AdapterBase { use ItemTrait; protected $availableIncludes = [ 'customFields' ]; /** * @param CategoryData $data * * @return Collection * @throws SPException */ public function includeCustomFields(CategoryData $data) { return $this->collection( $this->getCustomFieldsForItem(ActionsInterface::CATEGORY, $data->id), new CustomFieldAdapter($this->configData) ); } /** * @param CategoryData $data * * @return array */ public function transform(CategoryData $data): array { return [ 'id' => (int)$data->getId(), 'name' => $data->getName(), 'description' => $data->getDescription(), 'customFields' => null, 'links' => [ [ 'rel' => 'self', 'uri' => Link::getDeepLink($data->getId(), ActionsInterface::CATEGORY_VIEW, $this->configData, true) ] ], ]; } }