forked from Archives/Athou_commafeed
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.FeedCategory;
|
||||||
import com.commafeed.backend.model.FeedEntry;
|
import com.commafeed.backend.model.FeedEntry;
|
||||||
import com.commafeed.backend.model.FeedEntryStatus;
|
import com.commafeed.backend.model.FeedEntryStatus;
|
||||||
|
import com.commafeed.backend.model.FeedSubscription;
|
||||||
import com.commafeed.backend.model.User;
|
import com.commafeed.backend.model.User;
|
||||||
import com.commafeed.backend.model.extended.FeedEntryWithStatus;
|
import com.commafeed.backend.model.extended.FeedEntryWithStatus;
|
||||||
import com.commafeed.frontend.utils.ModelFactory.MF;
|
import com.commafeed.frontend.utils.ModelFactory.MF;
|
||||||
@@ -31,6 +32,9 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
|||||||
@Inject
|
@Inject
|
||||||
FeedService feedService;
|
FeedService feedService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
FeedSubscriptionService feedSubscriptionService;
|
||||||
|
|
||||||
public void updateEntries(String url, Collection<FeedEntry> entries) {
|
public void updateEntries(String url, Collection<FeedEntry> entries) {
|
||||||
Feed feed = Iterables.getFirst(
|
Feed feed = Iterables.getFirst(
|
||||||
feedService.findByField(MF.i(MF.p(Feed.class).getUrl()), url),
|
feedService.findByField(MF.i(MF.p(Feed.class).getUrl()), url),
|
||||||
@@ -51,7 +55,7 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (foundEntry == null) {
|
if (foundEntry == null) {
|
||||||
entry.getFeeds().add(feed);
|
addFeedToEntry(entry, feed);
|
||||||
save(entry);
|
save(entry);
|
||||||
} else {
|
} else {
|
||||||
boolean foundFeed = false;
|
boolean foundFeed = false;
|
||||||
@@ -63,7 +67,7 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!foundFeed) {
|
if (!foundFeed) {
|
||||||
foundEntry.getFeeds().add(feed);
|
addFeedToEntry(foundEntry, feed);
|
||||||
update(foundEntry);
|
update(foundEntry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,6 +78,19 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
|||||||
feedService.update(feed);
|
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) {
|
public List<FeedEntry> getByGuids(List<String> guids) {
|
||||||
TypedQuery<FeedEntry> query = em.createNamedQuery("Entry.byGuids",
|
TypedQuery<FeedEntry> query = em.createNamedQuery("Entry.byGuids",
|
||||||
FeedEntry.class);
|
FeedEntry.class);
|
||||||
|
|||||||
@@ -27,6 +27,12 @@ public class FeedSubscriptionService extends GenericDAO<FeedSubscription> {
|
|||||||
return Iterables.getFirst(criteria.getResultList(), null);
|
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) {
|
public FeedSubscription findByFeed(User user, Feed feed) {
|
||||||
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
||||||
criteria.andEquals(MF.i(proxy().getUser()), user);
|
criteria.andEquals(MF.i(proxy().getUser()), user);
|
||||||
|
|||||||
Reference in New Issue
Block a user