store only 10 entries for new users

This commit is contained in:
Athou
2013-04-10 16:45:05 +02:00
parent edfafeb7b0
commit 581c7bc070
5 changed files with 41 additions and 16 deletions

View File

@@ -1,7 +1,6 @@
package com.commafeed.backend.dao;
import java.util.List;
import java.util.Set;
import javax.ejb.Stateless;
import javax.inject.Inject;
@@ -28,6 +27,9 @@ public class FeedSubscriptionService extends GenericDAO<FeedSubscription> {
@Inject
FeedService feedService;
@Inject
FeedEntryService feedEntryService;
@Inject
FeedEntryStatusService feedEntryStatusService;
@@ -42,26 +44,30 @@ public class FeedSubscriptionService extends GenericDAO<FeedSubscription> {
}
FeedSubscription sub = findByFeed(user, feed);
boolean newSubscription = false;
if (sub == null) {
sub = new FeedSubscription();
sub.setFeed(feed);
sub.setUser(user);
newSubscription = true;
}
sub.setCategory(category);
sub.setTitle(title);
saveOrUpdate(sub);
List<FeedEntryStatus> statuses = Lists.newArrayList();
Set<FeedEntry> allEntries = feedService
.getByIdWithEntries(feed.getId()).getEntries();
for (FeedEntry entry : allEntries) {
FeedEntryStatus status = new FeedEntryStatus();
status.setEntry(entry);
status.setRead(true);
status.setSubscription(sub);
statuses.add(status);
if (newSubscription) {
List<FeedEntryStatus> statuses = Lists.newArrayList();
List<FeedEntry> allEntries = feedEntryService.findByFeed(feed, 0,
10);
for (FeedEntry entry : allEntries) {
FeedEntryStatus status = new FeedEntryStatus();
status.setEntry(entry);
status.setRead(true);
status.setSubscription(sub);
statuses.add(status);
}
feedEntryStatusService.save(statuses);
}
feedEntryStatusService.save(statuses);
}
public FeedSubscription findById(User user, Long id) {