/** * Created by robin on 10/24/15. */ (function () { 'use strict'; angular.module('luticate2Utils') .factory('luRequest', ['$q', '$http', 'luPromise', function ($q, $http, luPromise) { var luRequest = {}; luRequest.get = function(url, dataGet, promise) { return luRequest.request(url, 'GET', dataGet, null, promise); }; luRequest.post = function(url, dataGet, dataPost, promise) { return luRequest.request(url, 'POST', dataGet, dataPost, promise); }; luRequest.put = function(url, dataGet, dataPost, promise) { return luRequest.request(url, 'PUT', dataGet, dataPost, promise); }; luRequest.delete = function(url, dataGet, dataPost, promise) { return luRequest.request(url, 'DELETE', dataGet, dataPost, promise); }; function reject(deferred, data, status, promise) { var obj = { Data: data, Status: status }; deferred.reject(obj); if (promise != null) { luPromise.reject(promise, obj); } } function resolve(deferred, data, promise) { deferred.resolve(data); if (promise != null) { luPromise.resolve(promise, data); } } luRequest.request = function(url, method, dataGet, dataPost, promise) { if (promise != null) { luPromise.initPromise(promise); } var deferred = $q.defer(); url = url.replace(/\/+$/, ''); var params = { url: url, method: method, params: dataGet, data: dataPost == null ? null : $.param(dataPost), headers: { 'Content-Type': "application/json" } }; $http(params) .success(function (result, status) { if (result == null || result.Message != null) { var message = result == null ? "Failed to parse response" : result.Message; reject(deferred, message, status, promise); } else { resolve(deferred, result.Data, promise); } }) .error(function (result, status) { if (result == null || result.Message != null) { var message = result == null ? "Failed to parse response" : result.Message; reject(deferred, message, status, promise); } else { reject(deferred, result, status, promise); } }); return deferred.promise; }; return luRequest; }]); })();