/** * angular-rest-service * @version v0.0.6 - 2014-09-22 * @link https://github.com/aronvaughan/angular-rest-service * @author <> * @license MIT License, http://www.opensource.org/licenses/MIT */ "use strict";var DateUtils=function(){this.parseISO8601=function(a){var b=a.split("T"),c=b[0].split("-"),d=b[1].split("Z"),e=d[0].split(":"),f=e[2].split("."),g=Number(e[0]),h=new Date;return h.setUTCFullYear(Number(c[0])),h.setUTCMonth(Number(c[1])-1),h.setUTCDate(Number(c[2])),h.setUTCHours(Number(g)),h.setUTCMinutes(Number(e[1])),h.setUTCSeconds(Number(f[0])),f[1]&&h.setUTCMilliseconds(Number(f[1])),h}},RequireUtils=function(a,b){if(this.logger=a,this.servicename=b,void 0===this.servicename)throw"RequireUtils - servicename not defined!!!!";if(void 0===this.logger)throw"RequireUtils - logger is undefined!!!";this.checkDependencies=function(a,b){for(var c=0;c0){if(void 0===b[a[c]])throw this.logger.error("RequireUtils requirement: "+a[c]+" was not found in dependencies: ",b),alert(JSON.stringify(a[c])),"RequireUtils requirement: "+a[c]+" was not found in dependencies: "+b.toJSON;this.logger.debug(this.servicename+", found requirement: ",a[c])}this.logger.debug(this.servicename+", dependencies resolved")}},RequirementsBase={requirements:void 0,dependencies:void 0,baseMergeRequirements:function(a,b){this.requirements=void 0!==b&&b.length>0?_.union(a,b):a},baseSetDependencies:function(a){this.dependencies=a;for(var b in a)this[b]=a[b]}},FactoryBase=_.extend({},RequirementsBase,{name:"FACTORY",service:void 0,baseRequirements:["avLog","serviceName","mockDataImpl","realDataImpl","serviceImpl"],mockMode:!1,baseInitialize:function(a,b){this.logger=a.avLog.getLogger(a.serviceName),this.dependencyUtil=new RequireUtils(this.logger,a.serviceName),this.baseSetDependencies(a),this.baseMergeRequirements(this.baseRequirements,b),this.dependencyUtil.checkDependencies(this.requirements,this.dependencies)},create:function(){if(this.logger.debug("FACTORY initializing "+this.serviceName),void 0===this.service){var a;this.mockMode?(this.logger.debug("FACTORY "+this.serviceName+" in mock mode"),a=this.mockDataImpl,a.initialize(this.dependencies)):(this.logger.debug("FACTORY "+this.serviceName+" in real mode"),a=this.realDataImpl,a.initialize(this.dependencies)),this.service=this.serviceImpl,this.dataImpl=a,this.dependencies.serviceRemote=a,this.service.initialize(this.dependencies)}return this.service}}),ServiceBase=_.extend({},RequirementsBase,{name:"SERVICE",serviceName:void 0,logger:void 0,eventChannel:void 0,$rootScope:void 0,serviceRemote:void 0,$resource:void 0,self:void 0,baseRequirements:["avLog","serviceName","eventChannel","$rootScope","serviceRemote","$resource"],customInitialize:!1,baseInitialize:function(a,b){this.logger=a.avLog.getLogger(a.serviceName),this.dependencyUtil=new RequireUtils(this.logger,a.serviceName),this.baseSetDependencies(a),this.baseMergeRequirements(this.baseRequirements,b),this.dependencyUtil.checkDependencies(this.requirements,this.dependencies),this.self=this,this.customInitialize&&(this.logger.debug("running custom initialize"),this.customInitialize(a,b))},getAll:function(a,b,c){return this.logger.debug(this.serviceName+" SERVICE, get all from remote impl",a),this.collection=this.serviceRemote.getAll(a,b,c),this.logger.debug(this.serviceName+" SERVICE, get all",this.collection),this.collection},get:function(a,b,c){return this.logger.debug(this.serviceName+" SERVICE, get from remote impl ",a),this.instance=this.serviceRemote.get(a,b,c),this.instance},save:function(a,b,c,d){this.logger.debug(this.serviceName+" SERVICE, save ",a),this.logger.debug(this.serviceName+" SERVICE, save params ",b);var e=this.serviceRemote.save(a,b,c,d);return e},"delete":function(a,b,c,d){this.logger.debug(this.serviceName+" SERVICE, delete ",[a,b]),this.serviceRemote.delete(a,b,c,d)}}),MockServiceImplBase=_.extend({},RequirementsBase,{name:"MOCK",serviceName:void 0,logger:void 0,mockData:void 0,baseRequirements:["avLog","serviceName","mockData"],self:void 0,dependencies:{},customInitialize:!1,baseInitialize:function(a,b){this.logger=a.avLog.getLogger(a.serviceName),this.dependencyUtil=new RequireUtils(this.logger,a.serviceName),this.baseSetDependencies(a),this.baseMergeRequirements(this.baseRequirements,b),this.dependencyUtil.checkDependencies(this.requirements,this.dependencies),this.self=this,this.customInitialize&&(this.logger.debug("running custom initialize"),this.customInitialize(a,b))},getAll:function(a,b,c){if(this.logger.debug(this.serviceName+" MOCK, mock get all, length: "+a.length,a),a&&Object.keys(a).length>0){var d=[];for(var e in this.mockData)for(var f in a)if(this.logger.debug(" MOCK get all filtering by param: "+f+" mockData param:"+this.mockData[f]+"filter by: "+a[f]),""+this.mockData[e][f]==""+a[f]){d.push(this.mockData[e]);break}return b&&b(d),this.logger.debug("failure func",c),d}return b&&b(this.mockData),this.logger.debug("failure func",c),this.mockData},get:function(a,b,c){if(this.logger.debug(this.serviceName+" MOCK, mock get ",a.id),void 0!==a.id){var d=this.findIndexInMock(a.id);return b&&b(this.mockData[d]),this.logger.debug("failure func",c),this.mockData[d]}},save:function(a,b,c,d){var e=this.findIndexInMock(a.id);return this.logger.debug(this.serviceName+" MOCK, mock saving",[e,a.id,"params",b]),0>e?(this.logger.debug(this.serviceName+" MOCK, mock new for save!!!"),e=this.mockData.length,a.id=""+e,this.mockData.push(a)):this.mockData[e]=a,this.afterSave&&this.afterSave(e,a),c&&c(a),this.logger.debug("failure func",d),a},"delete":function(a,b,c,d){var e=this.findIndexInMock(a);this.logger.debug(this.serviceName+" MOCK, mock delete ",e,a),this.mockData.splice(e,1),c&&c(),this.logger.debug("failure func",d)},findIndexInMock:function(a){console.log("findIndexInMock",a,this.mockData);for(var b=0;b