diff --git a/src/main/java/com/commafeed/frontend/model/UnreadCount.java b/src/main/java/com/commafeed/frontend/model/UnreadCount.java new file mode 100644 index 00000000..094a092f --- /dev/null +++ b/src/main/java/com/commafeed/frontend/model/UnreadCount.java @@ -0,0 +1,45 @@ +package com.commafeed.frontend.model; + +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; + +import com.wordnik.swagger.annotations.ApiClass; + +@SuppressWarnings("serial") +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +@ApiClass("Unread count") +public class UnreadCount implements Serializable { + + private long feedId; + private long unreadCount; + + public UnreadCount() { + + } + + public UnreadCount(long feedId, long unreadCount) { + this.feedId = feedId; + this.unreadCount = unreadCount; + } + + public long getFeedId() { + return feedId; + } + + public void setFeedId(long feedId) { + this.feedId = feedId; + } + + public long getUnreadCount() { + return unreadCount; + } + + public void setUnreadCount(long unreadCount) { + this.unreadCount = unreadCount; + } + +} diff --git a/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java b/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java index 81ccec7f..d766942d 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java @@ -33,6 +33,7 @@ import com.commafeed.frontend.model.Category; import com.commafeed.frontend.model.Entries; import com.commafeed.frontend.model.Entry; import com.commafeed.frontend.model.Subscription; +import com.commafeed.frontend.model.UnreadCount; import com.commafeed.frontend.model.request.AddCategoryRequest; import com.commafeed.frontend.model.request.CategoryModificationRequest; import com.commafeed.frontend.model.request.CollapseRequest; @@ -291,6 +292,19 @@ public class CategoryREST extends AbstractResourceREST { return root; } + @GET + @Path("unreadCount") + @ApiOperation(value = "Get unread count for feed subscriptions") + public List getUnreadCount() { + List list = Lists.newArrayList(); + Map unreadCount = feedEntryStatusDAO + .getUnreadCount(getUser()); + for (Map.Entry e : unreadCount.entrySet()) { + list.add(new UnreadCount(e.getKey(), e.getValue())); + } + return list; + } + private Category buildCategory(Long id, List categories, List subscriptions, Map unreadCount) { Category category = new Category();