UNPKG

13.6 kBJavaScriptView Raw
1"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var MsgType,data_structure_1=require("./data_structure"),message_class_1=require("./message_class"),mutable_1=require("./mutable"),core_1=require("./core"),data_structure_2=require("./data_structure");!function(e){e[e.INSERT=0]="INSERT",e[e.UPDATE=1]="UPDATE",e[e.DELETE=2]="DELETE"}(MsgType=exports.MsgType||(exports.MsgType={}));var SnapshotUtil=function(){function s(){}return s.combineSnapshots=function(e,t,r){if(e.group().id()!=s.SPORTS_GROUP.id())return console.error("FATAL: Received non feed message group's class %s.Shouldnt come here",e),(a=new data_structure_1.MessageBeforeTransform).setAfterSs(r),a;switch(e.id()){case s.SPORTS_GROUP.DATA_INSERT_MATCH().id():return s.processMatches(MsgType.INSERT,t,r);case s.SPORTS_GROUP.DATA_UPDATE_MATCH().id():return s.processMatches(MsgType.UPDATE,t,r);case s.SPORTS_GROUP.DATA_DELETE_MATCH().id():return s.processMatches(MsgType.DELETE,t,r);case s.SPORTS_GROUP.DATA_INSERT_EVENT().id():return s.processEvents(MsgType.INSERT,t,r);case s.SPORTS_GROUP.DATA_UPDATE_EVENT().id():return s.processEvents(MsgType.UPDATE,t,r);case s.SPORTS_GROUP.DATA_DELETE_EVENT().id():return s.processEvents(MsgType.DELETE,t,r);case s.SPORTS_GROUP.DATA_INSERT_ODD().id():return s.processOdds(MsgType.INSERT,t,r);case s.SPORTS_GROUP.DATA_UPDATE_ODD().id():return s.processOdds(MsgType.UPDATE,t,r);case s.SPORTS_GROUP.DATA_DELETE_ODD().id():return s.processOdds(MsgType.DELETE,t,r);case s.SPORTS_GROUP.DATA_RESET().id():return s.processReset(t,r);case s.SPORTS_GROUP.ADMIN_REFRESH().id():return s.processRefresh(t,r);default:var a;return console.error("FATAL: Received non data message class %s.Shouldnt come here",e),(a=new data_structure_1.MessageBeforeTransform).setAfterSs(r),a}},s.processRefresh=function(e,t){for(var r=mutable_1.BuilderProvider.getSnapshotBuilder(t),a=new data_structure_1.MessageBeforeTransform,s=0,n=e.getPartitions().toArray();s<n.length;s++){var i=n[s],l=e.getPartitionMap().getValue(i);r.markPartitionAsUpdated(i,l)}return a.setAfterSs(r.build()),a},s.processReset=function(e,t){for(var r=mutable_1.BuilderProvider.getSnapshotBuilder(t),a=new data_structure_1.MessageBeforeTransform,s=0,n=e.getPartitions().toArray();s<n.length;s++){var i=n[s];r.reset(i);var l=e.getPartitionMap().getValue(i);r.markPartitionAsUpdated(i,l)}return a.setAfterSs(r.build()),a},s.processMatches=function(e,t,r){for(var a=mutable_1.BuilderProvider.getSnapshotBuilder(r),s=new data_structure_1.MessageBeforeTransform,n=null,i=0,l=t.matches();i<l.length;i++){var u=l[i];switch(n=null,e){case MsgType.INSERT:null!=(n=a.insertChild(u))?s.setSuppressMatch(n):s.setInsertMatch(u.id());break;case MsgType.UPDATE:a.updateChild(u);break;case MsgType.DELETE:null!=(n=a.deleteChild(u))?s.setSuppressMatch(n):s.setDeleteMatch(u.id());break;default:console.error("[Match] FATAL: Shouldn't come here")}}for(var d=0,o=t.getPartitions().toArray();d<o.length;d++){var c=o[d],h=t.getPartitionMap().getValue(c);a.markPartitionAsUpdated(c,h)}return s.setAfterSs(a.build()),s},s.processEvents=function(e,t,r){for(var a=mutable_1.BuilderProvider.getSnapshotBuilder(r),s=new data_structure_1.MessageBeforeTransform,n=0,i=t.matches();n<i.length;n++){var l=i[n],u=r.match(l.id());if(null!=u){for(var d=mutable_1.BuilderProvider.getMatchBuilder(u),o=0,c=l.events();o<c.length;o++){var h=c[o];switch(e){case MsgType.INSERT:null!=d.insertChild(h)?s.setTransformEvent(h.matchId()+"_"+h.id()):s.setInsertEvent(h.matchId()+"_"+h.id());break;case MsgType.UPDATE:d.updateChild(h);break;case MsgType.DELETE:null!=d.deleteChild(h)?s.setTransformEvent(h.matchId()+"_"+h.id()):s.setDeleteEvent(h.matchId()+"_"+h.id());break;default:console.error("[Event] FATAL: Shouldn't come here")}}a.replaceMatch(d.build())}else console.error("Cannot find Match %s while processing %s",l.id(),MsgType)}for(var _=0,g=t.getPartitions().toArray();_<g.length;_++){var T=g[_],p=t.getPartitionMap().getValue(T);a.markPartitionAsUpdated(T,p)}return s.setAfterSs(a.build()),s.setBeforeSs(r),s},s.processOdds=function(e,t,r){for(var a=mutable_1.BuilderProvider.getSnapshotBuilder(r),s=new data_structure_1.MessageBeforeTransform,n=0,i=t.matches();n<i.length;n++){var l=i[n],u=r.match(l.id());if(null!=u){for(var d=mutable_1.BuilderProvider.getMatchBuilder(u),o=0,c=l.events();o<c.length;o++){var h=c[o],_=u.event(h.id());if(null!=_){for(var g=mutable_1.BuilderProvider.getEventBuilder(_),T=0,p=h.records();T<p.length;T++){var v=p[T];switch(e){case MsgType.INSERT:g.insertChild(v);break;case MsgType.UPDATE:g.updateChild(v);break;case MsgType.DELETE:g.deleteChild(v);break;default:console.error("[Record] FATAL: Shouldn't come here")}}d.replaceEvent(g.build())}else console.error("Cannot find Event %s_%s while processing %s",l.id(),h.id(),e)}a.replaceMatch(d.build())}else console.error("Cannot find Match %s while processing %s",l.id(),e)}for(var E=0,m=t.getPartitions().toArray();E<m.length;E++){var A=m[E],S=t.getPartitionMap().getValue(A);a.markPartitionAsUpdated(A,S)}return s.setAfterSs(a.build()),s},s.SPORTS_GROUP=new message_class_1.SportsFeedMessageGroup,s}();exports.SnapshotUtil=SnapshotUtil;var DeltaTransformingLogicImpl=function(){function f(){}return f.transform=function(e,t,r,a,s){switch(r.id()){case e.DATA_INSERT_MATCH().id():return this.suppressInsertMatch(s,e,r,t,a,[]);case e.DATA_DELETE_MATCH().id():return this.suppressDeleteMatch(s,e,r,t,a,[]);case e.DATA_INSERT_EVENT().id():return this.suppressInsertEvent(s,e,r,t,a,[]);case e.DATA_DELETE_EVENT().id():return this.suppressDeleteEvent(s,e,r,t,a,[]);case e.DATA_UPDATE_EVENT().id():return this.combineEventState(s,e,r,t,a,[])}var n=[];return n.push(new data_structure_1.Incoming(r,t,a)),n},f.combineEventState=function(e,t,r,a,s,n){for(var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=0,u=s.matches();l<u.length;l++){for(var d=u[l],o=mutable_1.BuilderProvider.getMatchBuilder(d),c=0,h=d.events();c<h.length;c++){var _=h[c],g=mutable_1.BuilderProvider.getEventBuilder(_);g.aggregateInsert(e.getAfterSs().match(d.id()).event(_.id())),o.replaceEvent(g.build())}i.replaceMatch(o.build())}return n.push(new data_structure_1.Incoming(t.DATA_UPDATE_EVENT(),a,i.build())),n},f.suppressInsertEvent=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=s.matches().length){if(0!=e.getInsertEvent().length){for(var u={},d=0,o=e.getTransformEvent();d<o.length;d++){var c=(S=o[d]).split("_")[0],h=S.split("_")[1],_=s.match(c),g=u[c];void 0===g&&(g=mutable_1.BuilderProvider.getMatchBuilder(_),u[c]=g),g.deleteChild(_.event(h))}for(var c in u)i.replaceMatch(u[c].build());n.push(new data_structure_1.Incoming(t.DATA_INSERT_EVENT(),a,i.build()))}if(0!=e.getTransformEvent().length){for(var T={},p=0,v=e.getInsertEvent();p<v.length;p++){c=(S=v[p]).split("_")[0],h=S.split("_")[1],_=s.match(c);var E=T[c];void 0===E&&(E=mutable_1.BuilderProvider.getMatchBuilder(_),T[c]=E),E.deleteChild(_.event(h))}for(var m=0,A=e.getTransformEvent();m<A.length;m++){c=(S=A[m]).split("_")[0],h=S.split("_")[1],_=s.match(c);var S,f=T[c];void 0===f&&(f=mutable_1.BuilderProvider.getMatchBuilder(_),T[c]=f);var b=mutable_1.BuilderProvider.getEventBuilder(_.event(h));b.aggregateInsert(e.getAfterSs().match(c).event(h)),f.replaceEvent(b.build())}for(var c in T)l.replaceMatch(T[c].build());n.push(new data_structure_1.Incoming(t.DATA_UPDATE_EVENT(),a,l.build()))}}return n},f.transformTTLRestore=function(e,t,r,a,s,n,i){for(var l=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,u=new data_structure_1.MergeableWrapper,d=0,o=e;d<o.length;d++){var c=o[d];l=SnapshotUtil.combineSnapshots(t.DATA_INSERT_MATCH(),c,l).getAfterSs(),l=SnapshotUtil.combineSnapshots(t.DATA_INSERT_EVENT(),c,l).getAfterSs(),l=SnapshotUtil.combineSnapshots(t.DATA_INSERT_ODD(),c,l).getAfterSs()}for(var h=a,_=[],g=0,T=this.breakdownTTL(t,r,new data_structure_2.IndexedSnapshotImpl(l.matchesSport,i));g<T.length;g++){var p=T[g],v=SnapshotUtil.combineSnapshots(p.msgType(),p.data(),h);if(p.msgType().id()==t.DATA_INSERT_MATCH().id()||p.msgType().id()==t.DATA_INSERT_EVENT().id())for(var E=0,m=f.transform(t,r,p.msgType(),p.data(),v);E<m.length;E++){var A=m[E],S=new core_1.Delta(A,v.getAfterSs(),h);_.push(S),h=v.getAfterSs()}else{S=new core_1.Delta(p,v.getAfterSs(),a);_.push(S)}}return u.setAfter(s),u.setDeltaOut(_),u},f.transformTTLRemove=function(e,t,r,a,s,n){for(var i,l=new data_structure_1.MergeableWrapper,u=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,d=0,o=e;d<o.length;d++){var c=o[d];u=SnapshotUtil.combineSnapshots(t.DATA_INSERT_MATCH(),c,u).getAfterSs(),u=SnapshotUtil.combineSnapshots(t.DATA_INSERT_EVENT(),c,u).getAfterSs(),u=SnapshotUtil.combineSnapshots(t.DATA_INSERT_ODD(),c,u).getAfterSs()}i=a;for(var h=[],_=0,g=f.breakdownReset(t,r,u);_<g.length;_++){var T=g[_],p=SnapshotUtil.combineSnapshots(T.msgType(),T.data(),i);if(T.msgType().id()==t.DATA_DELETE_MATCH().id()||T.msgType().id()==t.DATA_DELETE_EVENT().id())for(var v=0,E=f.transform(t,r,T.msgType(),T.data(),p);v<E.length;v++){var m=E[v],A=new core_1.Delta(m,p.getAfterSs(),i);h.push(A),i=p.getAfterSs()}else{A=new core_1.Delta(T,p.getAfterSs(),a);h.push(A)}}return l.setDeltaOut(h),l.setAfter(s),l},f.breakdownTTL=function(e,t,r){for(var a=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,s=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,n=mutable_1.BuilderProvider.getSnapshotBuilder(r),i=mutable_1.BuilderProvider.getSnapshotBuilder(r),l=0,u=r.matches();l<u.length;l++){for(var d=u[l],o=mutable_1.BuilderProvider.getMatchBuilder(d),c=mutable_1.BuilderProvider.getMatchBuilder(d),h=0,_=d.events();h<_.length;h++){var g=_[h];o.deleteChild(g);for(var T=mutable_1.BuilderProvider.getEventBuilder(g),p=0,v=g.records();p<v.length;p++){var E=v[p];T.deleteChild(E)}c.replaceEvent(T.build())}n.replaceMatch(o.build()),i.replaceMatch(c.build())}a=n.build(),s=i.build();var m=[];return m.push(new data_structure_1.Incoming(e.DATA_INSERT_MATCH(),t,a)),m.push(new data_structure_1.Incoming(e.DATA_INSERT_EVENT(),t,s)),m.push(new data_structure_1.Incoming(e.DATA_INSERT_ODD(),t,r)),m},f.breakdownReset=function(e,t,r){for(var a=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,s=data_structure_2.IndexedSnapshotImpl.EMPTY_SNAPSHOT,n=mutable_1.BuilderProvider.getSnapshotBuilder(r),i=mutable_1.BuilderProvider.getSnapshotBuilder(r),l=0,u=r.matches();l<u.length;l++){for(var d=u[l],o=mutable_1.BuilderProvider.getMatchBuilder(d),c=mutable_1.BuilderProvider.getMatchBuilder(d),h=0,_=d.events();h<_.length;h++){var g=_[h];o.deleteChild(g);for(var T=mutable_1.BuilderProvider.getEventBuilder(g),p=0,v=g.records();p<v.length;p++){var E=v[p];T.deleteChild(E)}c.replaceEvent(T.build())}n.replaceMatch(o.build()),i.replaceMatch(c.build())}a=n.build(),s=i.build();var m=[];return m.push(new data_structure_1.Incoming(e.DATA_DELETE_ODD(),t,r)),m.push(new data_structure_1.Incoming(e.DATA_DELETE_EVENT(),t,s)),m.push(new data_structure_1.Incoming(e.DATA_DELETE_MATCH(),t,a)),m},f.suppressInsertMatch=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=e.getSuppressMatch().length)for(var u=0,d=e.getSuppressMatch();u<d.length;u++){var o=d[u],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));i.deleteChild(c.build())}if(0!=e.getInsertMatch().length)for(var h=0,_=e.getInsertMatch();h<_.length;h++){o=_[h],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));l.deleteChild(c.build())}return 0!=i.build().matches().length&&n.push(new data_structure_1.Incoming(t.DATA_INSERT_MATCH(),a,i.build())),n},f.suppressDeleteEvent=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=e.getDeleteEvent().length){for(var u={},d=0,o=e.getTransformEvent();d<o.length;d++){var c=(S=o[d]).split("_")[0],h=S.split("_")[1],_=e.getBeforeSs().match(c),g=u[c];void 0===g&&(g=mutable_1.BuilderProvider.getMatchBuilder(_),u[c]=g),g.deleteChild(_.event(h))}for(var c in u)i.replaceMatch(u[c].build());n.push(new data_structure_1.Incoming(t.DATA_DELETE_EVENT(),a,i.build()))}if(0!=e.getTransformEvent().length){for(var T={},p=0,v=e.getDeleteEvent();p<v.length;p++){c=(S=v[p]).split("_")[0],h=S.split("_")[1],_=e.getBeforeSs().match(c);var E=T[c];void 0===E&&(E=mutable_1.BuilderProvider.getMatchBuilder(_),T[c]=E),E.deleteChild(_.event(h))}for(var m=0,A=e.getTransformEvent();m<A.length;m++){c=(S=A[m]).split("_")[0],h=S.split("_")[1];var S,f=T[c];void 0===f&&(f=mutable_1.BuilderProvider.getMatchBuilder(e.getBeforeSs().match(c)),T[c]=f);var b=mutable_1.BuilderProvider.getEventBuilder(f.build().event(h));b.aggregateDelete(s.match(c).event(h)),f.replaceEvent(b.build())}for(var c in T)l.replaceMatch(T[c].build());n.push(new data_structure_1.Incoming(t.DATA_UPDATE_EVENT(),a,l.build()))}return n},f.suppressDeleteMatch=function(e,t,r,a,s,n){var i=mutable_1.BuilderProvider.getSnapshotBuilder(s),l=mutable_1.BuilderProvider.getSnapshotBuilder(s);if(0!=e.getSuppressMatch().length)for(var u=0,d=e.getSuppressMatch();u<d.length;u++){var o=d[u],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));i.deleteChild(c.build())}if(0!=e.getDeleteMatch().length)for(var h=0,_=e.getDeleteMatch();h<_.length;h++){o=_[h],c=mutable_1.BuilderProvider.getMatchBuilder(s.match(o.split("_")[0]));l.deleteChild(c.build())}return 0!=i.build().matches().length&&n.push(new data_structure_1.Incoming(t.DATA_DELETE_MATCH(),a,i.build())),n},f}();exports.DeltaTransformingLogicImpl=DeltaTransformingLogicImpl;
\No newline at end of file