diff options
author | Marco Nassabain <marco.nassabain@hotmail.com> | 2021-03-04 00:02:21 +0100 |
---|---|---|
committer | Sean Molenaar <SMillerDev@users.noreply.github.com> | 2021-04-08 22:31:21 +0200 |
commit | dd818c6203961a82aeef58bcf526aced7b361f04 (patch) | |
tree | 323bc44703dec1c44bbef7141215d0c4dbbfc9bf /lib/Service/ItemServiceV2.php | |
parent | 8fd3975907aaaf2808a517b609f13e988ba5c044 (diff) |
🚑 Fix circular inclusion: create ShareService
Signed-off-by: Marco Nassabain <marco.nassabain@hotmail.com>
Diffstat (limited to 'lib/Service/ItemServiceV2.php')
-rw-r--r-- | lib/Service/ItemServiceV2.php | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/lib/Service/ItemServiceV2.php b/lib/Service/ItemServiceV2.php index a57f67338..3b1a81400 100644 --- a/lib/Service/ItemServiceV2.php +++ b/lib/Service/ItemServiceV2.php @@ -17,7 +17,6 @@ use OCA\News\Db\Feed; use OCA\News\Db\ListType; use OCA\News\Db\Item; use OCA\News\Db\ItemMapperV2; -use OCA\News\Service\FeedServiceV2; use OCA\News\Service\Exceptions\ServiceConflictException; use OCA\News\Service\Exceptions\ServiceNotFoundException; use OCA\News\Service\Exceptions\ServiceValidationException; @@ -41,29 +40,19 @@ class ItemServiceV2 extends Service protected $config; /** - * Feeds service. - * - * @var FeedServiceV2 - */ - protected $feedService; - - /** * ItemService constructor. * * @param ItemMapperV2 $mapper - * @param FeedServiceV2 $feedService * @param IConfig $config * @param LoggerInterface $logger */ public function __construct( ItemMapperV2 $mapper, - FeedServiceV2 $feedService, IConfig $config, LoggerInterface $logger ) { parent::__construct($mapper, $logger); $this->config = $config; - $this->feedService = $feedService; } /** @@ -404,60 +393,4 @@ class ItemServiceV2 extends Service ): array { return $this->mapper->findAllItems($userId, $type, $limit, $offset, $oldestFirst, $search); } - - - /** - * Share an item with a user - * - * @param string $userId Item owner - * @param int $id Item ID - * @param bool $shareWithId User to share with - * - * Sharing by copying - the item is duplicated, and the 'sharedBy' - * field is filled accordingly. - * The item is then placed in a dummy feed reserved for items - * shared with the user - * - * @return Item - * @throws ServiceNotFoundException|ServiceConflictException - */ - public function share(string $userId, int $id, string $shareWithId): Entity - { - // find item to share - try { - $item = $this->find($userId, $id); - } catch (DoesNotExistException $ex) { - throw ServiceNotFoundException::from($ex); - } - - // duplicate the item - $sharedItem = clone $item; - - // initialize fields - $sharedItem->setUnread(true); - $sharedItem->setStarred(false); - $sharedItem->setSharedBy($userId); - - // get 'shared with me' dummy feed - // TODO: move to feedService->createSharedWithMeFeed() ? - $feedUrl = 'http://nextcloud/sharedwithme'; - $feed = $this->feedService->findByUrl($shareWithId, $feedUrl); - if (is_null($feed)) { - $feed = new Feed(); - $feed->setUserId($shareWithId) - ->setUrlHash(md5($feedUrl)) - ->setLink($feedUrl) - ->setUrl($feedUrl) - ->setTitle('Shared with me') - ->setAdded(time()) - ->setFolderId(null) - ->setPreventUpdate(true); - - $feed = $this->feedService->insert($feed); - } - - $sharedItem->setFeedId($feed->getId()); - - return $this->mapper->insert($sharedItem); - } } |