e70b04dbd18fe344c4271e8622041cc881c8b5bb
[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 _0x5d4e=['CmHopperAdditionalPhone,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ContactId','VoiceQueueId','CampaignId','OrderBy','countbusyretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','ASC','then','countcongestionretry','countabandonedretry','ListId','CmHopperAdditionalPhone','duration','waitTime','scheduledat','add','minutes','isNil','phone','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','http'];(function(_0x44d62d,_0x128717){var _0xd4383f=function(_0x288653){while(--_0x288653){_0x44d62d['push'](_0x44d62d['shift']());}};_0xd4383f(++_0x128717);}(_0x5d4e,0x112));var _0xe5d4=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x5d4e[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0xe5d4('0x0'));var util=require(_0xe5d4('0x1'));var moment=require(_0xe5d4('0x2'));var BPromise=require(_0xe5d4('0x3'));var rs=require(_0xe5d4('0x4'));var fs=require('fs');var Redis=require(_0xe5d4('0x5'));var db=require(_0xe5d4('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xe5d4('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xe5d4('0x8'));var client=jayson[_0xe5d4('0x9')][_0xe5d4('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5c4d97,_0x506e30,_0x4fc31c){return new BPromise(function(_0x91d5af,_0x5ac95b){return client['request'](_0x5c4d97,_0x4fc31c)['then'](function(_0x43b064){logger['info'](_0xe5d4('0xb'),_0x506e30,'request\x20sent');logger[_0xe5d4('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x506e30,_0xe5d4('0xd'),JSON[_0xe5d4('0xe')](_0x43b064));if(_0x43b064[_0xe5d4('0xf')]){if(_0x43b064[_0xe5d4('0xf')][_0xe5d4('0x10')]===0x1f4){logger[_0xe5d4('0xf')](_0xe5d4('0xb'),_0x506e30,_0x43b064[_0xe5d4('0xf')][_0xe5d4('0x11')]);return _0x5ac95b(_0x43b064[_0xe5d4('0xf')][_0xe5d4('0x11')]);}logger[_0xe5d4('0xf')](_0xe5d4('0xb'),_0x506e30,_0x43b064[_0xe5d4('0xf')][_0xe5d4('0x11')]);return _0x91d5af(_0x43b064[_0xe5d4('0xf')][_0xe5d4('0x11')]);}else{logger[_0xe5d4('0x12')](_0xe5d4('0xb'),_0x506e30,'request\x20sent');_0x91d5af(_0x43b064[_0xe5d4('0x13')][_0xe5d4('0x11')]);}})[_0xe5d4('0x14')](function(_0x5afebe){logger[_0xe5d4('0xf')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x506e30,_0x5afebe);_0x5ac95b(_0x5afebe);});});}exports[_0xe5d4('0x15')]=function(_0x25ba26){var _0x2a853e=this;return new Promise(function(_0x376ebf,_0x5031ae){return db[_0xe5d4('0x16')][_0xe5d4('0x17')]({'raw':!![],'where':{'ContactId':_0x25ba26[_0xe5d4('0x18')][_0xe5d4('0x19')],'ListId':_0x25ba26[_0xe5d4('0x18')]['ListId'],'VoiceQueueId':_0x25ba26[_0xe5d4('0x18')][_0xe5d4('0x1a')]===undefined?null:_0x25ba26['body'][_0xe5d4('0x1a')],'CampaignId':_0x25ba26[_0xe5d4('0x18')][_0xe5d4('0x1b')]===undefined?null:_0x25ba26[_0xe5d4('0x18')][_0xe5d4('0x1b')]}})['then'](function(_0x1959ff){if(_0x1959ff!=null){return db['CmHopperAdditionalPhone'][_0xe5d4('0x17')]({'raw':!![],'where':{'CmHopperId':_0x1959ff['id'],'OrderBy':{'$gt':_0x1959ff[_0xe5d4('0x1c')]}},'order':[[_0xe5d4('0x1c'),'ASC']]})['then'](function(_0x4361e8){var _0x5c1f9d=0x0;if(_0x4361e8){if(_0x4361e8[_0xe5d4('0x1d')]+_0x4361e8['countcongestionretry']+_0x4361e8[_0xe5d4('0x1e')]+_0x4361e8[_0xe5d4('0x1f')]+_0x4361e8[_0xe5d4('0x20')]+_0x4361e8['countabandonedretry']+_0x4361e8[_0xe5d4('0x21')]+_0x4361e8[_0xe5d4('0x22')]<_0x25ba26[_0xe5d4('0x23')][_0xe5d4('0x24')])_0x5c1f9d=0x1;_0x376ebf({'additional':_0x5c1f9d});}else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x1959ff['id']},'order':[[_0xe5d4('0x1c'),_0xe5d4('0x25')]]})[_0xe5d4('0x26')](function(_0x4f48e5){var _0xaaea67=0x0;if(_0x4f48e5){if(_0x4f48e5[_0xe5d4('0x1d')]+_0x4f48e5[_0xe5d4('0x27')]+_0x4f48e5[_0xe5d4('0x1e')]+_0x4f48e5['countnosuchnumberretry']+_0x4f48e5[_0xe5d4('0x20')]+_0x4f48e5[_0xe5d4('0x28')]+_0x4f48e5[_0xe5d4('0x21')]+_0x4f48e5[_0xe5d4('0x22')]<_0x25ba26['entity'][_0xe5d4('0x24')])_0xaaea67=0x1;_0x376ebf({'additional':_0xaaea67});}else{_0x376ebf({'additional':0x0});}})['catch'](function(_0x1859ef){logger[_0xe5d4('0xf')](_0xe5d4('0x15'),_0x1859ef['message']);_0x5031ae(_0x2a853e[_0xe5d4('0xf')](0x1f4,_0x1859ef['message']));});}})[_0xe5d4('0x14')](function(_0x1ebcb){logger[_0xe5d4('0xf')](_0xe5d4('0x15'),_0x1ebcb[_0xe5d4('0x11')]);_0x5031ae(_0x2a853e[_0xe5d4('0xf')](0x1f4,_0x1ebcb['message']));});}else _0x376ebf({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x5e4d36){var _0x396a2c=this;return new Promise(function(_0x47f4b1,_0x4c0829){return db[_0xe5d4('0x16')][_0xe5d4('0x17')]({'raw':!![],'where':{'ContactId':_0x5e4d36[_0xe5d4('0x18')][_0xe5d4('0x19')],'ListId':_0x5e4d36[_0xe5d4('0x18')][_0xe5d4('0x29')],'VoiceQueueId':_0x5e4d36[_0xe5d4('0x18')][_0xe5d4('0x1a')]===undefined?null:_0x5e4d36[_0xe5d4('0x18')]['VoiceQueueId'],'CampaignId':_0x5e4d36[_0xe5d4('0x18')]['CampaignId']===undefined?null:_0x5e4d36[_0xe5d4('0x18')]['CampaignId']}})[_0xe5d4('0x26')](function(_0x583ba4){if(_0x583ba4!=null){return db[_0xe5d4('0x2a')][_0xe5d4('0x17')]({'raw':!![],'where':{'CmHopperId':_0x583ba4['id'],'OrderBy':{'$gte':_0x583ba4[_0xe5d4('0x1c')]}},'order':[[_0xe5d4('0x1c'),_0xe5d4('0x25')]]})[_0xe5d4('0x26')](function(_0x35c93e){if(_0x35c93e)return activateAdditionalPhone(_0x583ba4,_0x5e4d36[_0xe5d4('0x18')],_0x35c93e,_0x5e4d36[_0xe5d4('0x2b')],_0x5e4d36[_0xe5d4('0x2c')])[_0xe5d4('0x26')](function(_0x57d461){_0x47f4b1(_0x57d461);});else{return db[_0xe5d4('0x2a')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x583ba4['id']},'order':[['OrderBy','ASC']]})[_0xe5d4('0x26')](function(_0x8018ce){if(_0x8018ce)return activateAdditionalPhone(_0x583ba4,_0x5e4d36['body'],_0x8018ce,_0x5e4d36[_0xe5d4('0x2b')],_0x5e4d36['waitTime'])[_0xe5d4('0x26')](function(_0x2944a5){_0x47f4b1(_0x2944a5);});else{_0x47f4b1({'id':_0x583ba4['id'],'phone':''});}})[_0xe5d4('0x14')](function(_0x537aa8){logger[_0xe5d4('0xf')](_0xe5d4('0x15'),_0x537aa8[_0xe5d4('0x11')]);_0x4c0829(_0x396a2c['error'](0x1f4,_0x537aa8['message']));});}})['catch'](function(_0x395898){logger[_0xe5d4('0xf')](_0xe5d4('0x15'),_0x395898[_0xe5d4('0x11')]);_0x4c0829(_0x396a2c[_0xe5d4('0xf')](0x1f4,_0x395898['message']));});}else _0x47f4b1(0x1);});});};function activateAdditionalPhone(_0x319471,_0x3936ec,_0x571704,_0x3888c6,_0x32d1eb){return new Promise(function(_0x52d856,_0x1c1005){var _0x20bf90;if(_['isNil'](_0x571704['scheduledat'])){_0x571704[_0xe5d4('0x2d')]=moment();}if(moment()>moment(_0x571704[_0xe5d4('0x2d')])){_0x20bf90=moment()[_0xe5d4('0x2e')](_0x32d1eb||0x3,_0xe5d4('0x2f'));}else{if(_0x571704[_0xe5d4('0x1c')]==0x0){_0x20bf90=moment(_0x571704[_0xe5d4('0x2d')]);}else{_0x20bf90=moment()[_0xe5d4('0x2e')](_0x32d1eb||0x3,_0xe5d4('0x2f'));}}if(_[_0xe5d4('0x30')](_0x20bf90)){_0x20bf90=moment()[_0xe5d4('0x2e')](_0x32d1eb||0x3,_0xe5d4('0x2f'));}var _0xedfc4c={'phone':_0x319471[_0xe5d4('0x31')],'active':0x0,'OrderBy':_[_0xe5d4('0x30')](_0x319471[_0xe5d4('0x1c')])?0x0:_0x319471[_0xe5d4('0x1c')],'scheduledat':moment()[_0xe5d4('0x2e')](_0x3888c6||0x1,_0xe5d4('0x2f')),'countbusyretry':_0x3936ec[_0xe5d4('0x1d')],'countcongestionretry':_0x3936ec[_0xe5d4('0x27')],'countnoanswerretry':_0x3936ec['countnoanswerretry'],'countnosuchnumberretry':_0x3936ec[_0xe5d4('0x1f')],'countdropretry':_0x3936ec[_0xe5d4('0x20')],'countabandonedretry':_0x3936ec['countabandonedretry'],'countmachineretry':_0x3936ec['countmachineretry'],'countagentrejectretry':_0x3936ec[_0xe5d4('0x22')],'createdAt':_0x3936ec[_0xe5d4('0x32')],'updatedAt':_0x3936ec[_0xe5d4('0x33')]};var _0x410688={'CmHopperId':_0x319471['id'],'phone':_0x571704['phone'],'active':0x0,'OrderBy':_[_0xe5d4('0x30')](_0x571704[_0xe5d4('0x1c')])?0x0:_0x571704[_0xe5d4('0x1c')],'scheduledat':_0x20bf90,'countbusyretry':_0x571704['countbusyretry'],'countcongestionretry':_0x571704['countcongestionretry'],'countnoanswerretry':_0x571704[_0xe5d4('0x1e')],'countnosuchnumberretry':_0x571704['countnosuchnumberretry'],'countdropretry':_0x571704[_0xe5d4('0x20')],'countabandonedretry':_0x571704[_0xe5d4('0x28')],'countmachineretry':_0x571704['countmachineretry'],'countagentrejectretry':_0x571704['countagentrejectretry'],'createdAt':_0x571704[_0xe5d4('0x32')],'updatedAt':_0x571704['updatedAt']};return db[_0xe5d4('0x34')][_0xe5d4('0x35')](function(_0xbd7edf){return db['CmHopperAdditionalPhone'][_0xe5d4('0x36')](_0xedfc4c,{'where':{'id':_0x571704['id']}},{'transaction':_0xbd7edf})[_0xe5d4('0x26')](function(){return db[_0xe5d4('0x16')][_0xe5d4('0x36')](_0x410688,{'where':{'id':_0x319471['id']}},{'transaction':_0xbd7edf});});})[_0xe5d4('0x26')](function(_0x39d21a){_0x52d856({'id':_0x319471['id'],'phone':_0x571704[_0xe5d4('0x31')]});})[_0xe5d4('0x14')](function(_0x13049a){logger['error'](_0xe5d4('0x37'),_0x13049a[_0xe5d4('0x11')]);_0x1c1005({'error':_0x13049a[_0xe5d4('0x11')]});});});}exports[_0xe5d4('0x38')]=function(_0x2091ac){var _0x43792d=this;return new Promise(function(_0x14b161,_0x27f4cb){return db['CmHopper'][_0xe5d4('0x36')](_0x2091ac['body']['field'],{'where':{'id':_0x2091ac[_0xe5d4('0x18')]['id']}})[_0xe5d4('0x26')](function(_0x56b8eb){_0x14b161(_0x56b8eb);})[_0xe5d4('0x14')](function(_0x3d4faa){logger[_0xe5d4('0xf')](_0xe5d4('0x38'),_0x3d4faa[_0xe5d4('0x11')]);_0x27f4cb(_0x43792d[_0xe5d4('0xf')](0x1f4,_0x3d4faa['message']));});});};