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; }
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; }
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; }