summaryrefslogtreecommitdiffstats
path: root/businesslayer
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-09-12 00:59:39 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-09-12 01:00:32 +0200
commit2391e6bf62e0a3624685a2a7c72bdb7de499bef2 (patch)
treebd8bbc00f9894a082f5628efd3ad79916da16e4d /businesslayer
parent00c6e040deec9c3998ab679dcb84fc46ae72d2ac (diff)
fix #342
Diffstat (limited to 'businesslayer')
-rw-r--r--businesslayer/feedbusinesslayer.php14
1 files changed, 10 insertions, 4 deletions
diff --git a/businesslayer/feedbusinesslayer.php b/businesslayer/feedbusinesslayer.php
index cc7324251..fca4a0c74 100644
--- a/businesslayer/feedbusinesslayer.php
+++ b/businesslayer/feedbusinesslayer.php
@@ -239,6 +239,8 @@ class FeedBusinessLayer extends BusinessLayer {
$feedsDict[$feed->getLink()] = $feed;
}
+ $createdFeed = false;
+
// loop over all items and get the corresponding feed
// if the feed does not exist, create a seperate feed for them
foreach ($json as $entry) {
@@ -253,6 +255,7 @@ class FeedBusinessLayer extends BusinessLayer {
$feed = $feedsDict[$url];
$item->setFeedId($feed->getId());
} else {
+ $createdFeed = true;
$feed = new Feed();
$feed->setUserId($userId);
$feed->setLink($url);
@@ -261,21 +264,24 @@ class FeedBusinessLayer extends BusinessLayer {
$feed->setAdded($this->timeFactory->getTime());
$feed->setFolderId(0);
$feed->setPreventUpdate(true);
- $feed = $this->mapper->insert($item);
+ $feed = $this->mapper->insert($feed);
$item->setFeedId($feed->getId());
$feedsDict[$feed->getLink()] = $feed;
}
try {
- $this->itemMapper->findByGuidHash($item->getGuidHash(),
- $feed->getId(), $userId);
+ // if item exists, copy the status
+ $existingItem = $this->itemMapper->findByGuidHash(
+ $item->getGuidHash(), $feed->getId(), $userId);
+ $existingItem->setStatus($item->getStatus());
+ $this->itemMapper->update($existingItem);
} catch(DoesNotExistException $ex){
$this->itemMapper->insert($item);
}
}
- if($feed) {
+ if($createdFeed) {
return $this->mapper->findByUrlHash($urlHash, $userId);
}
}