diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-22 18:24:31 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-22 18:24:31 +0200 |
commit | df18314b32b05f10720936831ed43573e1792ae6 (patch) | |
tree | a2b8e28e165727e7a88d7ac3529f64d5f6b938e2 /js | |
parent | 366c1b15545b4da69bc8e236ba4350c28ad24e77 (diff) |
added import from google reader, fix #80
Diffstat (limited to 'js')
-rw-r--r-- | js/app/services/businesslayer/feedbusinesslayer.coffee | 8 | ||||
-rw-r--r-- | js/app/services/persistence.coffee | 3 | ||||
-rw-r--r-- | js/public/app.js | 16 | ||||
-rw-r--r-- | js/tests/services/businesslayer/feedbusinesslayerSpec.coffee | 19 | ||||
-rw-r--r-- | js/tests/services/persistenceSpec.coffee | 3 |
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', |