. * */ namespace OCA\News\External; use \OCA\AppFramework\Core\API; use \OCA\News\BusinessLayer\FeedBusinessLayer; use \OCA\News\BusinessLayer\FolderBusinessLayer; use \OCA\News\BusinessLayer\ItemBusinessLayer; use \OCA\News\BusinessLayer\BusinessLayerException; class FeedAPI { private $itemBusinessLayer; private $feedBusinessLayer; private $folderBusinessLayer; private $api; public function __construct(API $api, FolderBusinessLayer $folderBusinessLayer, FeedBusinessLayer $feedBusinessLayer, ItemBusinessLayer $itemBusinessLayer){ $this->api = $api; $this->folderBusinessLayer = $folderBusinessLayer; $this->feedBusinessLayer = $feedBusinessLayer; $this->itemBusinessLayer = $itemBusinessLayer; } public function getAll(array $urlParams=array()) { $userId = $this->api->getUserId(); $result = array( 'feeds' => array(), 'starredCount' => $this->itemBusinessLayer->starredCount($userId) ); foreach ($this->feedBusinessLayer->findAll($userId) as $feed) { array_push($result['feeds'], $feed->toAPI()); } // check case when there are no items try { $result['newestItemId'] = $this->itemBusinessLayer->getNewestItemId($userId); } catch(BusinessLayerException $ex) {} return $result; } }