Built motion from commit 10af8726.|2.6.34
[motion2.git] / server / api / cmHopperAdditionalPhone / cmHopperAdditionalPhone.rpc.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xc91e=['activateAdditionalPhone','IncrementPreviewCounters','field','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','VerifyAdditionalPhones','findOne','ContactId','body','ListId','VoiceQueueId','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','countabandonedretry','catch','SwapAdditionalPhones','CampaignId','duration','waitTime','isNil','scheduledat','add','minutes','phone','createdAt','sequelize','transaction','CmHopper','update'];(function(_0x4b26b5,_0x4f71fd){var _0x4dec71=function(_0x184329){while(--_0x184329){_0x4b26b5['push'](_0x4b26b5['shift']());}};_0x4dec71(++_0x4f71fd);}(_0xc91e,0xf3));var _0xec91=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc91e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xec91('0x0'));var moment=require(_0xec91('0x1'));var BPromise=require(_0xec91('0x2'));var rs=require(_0xec91('0x3'));var fs=require('fs');var Redis=require(_0xec91('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xec91('0x5'));var logger=require(_0xec91('0x6'))(_0xec91('0x7'));var config=require(_0xec91('0x8'));var jayson=require(_0xec91('0x9'));var client=jayson[_0xec91('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1fd3e4,_0x200d13,_0x2642a0){return new BPromise(function(_0x231256,_0x801b57){return client[_0xec91('0xb')](_0x1fd3e4,_0x2642a0)[_0xec91('0xc')](function(_0x527010){logger[_0xec91('0xd')](_0xec91('0xe'),_0x200d13,_0xec91('0xf'));logger[_0xec91('0x10')](_0xec91('0x11'),_0x200d13,_0xec91('0xf'),JSON[_0xec91('0x12')](_0x527010));if(_0x527010[_0xec91('0x13')]){if(_0x527010[_0xec91('0x13')][_0xec91('0x14')]===0x1f4){logger[_0xec91('0x13')](_0xec91('0xe'),_0x200d13,_0x527010[_0xec91('0x13')][_0xec91('0x15')]);return _0x801b57(_0x527010[_0xec91('0x13')][_0xec91('0x15')]);}logger['error'](_0xec91('0xe'),_0x200d13,_0x527010[_0xec91('0x13')]['message']);return _0x231256(_0x527010[_0xec91('0x13')][_0xec91('0x15')]);}else{logger['info'](_0xec91('0xe'),_0x200d13,'request\x20sent');_0x231256(_0x527010[_0xec91('0x16')][_0xec91('0x15')]);}})['catch'](function(_0x5eb6e1){logger['error'](_0xec91('0xe'),_0x200d13,_0x5eb6e1);_0x801b57(_0x5eb6e1);});});}exports[_0xec91('0x17')]=function(_0x43138c){var _0x508e0a=this;return new Promise(function(_0x5559a9,_0x2c1f0e){return db['CmHopper'][_0xec91('0x18')]({'raw':!![],'where':{'ContactId':_0x43138c['body'][_0xec91('0x19')],'ListId':_0x43138c[_0xec91('0x1a')][_0xec91('0x1b')],'VoiceQueueId':_0x43138c[_0xec91('0x1a')][_0xec91('0x1c')]===undefined?null:_0x43138c['body'][_0xec91('0x1c')],'CampaignId':_0x43138c[_0xec91('0x1a')]['CampaignId']===undefined?null:_0x43138c[_0xec91('0x1a')]['CampaignId']}})[_0xec91('0xc')](function(_0x2f0498){if(_0x2f0498!=null){return db['CmHopperAdditionalPhone'][_0xec91('0x18')]({'raw':!![],'where':{'CmHopperId':_0x2f0498['id'],'OrderBy':{'$gt':_0x2f0498[_0xec91('0x1d')]}},'order':[['OrderBy',_0xec91('0x1e')]]})[_0xec91('0xc')](function(_0x36d563){var _0x147492=0x0;if(_0x36d563){if(_0x36d563[_0xec91('0x1f')]+_0x36d563[_0xec91('0x20')]+_0x36d563[_0xec91('0x21')]+_0x36d563[_0xec91('0x22')]+_0x36d563[_0xec91('0x23')]+_0x36d563['countabandonedretry']+_0x36d563[_0xec91('0x24')]+_0x36d563[_0xec91('0x25')]<_0x43138c[_0xec91('0x26')][_0xec91('0x27')])_0x147492=0x1;_0x5559a9({'additional':_0x147492});}else{return db[_0xec91('0x28')][_0xec91('0x18')]({'raw':!![],'where':{'CmHopperId':_0x2f0498['id']},'order':[[_0xec91('0x1d'),_0xec91('0x1e')]]})[_0xec91('0xc')](function(_0x174535){var _0x374fd2=0x0;if(_0x174535){if(_0x174535[_0xec91('0x1f')]+_0x174535[_0xec91('0x20')]+_0x174535[_0xec91('0x21')]+_0x174535['countnosuchnumberretry']+_0x174535['countdropretry']+_0x174535[_0xec91('0x29')]+_0x174535[_0xec91('0x24')]+_0x174535[_0xec91('0x25')]<_0x43138c[_0xec91('0x26')][_0xec91('0x27')])_0x374fd2=0x1;_0x5559a9({'additional':_0x374fd2});}else{_0x5559a9({'additional':0x0});}})[_0xec91('0x2a')](function(_0x371511){logger[_0xec91('0x13')]('VerifyAdditionalPhones',_0x371511[_0xec91('0x15')]);_0x2c1f0e(_0x508e0a[_0xec91('0x13')](0x1f4,_0x371511[_0xec91('0x15')]));});}})[_0xec91('0x2a')](function(_0x48a2a3){logger[_0xec91('0x13')](_0xec91('0x17'),_0x48a2a3['message']);_0x2c1f0e(_0x508e0a['error'](0x1f4,_0x48a2a3['message']));});}else _0x5559a9({'additional':0x0});});});};exports[_0xec91('0x2b')]=function(_0x42d80d){var _0x5a7f3e=this;return new Promise(function(_0x31ad47,_0x3ef7a8){return db['CmHopper'][_0xec91('0x18')]({'raw':!![],'where':{'ContactId':_0x42d80d[_0xec91('0x1a')][_0xec91('0x19')],'ListId':_0x42d80d['body']['ListId'],'VoiceQueueId':_0x42d80d['body'][_0xec91('0x1c')]===undefined?null:_0x42d80d['body']['VoiceQueueId'],'CampaignId':_0x42d80d['body'][_0xec91('0x2c')]===undefined?null:_0x42d80d[_0xec91('0x1a')][_0xec91('0x2c')]}})[_0xec91('0xc')](function(_0x20e137){if(_0x20e137!=null){return db[_0xec91('0x28')][_0xec91('0x18')]({'raw':!![],'where':{'CmHopperId':_0x20e137['id'],'OrderBy':{'$gte':_0x20e137[_0xec91('0x1d')]}},'order':[[_0xec91('0x1d'),_0xec91('0x1e')]]})[_0xec91('0xc')](function(_0xca7399){if(_0xca7399)return activateAdditionalPhone(_0x20e137,_0x42d80d[_0xec91('0x1a')],_0xca7399,_0x42d80d[_0xec91('0x2d')],_0x42d80d['waitTime'])[_0xec91('0xc')](function(_0x5b9a7b){_0x31ad47(_0x5b9a7b);});else{return db[_0xec91('0x28')][_0xec91('0x18')]({'raw':!![],'where':{'CmHopperId':_0x20e137['id']},'order':[[_0xec91('0x1d'),_0xec91('0x1e')]]})[_0xec91('0xc')](function(_0x34fe54){if(_0x34fe54)return activateAdditionalPhone(_0x20e137,_0x42d80d[_0xec91('0x1a')],_0x34fe54,_0x42d80d[_0xec91('0x2d')],_0x42d80d[_0xec91('0x2e')])[_0xec91('0xc')](function(_0x3f05d7){_0x31ad47(_0x3f05d7);});else{_0x31ad47({'id':_0x20e137['id'],'phone':''});}})['catch'](function(_0x44995d){logger[_0xec91('0x13')](_0xec91('0x17'),_0x44995d[_0xec91('0x15')]);_0x3ef7a8(_0x5a7f3e[_0xec91('0x13')](0x1f4,_0x44995d[_0xec91('0x15')]));});}})[_0xec91('0x2a')](function(_0x5460ac){logger[_0xec91('0x13')](_0xec91('0x17'),_0x5460ac[_0xec91('0x15')]);_0x3ef7a8(_0x5a7f3e['error'](0x1f4,_0x5460ac[_0xec91('0x15')]));});}else _0x31ad47(0x1);});});};function activateAdditionalPhone(_0x11e4a0,_0x2a037f,_0x2cbfbf,_0x2cd4dc,_0x75c3c4){return new Promise(function(_0x3af6cd,_0x4e9e4a){var _0x3fb7d0;if(_[_0xec91('0x2f')](_0x2cbfbf[_0xec91('0x30')])){_0x2cbfbf[_0xec91('0x30')]=moment();}if(moment()>moment(_0x2cbfbf[_0xec91('0x30')])){_0x3fb7d0=moment()[_0xec91('0x31')](_0x75c3c4||0x3,_0xec91('0x32'));}else{if(_0x2cbfbf[_0xec91('0x1d')]==0x0){_0x3fb7d0=moment(_0x2cbfbf[_0xec91('0x30')]);}else{_0x3fb7d0=moment()[_0xec91('0x31')](_0x75c3c4||0x3,_0xec91('0x32'));}}if(_['isNil'](_0x3fb7d0)){_0x3fb7d0=moment()[_0xec91('0x31')](_0x75c3c4||0x3,_0xec91('0x32'));}var _0x1a7fd1={'phone':_0x11e4a0[_0xec91('0x33')],'active':0x0,'OrderBy':_[_0xec91('0x2f')](_0x11e4a0['OrderBy'])?0x0:_0x11e4a0['OrderBy'],'scheduledat':moment()[_0xec91('0x31')](_0x2cd4dc||0x1,_0xec91('0x32')),'countbusyretry':_0x2a037f[_0xec91('0x1f')],'countcongestionretry':_0x2a037f[_0xec91('0x20')],'countnoanswerretry':_0x2a037f['countnoanswerretry'],'countnosuchnumberretry':_0x2a037f[_0xec91('0x22')],'countdropretry':_0x2a037f[_0xec91('0x23')],'countabandonedretry':_0x2a037f[_0xec91('0x29')],'countmachineretry':_0x2a037f[_0xec91('0x24')],'countagentrejectretry':_0x2a037f[_0xec91('0x25')],'createdAt':_0x2a037f[_0xec91('0x34')],'updatedAt':_0x2a037f['updatedAt']};var _0x175e39={'CmHopperId':_0x11e4a0['id'],'phone':_0x2cbfbf[_0xec91('0x33')],'active':0x0,'OrderBy':_['isNil'](_0x2cbfbf[_0xec91('0x1d')])?0x0:_0x2cbfbf[_0xec91('0x1d')],'scheduledat':_0x3fb7d0,'countbusyretry':_0x2cbfbf[_0xec91('0x1f')],'countcongestionretry':_0x2cbfbf[_0xec91('0x20')],'countnoanswerretry':_0x2cbfbf[_0xec91('0x21')],'countnosuchnumberretry':_0x2cbfbf[_0xec91('0x22')],'countdropretry':_0x2cbfbf[_0xec91('0x23')],'countabandonedretry':_0x2cbfbf['countabandonedretry'],'countmachineretry':_0x2cbfbf['countmachineretry'],'countagentrejectretry':_0x2cbfbf[_0xec91('0x25')],'createdAt':_0x2cbfbf[_0xec91('0x34')],'updatedAt':_0x2cbfbf['updatedAt']};return db[_0xec91('0x35')][_0xec91('0x36')](function(_0x41cb5b){return db[_0xec91('0x28')]['update'](_0x1a7fd1,{'where':{'id':_0x2cbfbf['id']}},{'transaction':_0x41cb5b})['then'](function(){return db[_0xec91('0x37')][_0xec91('0x38')](_0x175e39,{'where':{'id':_0x11e4a0['id']}},{'transaction':_0x41cb5b});});})['then'](function(_0x64d4d5){_0x3af6cd({'id':_0x11e4a0['id'],'phone':_0x2cbfbf['phone']});})[_0xec91('0x2a')](function(_0xd16e01){logger[_0xec91('0x13')](_0xec91('0x39'),_0xd16e01[_0xec91('0x15')]);_0x4e9e4a({'error':_0xd16e01[_0xec91('0x15')]});});});}exports[_0xec91('0x3a')]=function(_0x5672bc){var _0x27b2bf=this;return new Promise(function(_0x26f440,_0x48bc9f){return db[_0xec91('0x37')]['update'](_0x5672bc['body'][_0xec91('0x3b')],{'where':{'id':_0x5672bc[_0xec91('0x1a')]['id']}})[_0xec91('0xc')](function(_0x32854e){_0x26f440(_0x32854e);})[_0xec91('0x2a')](function(_0x532bfa){logger[_0xec91('0x13')]('IncrementPreviewCounters',_0x532bfa['message']);_0x48bc9f(_0x27b2bf[_0xec91('0x13')](0x1f4,_0x532bfa[_0xec91('0x15')]));});});};