. */ namespace SP\Controller; use SP\Account\AccountUtil; use SP\Core\ItemsTypeInterface; use SP\DataModel\DataModelInterface; use SP\Mgmt\Categories\Category; use SP\Mgmt\Customers\Customer; /** * Class ItemsController * * @package SP\Controller */ class ItemsController { /** * Devuelve los elementos solicitados * * @param $itemType int El tipo de elemento a devolver * @return array */ public function getItems($itemType) { switch ($itemType) { case ItemsTypeInterface::ITEM_CATEGORIES: return $this->getCategories(); case ItemsTypeInterface::ITEM_CUSTOMERS: return $this->getCustomers(); default: return []; } } /** * Devuelve las categorías disponibles * * @return array */ protected function getCategories() { return $this->prepareItems(Category::getItem()->getAll()); } /** * Preparar los elementos para devolverlos * * @param array $items * @return array */ protected function prepareItems(array $items) { $outItems = []; /** @var DataModelInterface $item */ foreach ($items as $item) { $obj = new \stdClass(); $obj->id = $item->getId(); $obj->name = $item->getName(); $outItems[] = $obj; } return $outItems; } /** * Devuelve los clientes disponibles * * @return array */ protected function getCustomers() { return $this->prepareItems(Customer::getItem()->getAll()); } }