From 03a3e1ceb362a119b096aed2c1cad914c55037f1 Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 9 Feb 2016 15:20:59 +0000 Subject: [PATCH] Added missing files --- .../public/coffee/services/queued-http.coffee | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 services/web/public/coffee/services/queued-http.coffee diff --git a/services/web/public/coffee/services/queued-http.coffee b/services/web/public/coffee/services/queued-http.coffee new file mode 100644 index 0000000000..c4c6862fae --- /dev/null +++ b/services/web/public/coffee/services/queued-http.coffee @@ -0,0 +1,49 @@ +define [ + "base" +], (App) -> + App.factory "queuedHttp", ($http, $q) -> + pendingRequests = [] + inflight = false + + processPendingRequests = () -> + return if inflight + doRequest = pendingRequests.shift() + if doRequest? + inflight = true + doRequest() + .success () -> + inflight = false + processPendingRequests() + .error () -> + inflight = false + processPendingRequests() + + queuedHttp = (args...) -> + deferred = $q.defer() + promise = deferred.promise + + # Adhere to the $http promise conventions + promise.success = (callback) -> + promise.then(callback) + return promise + + promise.error = (callback) -> + promise.catch(callback) + return promise + + doRequest = () -> + $http(args...) + .success (successArgs...) -> + deferred.resolve(successArgs...) + .error (errorArgs...) -> + deferred.reject(errorArgs...) + + pendingRequests.push doRequest + processPendingRequests() + + return promise + + queuedHttp.post = (url, data) -> + queuedHttp({method: "POST", url: url, data: data}) + + return queuedHttp \ No newline at end of file