diff options
Diffstat (limited to 'lib/Service/ItemServiceV2.php')
-rw-r--r-- | lib/Service/ItemServiceV2.php | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Service/ItemServiceV2.php b/lib/Service/ItemServiceV2.php index 57804a8c3..4f314105b 100644 --- a/lib/Service/ItemServiceV2.php +++ b/lib/Service/ItemServiceV2.php @@ -212,6 +212,32 @@ class ItemServiceV2 extends Service } /** + * Mark an item as starred by id + * + * @param string $userId Item owner + * @param int $itemId + * @param bool $starred + * + * @return Item + * @throws ServiceConflictException + * @throws ServiceNotFoundException + */ + public function starByItemId(string $userId, int $itemId, bool $starred): Entity + { + try { + $item = $this->mapper->findFromUser($userId, $itemId); + } catch (DoesNotExistException $ex) { + throw ServiceNotFoundException::from($ex); + } catch (MultipleObjectsReturnedException $ex) { + throw ServiceConflictException::from($ex); + } + + $item->setStarred($starred); + + return $this->mapper->update($item); + } + + /** * Mark all items as read * * @param string $userId Item owner |