bf330f19c5c160378b993830671b13f14e94bb8a
[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 _0x500b=['CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','OrderBy','ASC','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','countabandonedretry','SwapAdditionalPhones','duration','waitTime','scheduledat','add','minutes','isNil','phone','countbusyretry','createdAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x21141c,_0xed9815){var _0x2addaf=function(_0x53dcd6){while(--_0x53dcd6){_0x21141c['push'](_0x21141c['shift']());}};_0x2addaf(++_0xed9815);}(_0x500b,0xa2));var _0xb500=function(_0x21cc4e,_0x24a7ac){_0x21cc4e=_0x21cc4e-0x0;var _0x3b7125=_0x500b[_0x21cc4e];return _0x3b7125;};'use strict';var _=require('lodash');var util=require(_0xb500('0x0'));var moment=require(_0xb500('0x1'));var BPromise=require(_0xb500('0x2'));var rs=require(_0xb500('0x3'));var fs=require('fs');var Redis=require(_0xb500('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xb500('0x5'));var logger=require(_0xb500('0x6'))(_0xb500('0x7'));var config=require(_0xb500('0x8'));var jayson=require(_0xb500('0x9'));var client=jayson[_0xb500('0xa')][_0xb500('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xa03a1a,_0x5b445c,_0x7652e){return new BPromise(function(_0x3b877c,_0x109ad6){return client[_0xb500('0xc')](_0xa03a1a,_0x7652e)[_0xb500('0xd')](function(_0x1c1e67){logger[_0xb500('0xe')](_0xb500('0xf'),_0x5b445c,_0xb500('0x10'));logger[_0xb500('0x11')](_0xb500('0x12'),_0x5b445c,_0xb500('0x10'),JSON[_0xb500('0x13')](_0x1c1e67));if(_0x1c1e67['error']){if(_0x1c1e67[_0xb500('0x14')][_0xb500('0x15')]===0x1f4){logger[_0xb500('0x14')](_0xb500('0xf'),_0x5b445c,_0x1c1e67['error'][_0xb500('0x16')]);return _0x109ad6(_0x1c1e67[_0xb500('0x14')][_0xb500('0x16')]);}logger[_0xb500('0x14')](_0xb500('0xf'),_0x5b445c,_0x1c1e67[_0xb500('0x14')][_0xb500('0x16')]);return _0x3b877c(_0x1c1e67['error'][_0xb500('0x16')]);}else{logger[_0xb500('0xe')](_0xb500('0xf'),_0x5b445c,_0xb500('0x10'));_0x3b877c(_0x1c1e67[_0xb500('0x17')][_0xb500('0x16')]);}})[_0xb500('0x18')](function(_0x37bf34){logger[_0xb500('0x14')](_0xb500('0xf'),_0x5b445c,_0x37bf34);_0x109ad6(_0x37bf34);});});}exports[_0xb500('0x19')]=function(_0x3871b2){var _0x358086=this;return new Promise(function(_0x37b1d9,_0x1cc04f){return db[_0xb500('0x1a')][_0xb500('0x1b')]({'raw':!![],'where':{'ContactId':_0x3871b2[_0xb500('0x1c')][_0xb500('0x1d')],'ListId':_0x3871b2[_0xb500('0x1c')][_0xb500('0x1e')],'VoiceQueueId':_0x3871b2['body']['VoiceQueueId']===undefined?null:_0x3871b2[_0xb500('0x1c')][_0xb500('0x1f')],'CampaignId':_0x3871b2[_0xb500('0x1c')][_0xb500('0x20')]===undefined?null:_0x3871b2[_0xb500('0x1c')][_0xb500('0x20')]}})[_0xb500('0xd')](function(_0x44e496){if(_0x44e496!=null){return db['CmHopperAdditionalPhone'][_0xb500('0x1b')]({'raw':!![],'where':{'CmHopperId':_0x44e496['id'],'OrderBy':{'$gt':_0x44e496['OrderBy']}},'order':[[_0xb500('0x21'),_0xb500('0x22')]]})['then'](function(_0xdefc2){var _0x3360f4=0x0;if(_0xdefc2){if(_0xdefc2['countbusyretry']+_0xdefc2[_0xb500('0x23')]+_0xdefc2[_0xb500('0x24')]+_0xdefc2[_0xb500('0x25')]+_0xdefc2[_0xb500('0x26')]+_0xdefc2['countabandonedretry']+_0xdefc2[_0xb500('0x27')]+_0xdefc2[_0xb500('0x28')]<_0x3871b2[_0xb500('0x29')][_0xb500('0x2a')])_0x3360f4=0x1;_0x37b1d9({'additional':_0x3360f4});}else{return db[_0xb500('0x2b')][_0xb500('0x1b')]({'raw':!![],'where':{'CmHopperId':_0x44e496['id']},'order':[[_0xb500('0x21'),_0xb500('0x22')]]})[_0xb500('0xd')](function(_0x49bc13){var _0x1c4023=0x0;if(_0x49bc13){if(_0x49bc13['countbusyretry']+_0x49bc13['countcongestionretry']+_0x49bc13[_0xb500('0x24')]+_0x49bc13[_0xb500('0x25')]+_0x49bc13[_0xb500('0x26')]+_0x49bc13[_0xb500('0x2c')]+_0x49bc13[_0xb500('0x27')]+_0x49bc13[_0xb500('0x28')]<_0x3871b2[_0xb500('0x29')]['dialGlobalMaxRetry'])_0x1c4023=0x1;_0x37b1d9({'additional':_0x1c4023});}else{_0x37b1d9({'additional':0x0});}})['catch'](function(_0x36a2f0){logger['error'](_0xb500('0x19'),_0x36a2f0['message']);_0x1cc04f(_0x358086[_0xb500('0x14')](0x1f4,_0x36a2f0[_0xb500('0x16')]));});}})[_0xb500('0x18')](function(_0x238ec6){logger[_0xb500('0x14')](_0xb500('0x19'),_0x238ec6[_0xb500('0x16')]);_0x1cc04f(_0x358086['error'](0x1f4,_0x238ec6[_0xb500('0x16')]));});}else _0x37b1d9({'additional':0x0});});});};exports[_0xb500('0x2d')]=function(_0x37b661){var _0x560611=this;return new Promise(function(_0x2d7a91,_0x4549e5){return db[_0xb500('0x1a')][_0xb500('0x1b')]({'raw':!![],'where':{'ContactId':_0x37b661[_0xb500('0x1c')]['ContactId'],'ListId':_0x37b661['body'][_0xb500('0x1e')],'VoiceQueueId':_0x37b661[_0xb500('0x1c')][_0xb500('0x1f')]===undefined?null:_0x37b661['body']['VoiceQueueId'],'CampaignId':_0x37b661[_0xb500('0x1c')]['CampaignId']===undefined?null:_0x37b661[_0xb500('0x1c')][_0xb500('0x20')]}})[_0xb500('0xd')](function(_0x36459b){if(_0x36459b!=null){return db[_0xb500('0x2b')][_0xb500('0x1b')]({'raw':!![],'where':{'CmHopperId':_0x36459b['id'],'OrderBy':{'$gte':_0x36459b[_0xb500('0x21')]}},'order':[[_0xb500('0x21'),_0xb500('0x22')]]})['then'](function(_0x46dac4){if(_0x46dac4)return activateAdditionalPhone(_0x36459b,_0x37b661[_0xb500('0x1c')],_0x46dac4,_0x37b661[_0xb500('0x2e')],_0x37b661[_0xb500('0x2f')])[_0xb500('0xd')](function(_0x554e38){_0x2d7a91(_0x554e38);});else{return db[_0xb500('0x2b')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x36459b['id']},'order':[[_0xb500('0x21'),_0xb500('0x22')]]})['then'](function(_0x638183){if(_0x638183)return activateAdditionalPhone(_0x36459b,_0x37b661['body'],_0x638183,_0x37b661['duration'],_0x37b661['waitTime'])[_0xb500('0xd')](function(_0x29b1f6){_0x2d7a91(_0x29b1f6);});else{_0x2d7a91({'id':_0x36459b['id'],'phone':''});}})['catch'](function(_0x3402a9){logger[_0xb500('0x14')]('VerifyAdditionalPhones',_0x3402a9['message']);_0x4549e5(_0x560611[_0xb500('0x14')](0x1f4,_0x3402a9[_0xb500('0x16')]));});}})[_0xb500('0x18')](function(_0x548987){logger[_0xb500('0x14')]('VerifyAdditionalPhones',_0x548987['message']);_0x4549e5(_0x560611[_0xb500('0x14')](0x1f4,_0x548987['message']));});}else _0x2d7a91(0x1);});});};function activateAdditionalPhone(_0x8b61ea,_0x4e99f1,_0x16bb2d,_0xe0b54a,_0x106603){return new Promise(function(_0xc54737,_0x306b3e){var _0x6155e6;if(_['isNil'](_0x16bb2d[_0xb500('0x30')])){_0x16bb2d[_0xb500('0x30')]=moment();}if(moment()>moment(_0x16bb2d['scheduledat'])){_0x6155e6=moment()[_0xb500('0x31')](_0x106603||0x3,'minutes');}else{if(_0x16bb2d['OrderBy']==0x0){_0x6155e6=moment(_0x16bb2d['scheduledat']);}else{_0x6155e6=moment()['add'](_0x106603||0x3,_0xb500('0x32'));}}if(_[_0xb500('0x33')](_0x6155e6)){_0x6155e6=moment()[_0xb500('0x31')](_0x106603||0x3,_0xb500('0x32'));}var _0x50c5c4={'phone':_0x8b61ea[_0xb500('0x34')],'active':0x0,'OrderBy':_[_0xb500('0x33')](_0x8b61ea[_0xb500('0x21')])?0x0:_0x8b61ea[_0xb500('0x21')],'scheduledat':moment()[_0xb500('0x31')](_0xe0b54a||0x1,'minutes'),'countbusyretry':_0x4e99f1[_0xb500('0x35')],'countcongestionretry':_0x4e99f1[_0xb500('0x23')],'countnoanswerretry':_0x4e99f1[_0xb500('0x24')],'countnosuchnumberretry':_0x4e99f1[_0xb500('0x25')],'countdropretry':_0x4e99f1['countdropretry'],'countabandonedretry':_0x4e99f1[_0xb500('0x2c')],'countmachineretry':_0x4e99f1[_0xb500('0x27')],'countagentrejectretry':_0x4e99f1['countagentrejectretry'],'createdAt':_0x4e99f1[_0xb500('0x36')],'updatedAt':_0x4e99f1['updatedAt']};var _0x1c5cbf={'CmHopperId':_0x8b61ea['id'],'phone':_0x16bb2d[_0xb500('0x34')],'active':0x0,'OrderBy':_[_0xb500('0x33')](_0x16bb2d[_0xb500('0x21')])?0x0:_0x16bb2d[_0xb500('0x21')],'scheduledat':_0x6155e6,'countbusyretry':_0x16bb2d[_0xb500('0x35')],'countcongestionretry':_0x16bb2d['countcongestionretry'],'countnoanswerretry':_0x16bb2d[_0xb500('0x24')],'countnosuchnumberretry':_0x16bb2d[_0xb500('0x25')],'countdropretry':_0x16bb2d[_0xb500('0x26')],'countabandonedretry':_0x16bb2d[_0xb500('0x2c')],'countmachineretry':_0x16bb2d['countmachineretry'],'countagentrejectretry':_0x16bb2d['countagentrejectretry'],'createdAt':_0x16bb2d[_0xb500('0x36')],'updatedAt':_0x16bb2d['updatedAt']};return db[_0xb500('0x37')][_0xb500('0x38')](function(_0x5388c7){return db[_0xb500('0x2b')][_0xb500('0x39')](_0x50c5c4,{'where':{'id':_0x16bb2d['id']}},{'transaction':_0x5388c7})['then'](function(){return db[_0xb500('0x1a')]['update'](_0x1c5cbf,{'where':{'id':_0x8b61ea['id']}},{'transaction':_0x5388c7});});})[_0xb500('0xd')](function(_0x229b1b){_0xc54737({'id':_0x8b61ea['id'],'phone':_0x16bb2d[_0xb500('0x34')]});})[_0xb500('0x18')](function(_0x4fcf31){logger[_0xb500('0x14')](_0xb500('0x3a'),_0x4fcf31[_0xb500('0x16')]);_0x306b3e({'error':_0x4fcf31['message']});});});}exports[_0xb500('0x3b')]=function(_0x2fa92a){var _0x165ad6=this;return new Promise(function(_0x526a90,_0x1ba48a){return db[_0xb500('0x1a')][_0xb500('0x39')](_0x2fa92a[_0xb500('0x1c')]['field'],{'where':{'id':_0x2fa92a[_0xb500('0x1c')]['id']}})[_0xb500('0xd')](function(_0x48ade0){_0x526a90(_0x48ade0);})[_0xb500('0x18')](function(_0xf644eb){logger['error'](_0xb500('0x3b'),_0xf644eb['message']);_0x1ba48a(_0x165ad6[_0xb500('0x14')](0x1f4,_0xf644eb[_0xb500('0x16')]));});});};