Пример #1
0
 public function addJobAction()
 {
     if (!$this->getServiceLocator()->get('AuthStatus')->hasIdentity()) {
         return $this->redirect()->toRoute('login');
     }
     $form = new JobsForm();
     $form->get('submit')->setValue('Submit');
     /** @var \Zend\Http\PhpEnvironment\Request $request */
     $request = $this->getRequest();
     if ($request->isPost()) {
         $validate = new JobsFilter();
         $form->setInputFilter($validate->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $validate->exchangeArray($form->getData());
             $hydrator = new Hydrator\ObjectProperty();
             $job = new Job();
             $data = $hydrator->extract($request->getPost());
             $hydrator->hydrate($data, $job);
             $auth = new AuthAccess();
             if ($this->getServiceLocator()->get('AuthStatus')->hasIdentity()) {
                 $job->author = $auth->getRealName();
                 $job->date_submitted = time();
                 $this->getJobsTable()->addJob($job);
                 $submission = (string) $this->getJobsTable()->getId();
                 return $this->redirect()->toRoute('showaddedjob', array('action' => 'showaddedjob', 'param' => $submission));
             } else {
                 $this->redirect()->toRoute('login');
             }
         }
     }
     return array('form' => $form);
 }
 public function update($id, $data)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     $this->tableGateway->update($data, array('id' => $id));
     return $data;
 }
 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
 public function editAction()
 {
     $taskService = $this->getServiceLocator()->get('Console\\Service\\TaskService');
     $ObjectPropertyHydrator = new ObjectPropertyHydrator();
     $form = new TaskForm();
     $vars = array('form' => $form);
     $task_id = $this->params()->fromRoute('task_id', null);
     if (!empty($task_id)) {
         $task = $taskService->getTask($task_id);
         $task_data = $ObjectPropertyHydrator->extract($task);
         $form->setData($task_data);
     }
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post_data = $request->getPost();
         $form->setData($post_data);
         if ($form->isValid()) {
             $task = new Task();
             $ObjectPropertyHydrator->hydrate($form->getData(), $task);
             $vars['saved_int'] = $taskService->saveTask($task);
         }
     }
     $view_page = new ViewModel($vars);
     //$view_page = $this->setChildViews($view_page);
     return $view_page;
 }
Пример #5
0
 /**
  * Insert the order resource
  * @param stdClass $data
  * @return $order
  */
 public function insert($data)
 {
     $hydrate = new ObjectProperty();
     $data = $hydrate->extract($data);
     $orderData = $data;
     unset($orderData['item']);
     $items = $data['item'];
     $tableGateway = $this->repository->getTableGateway();
     /**
      * Watching transactions in orders
      */
     try {
         $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction();
         $orderId = $this->repository->insert($orderData);
         foreach ($items as $item) {
             $item['order_id'] = $orderId;
             $this->insertItem($item);
         }
         $tableGateway->getAdapter()->getDriver()->getConnection()->commit();
         return ['order_id' => $orderId];
     } catch (\Exception $e) {
         $tableGateway->getAdapter()->getDriver()->getConnection()->rollback();
         return 'error';
     }
 }
Пример #6
0
 public function update($id, $data)
 {
     $this->find($id);
     $hydrator = new ObjectProperty();
     $this->tableGateway->update($hydrator->extract($data), ['id' => (int) $id]);
     return $this->find($id);
 }
Пример #7
0
 public function insert($data)
 {
     $hydrator = new ObjectProperty();
     //Hidrate StdClass to array
     $data->user_id = $this->usersRepository->getAuthenticated()->getId();
     $data->created_at = (new \DateTime())->format('Y-m-d');
     $data->total = 0;
     $items = $data->item;
     unset($data->item);
     $orderData = $hydrator->extract($data);
     $tableGateway = $this->repository->getTableGateway();
     try {
         $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction();
         $order_id = $this->repository->insert($orderData);
         foreach ($items as $key => $item) {
             $product = $this->productsRepository->find($item['product_id']);
             $item['order_id'] = $order_id;
             $item['price'] = $product->getPrice();
             $item['total'] = $items[$key]['total'] = $item['quantity'] * $item['price'];
             $total += $item['total'];
             $this->repository->insertItem($item);
         }
         $this->repository->update(['total' => $total], $order_id);
         $tableGateway->getAdapter()->getDriver()->getConnection()->commit();
         return ['order_id' => $order_id];
     } catch (\Exception $e) {
         $tableGateway->getAdapter()->getDriver()->getConnection()->rollback();
         return 'error';
     }
 }
Пример #8
0
 public function create($data)
 {
     $mapper = new ObjectProperty();
     $data = $mapper->extract($data);
     $this->tableGateway->insert($data);
     $data['id'] = $this->tableGateway->getLastInsertValue();
     return $data;
 }
Пример #9
0
 /**
  * Fetch a resource
  *
  * @param mixed $ticket_id
  * @return ApiProblem|TicketEntity
  */
 public function fetch($ticket_id)
 {
     $hydrator = new ObjectProperty();
     $ticket = new TicketEntity();
     $response = $this->client->find($ticket_id);
     $ticket->exchangeArray($hydrator->extract($response->ticket));
     return $ticket;
 }
 public function update($data, $id)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     if (!empty($data['password'])) {
         $bcrypt = new Bcrypt();
         $data['password'] = $bcrypt->create($data['password']);
     }
     return $this->tableGateway->update($data, $id);
 }
Пример #11
0
 public function saveAddress(Address $address)
 {
     if ($this->checkAddress($address->address)) {
         // Save now.
         $addressTable = new TableGateway('address', $this->adapter);
         $hydrator = new ObjectPropertyHydrator();
         $data = $hydrator->extract($address);
         $addressTable->insert($data);
         $id = $addressTable->lastInsertValue;
         return $id;
     } else {
         throw new AddressAlreadyExsistException('Address already exsist!');
     }
 }
Пример #12
0
 /**
  * Returns a collection of items for a page.
  *
  * @param  int $offset Page offset
  * @param  int $itemCountPerPage Number of items per page
  * @return array
  */
 public function getItems($offset, $itemCountPerPage)
 {
     $params = ['page' => $offset, 'per_page' => $itemCountPerPage];
     $result = $this->client->findAll($params);
     $this->count = $result->count;
     if (is_array($result->tickets)) {
         $hydrator = new ObjectProperty();
         $tickets = array_map(function ($ticket) use($hydrator) {
             $array = $hydrator->extract($ticket);
             $ticket = new TicketEntity();
             $ticket->exchangeArray($array);
             return $ticket;
         }, $result->tickets);
     } else {
         $tickets = [];
     }
     return $tickets;
 }
Пример #13
0
 /**
  * @param $reverseOauth
  */
 public function auth($reverseOauth)
 {
     if ($reverseOauth->getToken($this->request)) {
         $token = $reverseOauth->getSessionToken();
         // token in session
     } else {
         $token = $reverseOauth->getError();
         // last returned error (array)
     }
     $info = $reverseOauth->getInfo();
     if ($info) {
         $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager');
         $user = $em->getRepository('Application\\Entity\\User')->findOneByEmail($info->email);
         if ($user) {
             $user->setLastLogin(time());
             $em->persist($user);
             $em->flush();
             $authService = $this->getServiceLocator()->get('Zend\\Authentication\\AuthenticationService');
             $authService->getStorage()->write($user);
             //if it come from other uri then redirect it
             $traject = new Container('traject');
             if ($traject->trajectData) {
                 return $this->redirect()->toRoute('traject/default', ['controller' => 'manage', 'action' => 'success']);
             }
             return $this->redirect()->toRoute('board');
         } else {
             $info->firstname = $info->first_name;
             //to make same name as form elements
             $info->lastname = $info->last_name;
             $hydrator = new ObjectProperty();
             $data = $hydrator->extract($info);
             $form = new RegisterForm();
             $form->setData($data);
             $view = new ViewModel(['registerForm' => $form]);
             $view->setTemplate('user/register/index');
             return $view;
         }
     }
 }
 public function insert($data)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     $order = $data;
     unset($order['items']);
     $items = $data['items'];
     $tableGateway = $this->ordersRepository->getTableGateway();
     try {
         $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction();
         $orderId = $this->ordersRepository->insert($order);
         foreach ($items as $item) {
             $item['order_id'] = $orderId;
             $this->ordersRepository->insertItem($item);
         }
         $tableGateway->getAdapter()->getDriver()->getConnection()->commit();
         return ['order_id' => $orderId];
     } catch (\Exception $e) {
         $tableGateway->getAdapter()->getDriver()->getConnection()->rollback();
         throw new \Exception();
     }
 }
Пример #15
0
 public function update($id, $data)
 {
     $hydrator = new ObjectProperty();
     $array = $hydrator->extract($data);
     $orderData = $array;
     unset($orderData['item']);
     $items = $array['item'];
     $tableGateway = $this->repository->getTablegateway();
     try {
         $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction();
         $itensAtuais = $this->repository->getOrderItems($id);
         foreach ($items as $item) {
             $item['order_id'] = $id;
             $buscaItem = $this->repository->getOrderItemTablegateway()->select(['order_id' => $item['order_id'], 'product_id' => $item['product_id']]);
             $idItem = 0;
             if (count($buscaItem) > 0) {
                 $idItem = (int) $buscaItem->current()->getId();
                 $this->repository->getOrderItemTablegateway()->update($item, ['id' => $idItem]);
             } else {
                 $this->repository->insertItem($item);
             }
             if (isset($itensAtuais[$idItem])) {
                 unset($itensAtuais[$idItem]);
             }
         }
         foreach ($itensAtuais as $itemExcluir) {
             $this->repository->getOrderItemTablegateway()->delete(['id' => $itemExcluir['id']]);
         }
         $this->repository->update($id, $orderData);
         $tableGateway->getAdapter()->getDriver()->getConnection()->commit();
         return ['order_id' => $id];
     } catch (\Exception $exc) {
         $tableGateway->getAdapter()->getDriver()->getConnection()->rollback();
         return 'error';
         //            echo $exc->getTraceAsString();
     }
 }
 public function update($id, $data)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     $orderData = $data;
     unset($orderData['item']);
     $items = $data['item'];
     $tableGateway = $this->repository->getTableGateway();
     try {
         $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction();
         $tableGateway->update($orderData, array('id' => $id));
         $this->repository->deleteItem($id);
         foreach ($items as $item) {
             $item['order_id'] = $id;
             $this->repository->insertItem($item);
         }
         $tableGateway->getAdapter()->getDriver()->getConnection()->commit();
         return $data;
     } catch (\Exception $e) {
         $tableGateway->getAdapter()->getDriver()->getConnection()->rollback();
         return 'error';
     }
 }
 /**
  * @iterations 20000
  * @group extraction
  */
 public function objectPropertyExtract()
 {
     $data = $this->objectPropertyHydrator->extract($this->hydratedObject);
 }
Пример #18
0
 public function toArray()
 {
     $hydrator = new ObjectProperty();
     return $hydrator->extract($this);
 }
Пример #19
0
 /**
  * Update a resource
  *
  * @param  mixed $id
  * @param  mixed $data
  * @return ApiProblem|mixed
  */
 public function update($id, $data)
 {
     $user = $this->usersRepository->findByUsername($this->getIdentity()->getRoleId());
     if ($user->getRole() != "admin") {
         return new ApiProblem(403, "Access denied for this user.");
     }
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     return $this->repository->update($data, ['id' => $id]);
 }
 /**
  * {@inheritDoc}
  * @throws PluginException
  */
 public function extract($object)
 {
     return array_merge(parent::extract($object), $this->extractFromPlugins($object));
 }
 public function create($data)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     return $this->userService->save($data);
 }
Пример #22
0
 /**
  * Maps a value to a DynamoDb attribute and returns the array
  *
  * @param mixed $value The Value to map to a DynamoDB Data Attribute
  *
  * @return array
  */
 protected function _formatValues($values)
 {
     foreach ($values as &$datapoint) {
         if (is_array($datapoint) || is_object($datapoint)) {
             // Get the properties of the class either from Array hydrator or public properties
             if (is_object($datapoint)) {
                 if ($datapoint instanceof ArraySerializableInterface) {
                     $hydrator = new ArraySerializable();
                 } else {
                     $hydrator = new ObjectProperty();
                 }
                 $datapoint = $hydrator->extract($datapoint);
             }
             $datapoint = ['M' => $datapoint];
         } elseif (is_numeric($datapoint)) {
             $datapoint = [Type::NUMBER => $datapoint];
         } elseif (is_bool($datapoint)) {
             $datapoint = [Type::BINARY => (bool) $datapoint];
         } else {
             $datapoint = [Type::STRING => (string) $datapoint];
         }
     }
     return $values;
 }
 public function update($data, $id)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     return $this->tableGateway->update($data, $id);
 }
Пример #24
0
 /**
  * Update a resource
  *
  * @param  mixed $id
  * @param  mixed $data
  * @return ApiProblem|mixed
  */
 public function update($id, $data)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     return $this->repository->update($data, ['id' => $id]);
 }