aboutsummaryrefslogtreecommitdiffstats
path: root/src/service/xhr.bulk.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/xhr.bulk.js')
-rw-r--r--src/service/xhr.bulk.js139
1 files changed, 71 insertions, 68 deletions
diff --git a/src/service/xhr.bulk.js b/src/service/xhr.bulk.js
index bf5a1d95..b75f4046 100644
--- a/src/service/xhr.bulk.js
+++ b/src/service/xhr.bulk.js
@@ -11,76 +11,79 @@
*
* @example
*/
-angularServiceInject('$xhr.bulk', function($rootScope, $xhr, $error, $log){
- var requests = [];
- function bulkXHR(method, url, post, success, error) {
- if (isFunction(post)) {
- error = success;
- success = post;
- post = null;
- }
- var currentQueue;
- forEach(bulkXHR.urls, function(queue){
- if (isFunction(queue.match) ? queue.match(url) : queue.match.exec(url)) {
- currentQueue = queue;
+function $XhrBulkProvider() {
+ this.$get = ['$rootScope', '$xhr', '$xhr.error', '$log',
+ function( $rootScope, $xhr, $error, $log) {
+ var requests = [];
+ function bulkXHR(method, url, post, success, error) {
+ if (isFunction(post)) {
+ error = success;
+ success = post;
+ post = null;
+ }
+ var currentQueue;
+ forEach(bulkXHR.urls, function(queue){
+ if (isFunction(queue.match) ? queue.match(url) : queue.match.exec(url)) {
+ currentQueue = queue;
+ }
+ });
+ if (currentQueue) {
+ if (!currentQueue.requests) currentQueue.requests = [];
+ var request = {
+ method: method,
+ url: url,
+ data: post,
+ success: success};
+ if (error) request.error = error;
+ currentQueue.requests.push(request);
+ } else {
+ $xhr(method, url, post, success, error);
}
- });
- if (currentQueue) {
- if (!currentQueue.requests) currentQueue.requests = [];
- var request = {
- method: method,
- url: url,
- data: post,
- success: success};
- if (error) request.error = error;
- currentQueue.requests.push(request);
- } else {
- $xhr(method, url, post, success, error);
}
- }
- bulkXHR.urls = {};
- bulkXHR.flush = function(success, errorback) {
- assertArgFn(success = success || noop, 0);
- assertArgFn(errorback = errorback || noop, 1);
- forEach(bulkXHR.urls, function(queue, url) {
- var currentRequests = queue.requests;
- if (currentRequests && currentRequests.length) {
- queue.requests = [];
- queue.callbacks = [];
- $xhr('POST', url, {requests: currentRequests},
- function(code, response) {
- forEach(response, function(response, i) {
- try {
- if (response.status == 200) {
- (currentRequests[i].success || noop)(response.status, response.response);
- } else if (isFunction(currentRequests[i].error)) {
- currentRequests[i].error(response.status, response.response);
- } else {
- $error(currentRequests[i], response);
+ bulkXHR.urls = {};
+ bulkXHR.flush = function(success, errorback) {
+ assertArgFn(success = success || noop, 0);
+ assertArgFn(errorback = errorback || noop, 1);
+ forEach(bulkXHR.urls, function(queue, url) {
+ var currentRequests = queue.requests;
+ if (currentRequests && currentRequests.length) {
+ queue.requests = [];
+ queue.callbacks = [];
+ $xhr('POST', url, {requests: currentRequests},
+ function(code, response) {
+ forEach(response, function(response, i) {
+ try {
+ if (response.status == 200) {
+ (currentRequests[i].success || noop)(response.status, response.response);
+ } else if (isFunction(currentRequests[i].error)) {
+ currentRequests[i].error(response.status, response.response);
+ } else {
+ $error(currentRequests[i], response);
+ }
+ } catch(e) {
+ $log.error(e);
}
- } catch(e) {
- $log.error(e);
- }
- });
- success();
- },
- function(code, response) {
- forEach(currentRequests, function(request, i) {
- try {
- if (isFunction(request.error)) {
- request.error(code, response);
- } else {
- $error(request, response);
+ });
+ success();
+ },
+ function(code, response) {
+ forEach(currentRequests, function(request, i) {
+ try {
+ if (isFunction(request.error)) {
+ request.error(code, response);
+ } else {
+ $error(request, response);
+ }
+ } catch(e) {
+ $log.error(e);
}
- } catch(e) {
- $log.error(e);
- }
+ });
+ noop();
});
- noop();
- });
- }
- });
- };
- $rootScope.$watch(function() { bulkXHR.flush(); });
- return bulkXHR;
-}, ['$rootScope', '$xhr', '$xhr.error', '$log']);
+ }
+ });
+ };
+ $rootScope.$watch(function() { bulkXHR.flush(); });
+ return bulkXHR;
+ }];
+}