. */ namespace SP\Modules\Web\Controllers; use SP\DataModel\DataModelInterface; use SP\Http\JsonResponse; use SP\Mvc\View\Components\SelectItemAdapter; use SP\Services\Account\AccountService; use SP\Services\Category\CategoryService; use SP\Services\Client\ClientService; use SP\Services\Notification\NotificationService; use SP\Util\Json; /** * Class ItemsController * * @package SP\Modules\Web\Controllers */ final class ItemsController extends SimpleControllerBase { /** * Devolver las cuentas visibles por el usuario * * @param int $accountId * * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function accountsUserAction($accountId = null) { $outItems = []; foreach ($this->dic->get(AccountService::class)->getForUser($accountId) as $account) { $obj = new \stdClass(); $obj->id = $account->id; $obj->name = $account->clientName . ' - ' . $account->name; $outItems[] = $obj; } $jsonResponse = new JsonResponse(); $jsonResponse->setStatus(0); $jsonResponse->setData($outItems); $jsonResponse->setCsrf($this->session->getSecurityKey()); Json::returnJson($jsonResponse); } /** * @throws \SP\Core\Exceptions\SPException */ public function clientsAction() { Json::returnRawJson(SelectItemAdapter::factory($this->dic->get(ClientService::class)->getAllForUser())->getJsonItemsFromModel()); } /** * @throws \SP\Core\Exceptions\SPException */ public function categoriesAction() { Json::returnRawJson(SelectItemAdapter::factory($this->dic->get(CategoryService::class)->getAllBasic())->getJsonItemsFromModel()); } /** * @throws \SP\Core\Exceptions\SPException */ public function notificationsAction() { Json::returnRawJson(Json::getJson($this->dic->get(NotificationService::class)->getAllActiveForUserId($this->session->getUserData()->getId()))); } /** * ItemsController constructor. */ protected function initialize() { $this->checks(); } /** * 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; } }