diff options
Diffstat (limited to 'businesslayer/itembusinesslayer.php')
-rw-r--r-- | businesslayer/itembusinesslayer.php | 80 |
1 files changed, 68 insertions, 12 deletions
diff --git a/businesslayer/itembusinesslayer.php b/businesslayer/itembusinesslayer.php index 03b4c1498..065e0de30 100644 --- a/businesslayer/itembusinesslayer.php +++ b/businesslayer/itembusinesslayer.php @@ -49,21 +49,30 @@ class ItemBusinessLayer extends BusinessLayer { } + /** + * Returns all new items + * @param int $id the id of the feed, 0 for starred or all items + * @param FeedType $type the type of the feed + * @param int $updatedSince a timestamp with the last modification date + * returns only items with a >= modified timestamp + * @param boolean $showAll if unread items should also be returned + * @param string $userId the name of the user + * @return array of items + */ public function findAllNew($id, $type, $updatedSince, $showAll, $userId){ - $status = $this->statusFlag->typeToStatus($type, $showAll); - + switch($type){ case FeedType::FEED: - $items = $this->mapper->findAllNewFeed($id, $updatedSince, + $items = $this->mapper->findAllNewFeed($id, $updatedSince, $status, $userId); break; case FeedType::FOLDER: - $items = $this->mapper->findAllNewFolder($id, $updatedSince, + $items = $this->mapper->findAllNewFolder($id, $updatedSince, $status, $userId); break; default: - $items = $this->mapper->findAllNew($updatedSince, $status, + $items = $this->mapper->findAllNew($updatedSince, $status, $userId); } @@ -71,21 +80,30 @@ class ItemBusinessLayer extends BusinessLayer { } - public function findAll($id, $type, $limit, $offset, - $showAll, $userId){ + /** + * Returns all items + * @param int $id the id of the feed, 0 for starred or all items + * @param FeedType $type the type of the feed + * @param int $limit how many items should be returned + * @param int $offset only items lower than this id are returned, 0 for no offset + * @param boolean $showAll if unread items should also be returned + * @param string $userId the name of the user + * @return array of items + */ + public function findAll($id, $type, $limit, $offset, $showAll, $userId){ $status = $this->statusFlag->typeToStatus($type, $showAll); switch($type){ case FeedType::FEED: - $items = $this->mapper->findAllFeed($id, $limit, $offset, + $items = $this->mapper->findAllFeed($id, $limit, $offset, $status, $userId); break; case FeedType::FOLDER: - $items = $this->mapper->findAllFolder($id, $limit, $offset, + $items = $this->mapper->findAllFolder($id, $limit, $offset, $status, $userId); break; default: - $items = $this->mapper->findAll($limit, $offset, $status, + $items = $this->mapper->findAll($limit, $offset, $status, $userId); } @@ -94,6 +112,11 @@ class ItemBusinessLayer extends BusinessLayer { /** + * Star or unstar an item + * @param int $feedId the id of the item's feed that should be starred + * @param string $guidHash the guidHash of the item that should be starred + * @param boolean $isStarred if true the item will be marked as starred, if false unstar + * @param $userId the name of the user for security reasons * @throws BusinessLayerException if the item does not exist */ public function star($feedId, $guidHash, $isStarred, $userId){ @@ -113,13 +136,17 @@ class ItemBusinessLayer extends BusinessLayer { /** + * Read or unread an item + * @param int $itemId the id of the item that should be read + * @param boolean $isRead if true the item will be marked as read, if false unread + * @param $userId the name of the user for security reasons * @throws BusinessLayerException if the item does not exist */ public function read($itemId, $isRead, $userId){ $item = $this->find($itemId, $userId); $item->setLastModified($this->timeFactory->getTime()); if($isRead){ - $item->setRead(); + $item->setRead(); } else { $item->setUnread(); } @@ -127,23 +154,43 @@ class ItemBusinessLayer extends BusinessLayer { } + /** + * Set all items read + * @param int $highestItemId all items below that are marked read. This is used + * to prevent marking items as read that the users hasnt seen yet + * @param string $userId the name of the user + */ public function readAll($highestItemId, $userId){ $this->mapper->readAll($highestItemId, $userId); } + /** + * Set a folder read + * @param int $folderId the id of the folder that should be marked read + * @param int $highestItemId all items below that are marked read. This is used + * to prevent marking items as read that the users hasnt seen yet + * @param string $userId the name of the user + */ public function readFolder($folderId, $highestItemId, $userId){ $this->mapper->readFolder($folderId, $highestItemId, $userId); } + /** + * Set a feed read + * @param int $feedId the id of the feed that should be marked read + * @param int $highestItemId all items below that are marked read. This is used + * to prevent marking items as read that the users hasnt seen yet + * @param string $userId the name of the user + */ public function readFeed($feedId, $highestItemId, $userId){ $this->mapper->readFeed($feedId, $highestItemId, $userId); } /** - * This method deletes all unread feeds that are not starred and over the + * This method deletes all unread feeds that are not starred and over the * count of $this->autoPurgeCount starting by the oldest. This is to clean * up the database so that old entries dont spam your db. As criteria for * old, the id is taken @@ -154,7 +201,10 @@ class ItemBusinessLayer extends BusinessLayer { /** + * Returns the newest itemd id, use this for marking feeds read + * @param string $userId the name of the user * @throws BusinessLayerException if there is no newest item + * @return int */ public function getNewestItemId($userId) { try { @@ -165,8 +215,14 @@ class ItemBusinessLayer extends BusinessLayer { } + /** + * Returns the starred count + * @param string $userId the name of the user + * @return int the count + */ public function starredCount($userId){ return $this->mapper->starredCount($userId); } + } |