private function getInventory() { $this->page = $this->page ? $this->page : 1; $ir = new InventoryReader($this->userId); $ir->setPage( $this->page ); $ir->setPerpage( $this->resultsPerPage ); // set filter for inventory reader switch( $this->type ) { case 'zomg': $ir->addFilter( new MainInventoryFilter() ); $ir->addFilter( new ZomgFilter() ); break; case 'game': $ir->addFilter( new GameItemsFilter() ); $ir->addFilter( new NotLootFilter() ); break; case 'equip': $ir->addFilter( new UnequippedFilter() ); $ir->addFilter( new EquippablesFilter() ); break; case 'housing': $ir->addFilter( new HousingItemsFilter() ); $ir->addFilter( new UnequippedFilter() ); break; case 'special': $ir->addFilter( new SpecialsFilter() ); $ir->addFilter( new UnequippedFilter() ); break; default: $ir->addFilter( new MainInventoryFilter() ); $ir->addFilter( new UnequippedFilter() ); break; } $ir->retrieveProperties(); $rs = $ir->execute(); //error handling if( !$rs->isSuccess()) { throw new CircuitExecutionException($rs->whyYouBreak(), $rs->getDebug()); } //format data $items = $rs->getItems(); $item_ids = $rs->getItemIds(); $items_total = $rs->getTotalItems(); $serials = $rs->getSerials(); if ( $this->type == 'zomg'&& count($items) < $this->resultsPerPage ) { $ir = new InventoryReader($this->userId); $ir->addFilter( new LootFilter() ); $ir->retrieveProperties(); $rs = $ir->execute(); if( !$rs->isSuccess()) { throw new CircuitExecutionException($rs->whyYouBreak(), $rs->getDebug()); } $items = array_merge($items,$rs->getItems()); $item_ids = array_merge($item_ids,$rs->getItemIds()); $items_total += $rs->getTotalItems(); $serials = array_merge($serials,$rs->getSerials()); } // save stuff for later. $this->set('inventory', $items); $this->set('serials', $serials); $this->set('page', $this->page); $this->set('totalPages', ceil($items_total / $this->resultsPerPage)); $this->set('resultsPerPage', $this->resultsPerPage); //return return $item_ids; }