mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
create a status for new items
This commit is contained in:
@@ -17,6 +17,7 @@ import com.commafeed.backend.model.Feed;
|
||||
import com.commafeed.backend.model.FeedCategory;
|
||||
import com.commafeed.backend.model.FeedEntry;
|
||||
import com.commafeed.backend.model.FeedEntryStatus;
|
||||
import com.commafeed.backend.model.FeedSubscription;
|
||||
import com.commafeed.backend.model.User;
|
||||
import com.commafeed.backend.model.extended.FeedEntryWithStatus;
|
||||
import com.commafeed.frontend.utils.ModelFactory.MF;
|
||||
@@ -31,6 +32,9 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
||||
@Inject
|
||||
FeedService feedService;
|
||||
|
||||
@Inject
|
||||
FeedSubscriptionService feedSubscriptionService;
|
||||
|
||||
public void updateEntries(String url, Collection<FeedEntry> entries) {
|
||||
Feed feed = Iterables.getFirst(
|
||||
feedService.findByField(MF.i(MF.p(Feed.class).getUrl()), url),
|
||||
@@ -51,7 +55,7 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
||||
}
|
||||
}
|
||||
if (foundEntry == null) {
|
||||
entry.getFeeds().add(feed);
|
||||
addFeedToEntry(entry, feed);
|
||||
save(entry);
|
||||
} else {
|
||||
boolean foundFeed = false;
|
||||
@@ -63,7 +67,7 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
||||
}
|
||||
|
||||
if (!foundFeed) {
|
||||
foundEntry.getFeeds().add(feed);
|
||||
addFeedToEntry(foundEntry, feed);
|
||||
update(foundEntry);
|
||||
}
|
||||
}
|
||||
@@ -74,6 +78,19 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
||||
feedService.update(feed);
|
||||
}
|
||||
|
||||
private void addFeedToEntry(FeedEntry entry, Feed feed) {
|
||||
entry.getFeeds().add(feed);
|
||||
List<FeedSubscription> subscriptions = feedSubscriptionService
|
||||
.findByFeed(feed);
|
||||
for (FeedSubscription sub : subscriptions) {
|
||||
FeedEntryStatus status = new FeedEntryStatus();
|
||||
status.setEntry(entry);
|
||||
status.setUser(sub.getUser());
|
||||
em.persist(status);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<FeedEntry> getByGuids(List<String> guids) {
|
||||
TypedQuery<FeedEntry> query = em.createNamedQuery("Entry.byGuids",
|
||||
FeedEntry.class);
|
||||
|
||||
@@ -27,6 +27,12 @@ public class FeedSubscriptionService extends GenericDAO<FeedSubscription> {
|
||||
return Iterables.getFirst(criteria.getResultList(), null);
|
||||
}
|
||||
|
||||
public List<FeedSubscription> findByFeed(Feed feed) {
|
||||
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
||||
criteria.andEquals(MF.i(proxy().getFeed()), feed);
|
||||
return criteria.getResultList();
|
||||
}
|
||||
|
||||
public FeedSubscription findByFeed(User user, Feed feed) {
|
||||
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
||||
criteria.andEquals(MF.i(proxy().getUser()), user);
|
||||
|
||||
Reference in New Issue
Block a user