123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /**
- * Created by robin on 12/11/16.
- */
-
- (function () {
- 'use strict';
- angular.module('luticate2Utils')
- .factory('luWebApiCrudBusiness', ['luBusiness', '$q', function (luBusiness, $q) {
-
- var luWebApiCrudBusiness = {};
-
- luWebApiCrudBusiness.create = function (dataAccess) {
- var Business = luBusiness.create();
-
- Business.dataAccess = dataAccess;
-
- Business.defaultDbo = {
- id: null,
- toString: function()
- {
- return this.id;
- }
- };
-
- Business.extendDeep = function extendDeep(dst) {
- angular.forEach(arguments, function(obj) {
- if (obj !== dst) {
- angular.forEach(obj, function(value, key) {
- if (dst[key] && dst[key].constructor && dst[key].constructor === Object) {
- extendDeep(dst[key], value);
- } else {
- dst[key] = value;
- }
- });
- }
- });
- return dst;
- };
-
- Business.initDbo = function(dbo)
- {
- if (dbo == null) {
- return null;
- }
- return Business.extendDeep({}, Business.defaultDbo, dbo);
- };
-
- Business.initListDbo = function(list)
- {
- var d = [];
- for (var i = 0; i < list.length; ++i) {
- d.push(Business.initDbo(list[i]));
- }
- return d;
- };
-
- Business.initPaginatedDbo = function(data)
- {
- var d = {
- count: data.count,
- data: Business.initListDbo(data.data)
- };
- return d;
- };
-
- Business.thenInitDbo = function(promise)
- {
- var deferred = $q.defer();
- promise.then(function(data)
- {
- deferred.resolve(Business.initDbo(data));
- }, deferred.reject);
- return deferred.promise;
- };
-
- Business.thenInitPaginatedDbo = function(promise)
- {
- var deferred = $q.defer();
- promise.then(function(data)
- {
- deferred.resolve(Business.initPaginatedDbo(data));
- }, deferred.reject);
- return deferred.promise;
- };
-
- Business.getSingleById = function (id, luBusyGroups) {
- return Business.thenInitDbo(Business.dataAccess.getSingleById(id, luBusyGroups));
- };
-
- Business.getMultiple = function (orderBy, filter, page, perPage, luBusyGroups) {
- return Business.thenInitPaginatedDbo(Business.dataAccess.getMultiple(orderBy, filter, page, perPage, luBusyGroups));
- };
-
- Business.addDbo = function(data, luBusyGroups) {
- return Business.thenInitDbo(Business.dataAccess.addDbo(data, luBusyGroups));
- };
-
- Business.editSingleByIdDbo = function(id, data, luBusyGroups) {
- return Business.thenInitDbo(Business.dataAccess.editSingleByIdDbo(id, data, luBusyGroups));
- };
-
- Business.deleteDbo = function(id, luBusyGroups) {
- return Business.thenInitDbo(Business.dataAccess.deleteDbo(id, luBusyGroups));
- };
-
- return Business;
- };
-
- return luWebApiCrudBusiness;
-
- }]);
- })();
|