{"version":3,"sources":["services/module/purchase/subscribe/main.es6.js"],"names":["create","freeMembership","config","features","check","balancePromise","Promise","resolve","api","credits","accounts","balance","get","clientId","err","data","membershipPromise","membersip","all","then","values","balanceData","membershipData","eventModel","state","tiles","bus","emit","sync","on"],"mappings":";;;;YAyCgBA,M,GAAAA,M;;;;;;;;;;;;;;;;;;AAlChB,QAAIC,iBAAiBC,iBAAOC,QAAP,CAAgB,iBAAhB,CAArB;;AAKA,aAASC,KAAT,GAAiB;;AAEb,YAAIC,iBAAiB,IAAIC,OAAJ,CAAY,UAASC,OAAT,EAAiB;AAC9CC,0BAAIC,OAAJ,CAAYC,QAAZ,CAAqBC,OAArB,CAA6BC,GAA7B,CAAiCC,MAAjC,EAA2C,UAAUC,GAAV,EAAeC,IAAf,EAAqB;AAC5DR,wBAAQQ,IAAR;AACH,aAFD;AAGH,SAJoB,CAArB;AAKA,YAAIC,oBAAoB,IAAIV,OAAJ,CAAY,UAASC,OAAT,EAAiB;AACjDU,mCAAUb,KAAV,CAAgB,UAAUW,IAAV,EAAgB;AAC5BR,wBAAQQ,IAAR;AACH,aAFD;AAGH,SAJuB,CAAxB;;AAMAT,gBAAQY,GAAR,CAAY,CAACb,cAAD,EAAiBW,iBAAjB,CAAZ,EAAiDG,IAAjD,CAAsD,UAASC,MAAT,EAAgB;AAClE,gBAAIC,cAAcD,OAAO,CAAP,CAAlB;AACA,gBAAIE,iBAAiBF,OAAO,CAAP,CAArB;AACA,gBAAIG,aAAa;AACb,4BAAY,EAAED,eAAeE,KAAf,IAAwB,MAAxB,IAAkCF,eAAeE,KAAf,IAAwB,UAA5D,CADC;AAEb,mCAAmBvB,kBAAkBqB,eAAeE,KAAf,IAAwB,MAFhD;AAGbC,uBAAO,CAAC,CAAC,sBAAe,0BAAf,CAAF,IAAgD,sBAAe,aAAf;AAH1C,aAAjB;;AAMA,gBAAGJ,WAAH,EAAe;AACXE,2BAAWZ,OAAX,GAAqBU,YAAYV,OAAjC;AACH;AACDe,0BAAIC,IAAJ,CAAS,oBAAT,EAA+BJ,UAA/B;AACH,SAbD;AAcH;;AAEM,aAASvB,MAAT,GAAkB;;AAErB0B,sBAAIE,IAAJ,CAAS,YAAT,EAAuB,YAAY;AAC/BxB;AACAsB,0BAAIG,EAAJ,CAAO,wBAAP,EAAiCzB,KAAjC;AAEH,SAJD;AAKH","file":"services/module/purchase/subscribe/main.js","sourceRoot":"/source/","sourcesContent":["import api from 'api';\r\nimport bus from 'bus';\r\nimport membersip from 'repositories/purchase/subscription';\r\nimport serverFeatures from 'modules/features/server';\r\nimport {id as clientId} from 'modules/me';\r\nimport config from 'config';\r\n\r\nlet freeMembership = config.features['free-membership'];\r\n\r\n/*\r\n * TODO: make periodical checking while user is active on page or make WebSocket communication.\r\n */\r\nfunction check() {\r\n\r\n var balancePromise = new Promise(function(resolve){\r\n api.credits.accounts.balance.get(clientId, function (err, data) {\r\n resolve(data);\r\n });\r\n });\r\n var membershipPromise = new Promise(function(resolve){\r\n membersip.check(function (data) {\r\n resolve(data);\r\n });\r\n });\r\n\r\n Promise.all([balancePromise, membershipPromise]).then(function(values){\r\n var balanceData = values[0];\r\n var membershipData = values[1];\r\n var eventModel = {\r\n 'purchase': !(membershipData.state == 'none' || membershipData.state == 'inactive'),\r\n 'free-membership': freeMembership && membershipData.state == 'none',\r\n tiles: !!serverFeatures('in-my-account-experiment') || serverFeatures('arabiandate')\r\n };\r\n\r\n if(balanceData){\r\n eventModel.balance = balanceData.balance;\r\n }\r\n bus.emit('event.model.change', eventModel);\r\n });\r\n}\r\n\r\nexport function create() {\r\n\r\n bus.sync('authorized', function () {\r\n check();\r\n bus.on('event.purchase.success', check);\r\n\r\n });\r\n}"]}