summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-22 18:24:31 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-22 18:24:31 +0200
commitdf18314b32b05f10720936831ed43573e1792ae6 (patch)
treea2b8e28e165727e7a88d7ac3529f64d5f6b938e2 /js
parent366c1b15545b4da69bc8e236ba4350c28ad24e77 (diff)
added import from google reader, fix #80
Diffstat (limited to 'js')
-rw-r--r--js/app/services/businesslayer/feedbusinesslayer.coffee8
-rw-r--r--js/app/services/persistence.coffee3
-rw-r--r--js/public/app.js16
-rw-r--r--js/tests/services/businesslayer/feedbusinesslayerSpec.coffee19
-rw-r--r--js/tests/services/persistenceSpec.coffee3
5 files changed, 40 insertions, 9 deletions
diff --git a/js/app/services/businesslayer/feedbusinesslayer.coffee b/js/app/services/businesslayer/feedbusinesslayer.coffee
index 93f89ad31..9a23bec43 100644
--- a/js/app/services/businesslayer/feedbusinesslayer.coffee
+++ b/js/app/services/businesslayer/feedbusinesslayer.coffee
@@ -188,8 +188,12 @@ FeedModel, NewLoading, _ExistsError, Utils, $rootScope, UndoQueue) ->
faviconLink: 'url('+@_utils.imagePath('core', 'loading.gif')+')'
@_feedModel.add(feed)
-
- @_persistence.importGoogleReader(json)
+
+ onSuccess = (response) =>
+ id = response.data.feeds[0].id
+ @load(id)
+
+ @_persistence.importGoogleReader(json, onSuccess)
return new FeedBusinessLayer(ShowAll, FeedModel, Persistence, ActiveFeed,
diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee
index a5a6bc092..188f5a7c7 100644
--- a/js/app/services/persistence.coffee
+++ b/js/app/services/persistence.coffee
@@ -253,10 +253,11 @@ $rootScope) ->
@_request.post 'news_feeds_update', params
- importGoogleReader: (json) ->
+ importGoogleReader: (json, onSuccess) ->
params =
data:
json: json
+ onSuccess: onSuccess
@_request.post 'news_feeds_import_googlereader', params
diff --git a/js/public/app.js b/js/public/app.js
index ca7124ad7..f0c783ba1 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -961,7 +961,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
};
FeedBusinessLayer.prototype.importGoogleReader = function(json) {
- var feed, url;
+ var feed, onSuccess, url,
+ _this = this;
url = 'http://owncloud/googlereader';
if (angular.isUndefined(this._feedModel.getByUrl(url))) {
@@ -974,7 +975,13 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
};
this._feedModel.add(feed);
}
- return this._persistence.importGoogleReader(json);
+ onSuccess = function(response) {
+ var id;
+
+ id = response.data.feeds[0].id;
+ return _this.load(id);
+ };
+ return this._persistence.importGoogleReader(json, onSuccess);
};
return FeedBusinessLayer;
@@ -2617,13 +2624,14 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return this._request.post('news_feeds_update', params);
};
- Persistence.prototype.importGoogleReader = function(json) {
+ Persistence.prototype.importGoogleReader = function(json, onSuccess) {
var params;
params = {
data: {
json: json
- }
+ },
+ onSuccess: onSuccess
};
return this._request.post('news_feeds_import_googlereader', params);
};
diff --git a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee
index 4f7e8f8b3..833af6da8 100644
--- a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee
+++ b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee
@@ -365,8 +365,25 @@ describe 'FeedBusinessLayer', ->
it 'should create an import google reader request', =>
+ returned =
+ data:
+ feeds: [
+ {id: 3, url: 'hi'}
+ ]
+ @persistence.getItems = jasmine.createSpy('importGoogleReader')
@persistence.importGoogleReader = jasmine.createSpy('importGoogleReader')
+ @persistence.importGoogleReader.andCallFake (data, onSuccess) =>
+ @FeedModel.handle(returned.data.feeds)
+ onSuccess(returned)
+
json = {"test": "hi"}
@FeedBusinessLayer.importGoogleReader(json)
- expect(@persistence.importGoogleReader).toHaveBeenCalledWith(json) \ No newline at end of file
+ expect(@persistence.importGoogleReader).toHaveBeenCalledWith(json,
+ jasmine.any(Function))
+ expect(@persistence.getItems).toHaveBeenCalledWith(
+ @FeedType.Feed, returned.data.feeds[0].id, 0
+ )
+ expect(@ActiveFeed.getId()).toBe(returned.data.feeds[0].id)
+ expect(@ActiveFeed.getType()).toBe(@FeedType.Feed)
+
diff --git a/js/tests/services/persistenceSpec.coffee b/js/tests/services/persistenceSpec.coffee
index 70bcf824f..90bd82783 100644
--- a/js/tests/services/persistenceSpec.coffee
+++ b/js/tests/services/persistenceSpec.coffee
@@ -252,8 +252,9 @@ describe 'Persistence', ->
params =
data:
json: {"some": "json"}
+ onSuccess: ->
- @Persistence.importGoogleReader(params.data.json)
+ @Persistence.importGoogleReader(params.data.json, params.onSuccess)
expect(@req.post).toHaveBeenCalledWith('news_feeds_import_googlereader',