Exemplo n.º 1
0
 public function findLocations(\App_ListFilter $filterList, $numRows = 1000)
 {
     $methodName = 'locationList';
     /**
      * @var $proto \Application\Proto\Inventory\LocationListQuery
      */
     $proto = $this->_createProto($methodName);
     if (!$filterList->getCursor()) {
         $this->_findAllEricsson(array('filterList' => $filterList));
         $filterList->reset();
         if (!$filterList->getCursor()) {
             throw new InvalidArgumentException('Listing sims locations: Invalid query.');
         }
     }
     $proto->setHandler($filterList->getCursor());
     $proto->setMaxNumRows($numRows);
     /**
      * @var $response \Application\Proto\Inventory\LocationListQuery\Response
      */
     $response = $this->_sendRequest($methodName, array('protoMessage' => $proto));
     $this->_checkGetResponse($response, true);
     $result = new Model\ListResultModel();
     $result->setCount(0);
     $responseLocationList = $response->getResponse();
     if ($responseLocationList) {
         $items = $responseLocationList->getRows();
         $its = array();
         foreach ($items as $id => $data) {
             $data = $data->serialize(new Codec\PhpArray());
             $data = $this->_mapEricssonModelToModel($data);
             $its[$id] = new SimModel($data);
         }
         $result->setItems($its);
         if ($responseLocationList->getNumRows() !== null) {
             $result->setCount($responseLocationList->getNumRows());
         }
     }
     return $result;
 }
Exemplo n.º 2
0
 public function deleteAll(\App_ListFilter $filterList = NULL)
 {
     $filters = array();
     if ($filterList !== null) {
         $filters['filterList'] = $filterList;
     }
     $mapper = StockMapper::getInstance();
     try {
         $result = $mapper->deleteAll($filters);
     } catch (EricssonException $e) {
         if (!($result = $e->getErrorMessages())) {
             throw $e;
         }
     }
     \App::audit('Deleting all sims from handler ' . $filterList->getCursor(), null);
     $watcher = $mapper->constructWatcherToTransaction();
     $watcher->params->action = 'stockDelete';
     $watcher->params->count = $filterList ? $filterList->getOldCount() : null;
     $txId = uniqid('stockdelete');
     $watcher->entityIds = array($txId);
     WatcherService::getInstance()->create($watcher);
     $event = $mapper->constructEventToTransaction();
     $event->entityId = $txId;
     $eventData = array('hasFailures' => false, 'message' => array());
     if ($result !== true && !empty($result)) {
         $eventData['hasFailures'] = true;
         $eventData['message']['failed'] = $result;
     }
     $event->eventData = $eventData;
     WatcherService::getInstance()->publishEvent($event);
     return $watcher;
 }
Exemplo n.º 3
0
 public function testCursorNotExistsChangingSort()
 {
     $filters = $this->filters;
     $randNum = rand(1, 15);
     for ($i = 0; $i < $randNum; $i++) {
         $filters[] = new App_ListFilter_EqualFilter(array('fieldName' => 'randomFieldName' . ($i + 1), 'value' => 'equal' . microtime(true)));
     }
     $listFilter1 = new App_ListFilter(array('filters' => $filters));
     $listFilter1->setSortingField('fieldName1');
     $listFilter1->setSortType(App_ListFilter::SORT_TYPE_ASC);
     $cursor = "testingCursor" . microtime(true);
     $listFilter1->setCursor($cursor, 1);
     $filters2 = $filters;
     $listFilter2 = new App_ListFilter(array('filters' => $filters2));
     $listFilter2->setSortingField('fieldName1');
     $listFilter2->setSortType(App_ListFilter::SORT_TYPE_DESC);
     $cursor2 = $listFilter2->getCursor();
     $this->assertFalse($cursor2);
 }
 /**
  * Fetch page from Ericsson
  *
  * @param \App_ListFilter $filterList
  * @param Paging $paging
  * @return array Like array('items' => arrayOfItems)
  */
 public function _fetchPageEricsson(\App_ListFilter $filterList, Paging $paging)
 {
     $id = $this->_getFetchPageCacheId($filterList->getCursor(), $paging->getPageSize(), $paging->getNpage());
     if ($data = $this->getCache()->load($id)) {
         return $data;
     }
     $rows = $this->_fecthPageEricssonProto($filterList, $paging);
     if ($rows) {
         \App::log()->debug("[ListFromCursor] Fetched page from cursor.");
         $filterList->touchCursor();
         return $this->_processList($rows, $filterList->getOldCount(), $filterList, $paging);
     }
     return false;
 }