From 94251d2be770668664c4e2cfbf1746d5ac1562a0 Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 16 Apr 2013 12:36:36 +0200 Subject: [PATCH] ability to queue a feed for refresh --- .../backend/feeds/FeedRefreshTaskGiver.java | 11 +++++-- src/main/webapp/js/services.js | 33 ++++++++++--------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java index 87dcf9d9..eba81e39 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshTaskGiver.java @@ -14,7 +14,7 @@ import com.commafeed.backend.StartupBean; import com.commafeed.backend.dao.FeedDAO; import com.commafeed.backend.model.Feed; import com.commafeed.backend.services.ApplicationSettingsService; -import com.google.common.collect.Lists; +import com.google.common.collect.Queues; @Singleton public class FeedRefreshTaskGiver { @@ -28,7 +28,14 @@ public class FeedRefreshTaskGiver { @Inject StartupBean startupBean; - private Queue queue = Lists.newLinkedList(); + private Queue queue = Queues.newConcurrentLinkedQueue(); + + @Lock(LockType.WRITE) + public void add(Feed feed) { + queue.add(feed); + feed.setLastUpdated(Calendar.getInstance().getTime()); + feedDAO.update(feed); + } @Lock(LockType.WRITE) public Feed take() { diff --git a/src/main/webapp/js/services.js b/src/main/webapp/js/services.js index 6b3d5729..f7ac4d0e 100644 --- a/src/main/webapp/js/services.js +++ b/src/main/webapp/js/services.js @@ -42,63 +42,66 @@ module.factory('SubscriptionService', function($resource, $http) { fetch : { method : 'GET', params : { - _method : 'feed/fetch' - } - }, - get : { - method : 'GET', - params : { - _method : 'get' + _type : 'feed', + _method : 'fetch' } }, subscribe : { method : 'POST', params : { - _method : 'feed/subscribe' + _type : 'feed', + _method : 'subscribe' } }, unsubscribe : { method : 'GET', params : { - _method : 'feed/unsubscribe' + _type : 'feed', + _method : 'unsubscribe' } }, rename : { method : 'GET', params : { - _method : 'feed/rename' + _type : 'feed', + _method : 'rename' } }, collapse : { method : 'GET', params : { - _method : 'category/collapse' + _type : 'category', + _method : 'collapse' } }, addCategory : { method : 'GET', params : { - _method : 'category/add' + _type : 'category', + _method : 'add' } }, deleteCategory : { method : 'GET', params : { - _method : 'category/delete' + _type : 'category', + _method : 'delete' } }, renameCategory : { method : 'GET', params : { - _method : 'category/rename' + _type : 'category', + _method : 'rename' } } }; var s = {}; + s.get = $resource('rest/subscriptions/get').get; s.subscriptions = {}; s.flatCategories = {}; - var res = $resource('rest/subscriptions/:_method', {}, actions); + var res = $resource('rest/subscriptions/:_type/:_method', {}, actions); s.init = function(callback) { res.get(function(data) { s.subscriptions = data;