summaryrefslogtreecommitdiffstats
path: root/js/app/services
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-11 19:34:24 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-11 19:34:24 +0200
commit9963975875836f768cc64f3a9dc00a1f33d9c07f (patch)
tree919ca3f3303ca159a56330caf87f54e5909b7da1 /js/app/services
parent959b8691fad5b109e17a2f358613813f209e1313 (diff)
added more code for adding feeds and folders
Diffstat (limited to 'js/app/services')
-rw-r--r--js/app/services/bl/feedbl.coffee36
1 files changed, 34 insertions, 2 deletions
diff --git a/js/app/services/bl/feedbl.coffee b/js/app/services/bl/feedbl.coffee
index b0928cccb..68b288297 100644
--- a/js/app/services/bl/feedbl.coffee
+++ b/js/app/services/bl/feedbl.coffee
@@ -23,9 +23,9 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
angular.module('News').factory 'FeedBl',
['_Bl', 'ShowAll', 'Persistence', 'ActiveFeed', 'FeedType', 'ItemModel',
-'FeedModel', 'NewLoading',
+'FeedModel', 'NewLoading', '_ExistsError',
(_Bl, ShowAll, Persistence, ActiveFeed, FeedType, ItemModel, FeedModel,
-NewLoading) ->
+NewLoading, _ExistsError) ->
class FeedBl extends _Bl
@@ -125,6 +125,38 @@ NewLoading) ->
return feed.link
+ create: (url, parentId=0, onSuccess=null, onFailure=null) ->
+ onSuccess or= ->
+ onFailure or= ->
+
+ if angular.isUndefined(url) or url.trim() == ''
+ throw new Error()
+
+ url = url.trim()
+ urlHash = hex_md5(url)
+
+ if @_feedModel.getByUrlHash(urlHash)
+ throw new _ExistsError()
+
+ feed =
+ title: url.replace(
+ /^(?:https?:\/\/)?(?:www\.)?([a-z0-9_\-\.]+)(?:\/.*)?$/gi,
+ '$1')
+ url: url
+ urlHash: urlHash
+
+ @_feedModel.add(feed)
+
+ success = (response) =>
+ if response.status == 'error'
+ feed.error = response.msg
+ onFailure()
+ else
+ onSuccess()
+
+ @_persistence.createFeed url, parentId, success
+
+
return new FeedBl(ShowAll, FeedModel, Persistence, ActiveFeed, FeedType,
ItemModel, NewLoading)