save: function(url, obj, errors, not_show_error_toast) {
var defer = $.Deferred();
not_show_error_toast = typeof not_show_error_toast !== 'undefined' ? not_show_error_toast : false;
if (angular.isDefined(obj.id)) {
loaderShow(); // NOTE: let create manage the loader start if it needs to
$http.put(url + obj.id + '/', obj).
then(function onSuccess(response) {
loaderHide();
// HACK: because .then is used instead of .success, you probably want the response.data, please review this
angular.extend(obj, response.data);
defer.resolve(obj);
}, function onError(response) {
loaderHide();
handleErrors(response, status, errors, not_show_error_toast);
defer.reject(response);
});
} else {
// If create is a deferral, it should be safe to return it directly
return this.create(url, obj, errors, not_show_error_toast);
}
return defer.promise();
},