From f3091d84e14537a42334e66ea6588cf2b83f9ab6 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Thu, 11 Sep 2014 20:26:04 +0200 Subject: various work on creating feeds, folders and showing folders --- js/service/FolderResource.js | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) (limited to 'js/service/FolderResource.js') diff --git a/js/service/FolderResource.js b/js/service/FolderResource.js index 6453f33b8..75fdff555 100644 --- a/js/service/FolderResource.js +++ b/js/service/FolderResource.js @@ -7,12 +7,13 @@ * @author Bernhard Posselt * @copyright Bernhard Posselt 2014 */ -app.factory('FolderResource', function (Resource, $http, BASE_URL) { +app.factory('FolderResource', function (Resource, $http, BASE_URL, $q) { 'use strict'; - var FolderResource = function ($http, BASE_URL) { + var FolderResource = function ($http, BASE_URL, $q) { Resource.call(this, $http, BASE_URL, 'name'); this.deleted = null; + this.$q = $q; }; FolderResource.prototype = Object.create(Resource.prototype); @@ -46,15 +47,13 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL) { toFolderName = toFolderName.toUpperCase(); var folder = this.get(folderName); - // still do http request if folder exists but dont change the name - // to have one point of failure - if (!this.get(toFolderName)) { - folder.name = toFolderName; + folder.name = toFolderName; - delete this.hashMap[folderName]; - this.hashMap[toFolderName] = folder; - } + delete this.hashMap[folderName]; + this.hashMap[toFolderName] = folder; + // FIXME: check for errors + // FIXME: transfer feeds return this.http({ url: this.BASE_URL + '/folders/' + folder.id + '/rename', method: 'POST', @@ -68,27 +67,32 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL) { FolderResource.prototype.create = function (folderName) { folderName = folderName.toUpperCase(); - // still do http request if folder exists but dont change the name - // to have one point of failure - if (!this.get(folderName)) { - var folder = { - name: folderName - }; + var folder = { + name: folderName + }; - this.add(folder); - } + this.add(folder); - return this.http({ + var deferred = this.$q.defer(); + + this.http({ url: this.BASE_URL + '/folders', method: 'POST', data: { folderName: folderName } + }).success(function (data) { + deferred.resolve(data); + }).error(function (data) { + folder.error = data.message; }); + + return deferred.promise; }; FolderResource.prototype.undoDelete = function () { + // TODO: check for errors if (this.deleted) { this.add(this.deleted); @@ -99,5 +103,5 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL) { }; - return new FolderResource($http, BASE_URL); + return new FolderResource($http, BASE_URL, $q); }); \ No newline at end of file -- cgit v1.2.3