mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
use backend to populate data
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package com.commafeed.backend.dao;
|
||||
|
||||
import javax.ejb.Stateless;
|
||||
|
||||
import com.commafeed.model.FeedEntryStatus;
|
||||
|
||||
@Stateless
|
||||
public class FeedEntryStatusService extends GenericDAO<FeedEntryStatus, Long> {
|
||||
|
||||
}
|
||||
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
|
||||
import com.commafeed.frontend.components.auth.LoginPage;
|
||||
import com.commafeed.frontend.components.auth.LogoutPage;
|
||||
import com.commafeed.frontend.pages.home.HomePage;
|
||||
import com.commafeed.frontend.rest.FeedEntriesREST;
|
||||
import com.commafeed.frontend.rest.FeedSubscriptionsREST;
|
||||
import com.commafeed.frontend.utils.exception.DisplayExceptionPage;
|
||||
|
||||
@@ -43,8 +44,11 @@ public class CommaFeedApplication extends AuthenticatedWebApplication {
|
||||
mountPage("login", LoginPage.class);
|
||||
mountPage("logout", LogoutPage.class);
|
||||
mountPage("error", DisplayExceptionPage.class);
|
||||
|
||||
|
||||
mountPage("subscriptions", FeedSubscriptionsREST.class);
|
||||
mountPage(String.format("entries/${%s}/${%s}/${%s}",
|
||||
FeedEntriesREST.PARAM_TYPE, FeedEntriesREST.PARAM_ID,
|
||||
FeedEntriesREST.PARAM_READTYPE), FeedEntriesREST.class);
|
||||
|
||||
setupInjection();
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="vendor/angular/angular.min.js"></script>
|
||||
<script src="vendor/angular/angular-resource.min.js"></script>
|
||||
<script src="vendor/angular/angular-sanitize.min.js"></script>
|
||||
<script src="vendor/angular-ui/angular-ui.min.js"></script>
|
||||
<script src="vendor/angular-ui-bootstrap/ui-bootstrap-tpls-0.2.0.min.js"></script>
|
||||
<script src="js/main.js"></script>
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.commafeed.frontend.rest;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
|
||||
import com.commafeed.backend.dao.FeedEntryService;
|
||||
import com.commafeed.backend.dao.FeedEntryStatusService;
|
||||
import com.commafeed.backend.dao.FeedSubscriptionService;
|
||||
import com.commafeed.frontend.rest.model.Entries;
|
||||
import com.commafeed.frontend.rest.model.Entry;
|
||||
import com.commafeed.frontend.utils.ModelFactory.MF;
|
||||
import com.commafeed.model.FeedEntry;
|
||||
import com.commafeed.model.FeedEntryStatus;
|
||||
import com.commafeed.model.FeedSubscription;
|
||||
import com.google.common.collect.Iterables;
|
||||
|
||||
public class FeedEntriesREST extends JSONPage {
|
||||
|
||||
public static final String PARAM_TYPE = "type";
|
||||
public static final String PARAM_ID = "id";
|
||||
public static final String PARAM_READTYPE = "readtype";
|
||||
|
||||
@Inject
|
||||
FeedEntryService feedEntryService;
|
||||
|
||||
@Inject
|
||||
FeedEntryStatusService feedEntryStatusService;
|
||||
|
||||
@Inject
|
||||
FeedSubscriptionService feedSubscriptionService;
|
||||
|
||||
public FeedEntriesREST(PageParameters pageParameters) {
|
||||
super(pageParameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object getObject(PageParameters parameters) {
|
||||
|
||||
String type = parameters.get(PARAM_TYPE).toString();
|
||||
String id = parameters.get(PARAM_ID).toString();
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
String readType = parameters.get(PARAM_READTYPE).toString();
|
||||
|
||||
Entries entries = new Entries();
|
||||
if ("feed".equals(type)) {
|
||||
FeedSubscription subscription = feedSubscriptionService
|
||||
.findById(Long.valueOf(id));
|
||||
List<FeedEntry> feedEntries = feedEntryService.getUnreadEntries(
|
||||
subscription.getFeed(), getUser());
|
||||
|
||||
entries.setName(subscription.getTitle());
|
||||
for (FeedEntry feedEntry : feedEntries) {
|
||||
|
||||
List<FeedEntryStatus> feedEntryStatus = feedEntryStatusService.findByField(MF.i(MF.p(FeedEntryStatus.class).getEntry()), feedEntry);
|
||||
|
||||
Entry entry = buildEntry(feedEntry);
|
||||
entry.setFeedName(subscription.getTitle());
|
||||
entry.setFeedId(String.valueOf(subscription.getId()));
|
||||
entry.setRead(feedEntryStatus.isEmpty() ? false : Iterables.getFirst(feedEntryStatus, null).isRead());
|
||||
entry.setStarred(feedEntryStatus.isEmpty() ? false : Iterables.getFirst(feedEntryStatus, null).isStarred());
|
||||
entries.getEntries().add(entry);
|
||||
}
|
||||
}
|
||||
|
||||
return entries;
|
||||
}
|
||||
|
||||
private Entry buildEntry(FeedEntry feedEntry) {
|
||||
Entry entry = new Entry();
|
||||
entry.setId(feedEntry.getGuid());
|
||||
entry.setTitle(feedEntry.getTitle());
|
||||
entry.setContent(feedEntry.getContent());
|
||||
entry.setDate(DateFormat.getDateInstance(DateFormat.SHORT, getLocale())
|
||||
.format(feedEntry.getUpdated()));
|
||||
entry.setUrl(feedEntry.getUrl());
|
||||
|
||||
return entry;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,15 +5,13 @@ import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.commons.lang.ObjectUtils;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
|
||||
import com.commafeed.backend.dao.FeedCategoryService;
|
||||
import com.commafeed.backend.dao.FeedEntryService;
|
||||
import com.commafeed.backend.dao.FeedSubscriptionService;
|
||||
import com.commafeed.frontend.CommaFeedSession;
|
||||
import com.commafeed.frontend.pages.JSONPage;
|
||||
import com.commafeed.model.FeedCategory;
|
||||
import com.commafeed.model.FeedSubscription;
|
||||
import com.commafeed.model.User;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
@@ -28,19 +26,23 @@ public class FeedSubscriptionsREST extends JSONPage {
|
||||
@Inject
|
||||
FeedEntryService feedEntryService;
|
||||
|
||||
public FeedSubscriptionsREST(PageParameters pageParameters) {
|
||||
super(pageParameters);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object getObject() {
|
||||
User user = CommaFeedSession.get().getUser();
|
||||
List<FeedCategory> categories = feedCategoryService.findAll(user);
|
||||
protected Object getObject(PageParameters parameters) {
|
||||
List<FeedCategory> categories = feedCategoryService.findAll(getUser());
|
||||
Category root = new Category();
|
||||
addChildren(categories, root);
|
||||
for (FeedSubscription subscription : feedSubscriptionService
|
||||
.findWithoutCategories(user)) {
|
||||
.findWithoutCategories(getUser())) {
|
||||
Subscription sub = new Subscription();
|
||||
sub.setId(subscription.getId());
|
||||
sub.setName(subscription.getTitle());
|
||||
int size = feedEntryService.getUnreadEntries(
|
||||
subscription.getFeed(), user).size();
|
||||
subscription.getFeed(), getUser()).size();
|
||||
sub.setUnread(size);
|
||||
root.getFeeds().add(sub);
|
||||
}
|
||||
@@ -62,8 +64,7 @@ public class FeedSubscriptionsREST extends JSONPage {
|
||||
sub.setId(subscription.getId());
|
||||
sub.setName(subscription.getTitle());
|
||||
int size = feedEntryService.getUnreadEntries(
|
||||
subscription.getFeed(),
|
||||
CommaFeedSession.get().getUser()).size();
|
||||
subscription.getFeed(), getUser()).size();
|
||||
sub.setUnread(size);
|
||||
child.getFeeds().add(sub);
|
||||
}
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
package com.commafeed.frontend.pages;
|
||||
package com.commafeed.frontend.rest;
|
||||
|
||||
import org.apache.wicket.markup.html.WebPage;
|
||||
import org.apache.wicket.request.handler.TextRequestHandler;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
|
||||
import com.commafeed.frontend.CommaFeedSession;
|
||||
import com.commafeed.model.User;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class JSONPage extends WebPage {
|
||||
|
||||
public JSONPage() {
|
||||
this(new PageParameters());
|
||||
}
|
||||
|
||||
public JSONPage(PageParameters pageParameters) {
|
||||
getRequestCycle().scheduleRequestHandlerAfterCurrent(
|
||||
new TextRequestHandler("application/json", "UTF-8", new Gson()
|
||||
.toJson(getObject())));
|
||||
.toJson(getObject(pageParameters))));
|
||||
}
|
||||
|
||||
protected abstract Object getObject();
|
||||
protected abstract Object getObject(PageParameters parameters);
|
||||
|
||||
protected User getUser() {
|
||||
return CommaFeedSession.get().getUser();
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,11 @@ package com.commafeed.frontend.rest.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
public class Entries {
|
||||
private String name;
|
||||
private List<Entry> entries;
|
||||
private List<Entry> entries = Lists.newArrayList();
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
|
||||
Reference in New Issue
Block a user