Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

lu-request.js 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /**
  2. * Created by robin on 10/24/15.
  3. */
  4. (function () {
  5. 'use strict';
  6. angular.module('luticate2Utils')
  7. .factory('luRequest', ['$q', '$http', 'luBusyBusiness', function ($q, $http, luBusyBusiness) {
  8. var luRequest = {};
  9. luRequest.get = function(url, dataGet, luBusyGroups)
  10. {
  11. return luRequest.request(url, 'GET', dataGet, null, luBusyGroups);
  12. };
  13. luRequest.post = function(url, dataGet, dataPost, luBusyGroups)
  14. {
  15. return luRequest.request(url, 'POST', dataGet, dataPost, luBusyGroups);
  16. };
  17. luRequest.put = function(url, dataGet, dataPost, luBusyGroups)
  18. {
  19. return luRequest.request(url, 'PUT', dataGet, dataPost, luBusyGroups);
  20. };
  21. luRequest.delete = function(url, dataGet, dataPost, luBusyGroups)
  22. {
  23. return luRequest.request(url, 'DELETE', dataGet, dataPost, luBusyGroups);
  24. };
  25. function reject(deferred, data, status, luBusyGroups)
  26. {
  27. var error = {
  28. data: data,
  29. status: status
  30. };
  31. deferred.reject(error);
  32. if (luBusyGroups != null) {
  33. luBusyBusiness.reject(luBusyGroups, error);
  34. }
  35. }
  36. function resolve(deferred, data, luBusyGroups)
  37. {
  38. deferred.resolve(data);
  39. if (luBusyGroups != null) {
  40. luBusyBusiness.resolve(luBusyGroups);
  41. }
  42. }
  43. luRequest.request = function(url, method, dataGet, dataPost, luBusyGroups)
  44. {
  45. if (luBusyGroups != null) {
  46. luBusyBusiness.initGroups(luBusyGroups);
  47. }
  48. var deferred = $q.defer();
  49. url = url.replace(/\/+$/, '');
  50. var params = {
  51. url: url,
  52. method: method,
  53. params: dataGet,
  54. data: JSON.stringify(dataPost),
  55. headers: {
  56. 'Content-Type': "application/json"
  57. }
  58. };
  59. $http(params)
  60. .then(function (response) {
  61. var result = response.data;
  62. var status = response.status;
  63. if (result == null || typeof result !== 'object') {
  64. reject(deferred, {message: "Failed to parse response", code: status}, status, luBusyGroups);
  65. }
  66. else if (result.message != null) {
  67. reject(deferred, result, status, luBusyGroups);
  68. }
  69. else {
  70. resolve(deferred, result.data, luBusyGroups);
  71. }
  72. }, function (response) {
  73. var result = response.data;
  74. var status = response.status;
  75. if (result == null || typeof result !== 'object') {
  76. reject(deferred, {message: "Failed to parse response", code: status}, status, luBusyGroups);
  77. }
  78. else {
  79. reject(deferred, result, status, luBusyGroups);
  80. }
  81. });
  82. return deferred.promise;
  83. };
  84. return luRequest;
  85. }]);
  86. })();