You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

lu-data-initializer.js 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * Created by robin on 12/11/16.
  3. */
  4. (function () {
  5. 'use strict';
  6. angular.module('luticate2Utils')
  7. .factory('luDataInitializer', ['$q',
  8. function ($q) {
  9. var luDataInitializer = {};
  10. luDataInitializer.create = function (initData) {
  11. var initializer = {};
  12. initializer.initData = initData;
  13. initializer.initListData = function(list, userData)
  14. {
  15. var d = [];
  16. for (var i = 0; i < list.length; ++i) {
  17. d.push(initializer.initData(list[i], userData));
  18. }
  19. return d;
  20. };
  21. initializer.initPaginatedData = function(data, userData)
  22. {
  23. var d = {
  24. count: data.count,
  25. data: initializer.initListData(data.data, userData)
  26. };
  27. return d;
  28. };
  29. initializer.thenInitData = function(promise, userData)
  30. {
  31. var deferred = $q.defer();
  32. promise.then(function(data)
  33. {
  34. deferred.resolve(initializer.initData(data, userData));
  35. }, deferred.reject);
  36. return deferred.promise;
  37. };
  38. initializer.thenInitListData = function(promise, userData)
  39. {
  40. var deferred = $q.defer();
  41. promise.then(function(data)
  42. {
  43. deferred.resolve(initializer.initListData(data, userData));
  44. }, deferred.reject);
  45. return deferred.promise;
  46. };
  47. initializer.thenInitPaginatedData = function(promise, userData)
  48. {
  49. var deferred = $q.defer();
  50. promise.then(function(data)
  51. {
  52. deferred.resolve(initializer.initPaginatedData(data, userData));
  53. }, deferred.reject);
  54. return deferred.promise;
  55. };
  56. return initializer;
  57. };
  58. return luDataInitializer;
  59. }]);
  60. })();