/** * Fetch a resource * * @param mixed $id * @return ApiProblem|mixed */ public function fetch($id) { $userRepository = $this->repository->getUsersRepository(); $user = $userRepository->findByUsername($this->getIdentity()->getRoleId()); //if ($user->getRole() == "salesman"){ // return $this->repository->findByIdUsuario($id, $user->getId()); //} return $this->repository->find($id); }
/** * Fetch a resource * * @param mixed $id * @return ApiProblem|mixed */ public function fetch($id) { $entity = $this->repository->find($id); $usuarioLogado = $this->getUsuarioLogado(); if ($usuarioLogado->getRole() === 'admin' || $usuarioLogado->getId() === $entity['user_id']) { return $entity; } return new ApiProblem(403, "O usuário não pode acessar essa ordem"); }
public function update($id, $data) { $hydrator = new ObjectProperty(); $orderData = $hydrator->extract($data); $items = $orderData['item']; unset($orderData['item']); try { $this->repository->beginTransaction(); $this->repository->update($orderData, $id); $listItemsIds = []; foreach ($items as $item) { if (array_key_exists('id', $item)) { $itemId = $item['id']; $this->repository->updateItem($item, $itemId); } else { $item['order_id'] = $id; $itemId = $this->repository->insertItem($item); } $listItemsIds[] = $itemId; } $this->repository->deleteItemsNotInArray($id, $listItemsIds); $this->repository->commitTransaction(); } catch (Exception $e) { $this->repository->rollbackTransaction(); return false; } return $this->repository->find($id); }
public function delete($id) { try { $order = $this->ordersRepository->find($id); $itemTable = $this->ordersRepository->getItemTable(); $items = $itemTable->select(['order_id' => $order->getId()]); foreach ($items as $item) { $itemTable->delete(['id' => $item->getId()]); } return $this->ordersRepository->delete($order->getId()); } catch (\Exception $e) { throw new \Exception($e->getMessage()); } }
/** * Fetch a resource * * @param mixed $id * @return ApiProblem|mixed */ public function fetch($id) { return $this->repository->find($id); }
private function isOwnerOfOrder($id) { $user = $this->usersRepository->findByUsername($this->getIdentity()->getRoleId()); return $this->repository->find($id, $user) != null; }