コード例 #1
0
 /**
  * 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);
 }
コード例 #2
0
 /**
  * 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");
 }
コード例 #3
0
 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);
 }
コード例 #4
0
ファイル: OrdersService.php プロジェクト: netoudi/apigility
 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());
     }
 }
コード例 #5
0
 /**
  * Fetch a resource
  *
  * @param  mixed $id
  * @return ApiProblem|mixed
  */
 public function fetch($id)
 {
     return $this->repository->find($id);
 }
コード例 #6
0
 private function isOwnerOfOrder($id)
 {
     $user = $this->usersRepository->findByUsername($this->getIdentity()->getRoleId());
     return $this->repository->find($id, $user) != null;
 }