diff --git a/isso/js/app/api.js b/isso/js/app/api.js index e4f0118..24de165 100644 --- a/isso/js/app/api.js +++ b/isso/js/app/api.js @@ -47,7 +47,11 @@ define(["app/lib/promise"], function(Q) { document.cookie = cookie; } - resolve({status: xhr.status, body: xhr.responseText}); + if (xhr.status >= 500) { + reject(xhr.body); + } else { + resolve({status: xhr.status, body: xhr.responseText}); + } } try { @@ -88,7 +92,13 @@ define(["app/lib/promise"], function(Q) { var modify = function(id, data) { var deferred = Q.defer(); curl("PUT", endpoint + "/id/" + id, JSON.stringify(data), function (rv) { - deferred.resolve(JSON.parse(rv.body)); + if (rv.status === 403) { + deferred.reject("Not authorized to modify this comment!"); + } else if (rv.status === 200) { + deferred.resolve(JSON.parse(rv.body)); + } else { + deferred.reject(rv.body); + } }); return deferred.promise; }; diff --git a/isso/js/app/lib/promise.js b/isso/js/app/lib/promise.js index a540c56..4f23be9 100644 --- a/isso/js/app/lib/promise.js +++ b/isso/js/app/lib/promise.js @@ -2,6 +2,8 @@ define(function() { "use strict"; + var stderr = function(text) { console.log(text); }; + var Promise = function() { this.success = []; this.errors = []; @@ -12,7 +14,7 @@ define(function() { if (onError) { this.errors.push(onError); } else { - this.errors.push(console.log); + this.errors.push(stderr); } };