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