418af3a58f3fa0915d992ab199fac70456932ae0
[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 _0x7b4a=['../../config/environment','jayson/promise','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','VerifyAdditionalPhones','CmHopper','findOne','ListId','body','CampaignId','CmHopperAdditionalPhone','OrderBy','countbusyretry','countcongestionretry','countnosuchnumberretry','countdropretry','countagentrejectretry','entity','dialGlobalMaxRetry','ASC','countnoanswerretry','countabandonedretry','SwapAdditionalPhones','VoiceQueueId','duration','waitTime','scheduledat','add','minutes','phone','isNil','createdAt','countmachineretry','updatedAt','hopperToAdd','additionalToHop','sequelize','transaction','update','IncrementPreviewCounters','field','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc'];(function(_0x27e80b,_0x53b08d){var _0x2efdcc=function(_0xc7c36b){while(--_0xc7c36b){_0x27e80b['push'](_0x27e80b['shift']());}};_0x2efdcc(++_0x53b08d);}(_0x7b4a,0x120));var _0xa7b4=function(_0x2770a9,_0x3bb210){_0x2770a9=_0x2770a9-0x0;var _0x59d922=_0x7b4a[_0x2770a9];return _0x59d922;};'use strict';var _=require('lodash');var util=require(_0xa7b4('0x0'));var moment=require(_0xa7b4('0x1'));var BPromise=require(_0xa7b4('0x2'));var rs=require(_0xa7b4('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xa7b4('0x4'));var logger=require(_0xa7b4('0x5'))(_0xa7b4('0x6'));var config=require(_0xa7b4('0x7'));var jayson=require(_0xa7b4('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x4ec6eb,_0x1d863f,_0x2efa82){return new BPromise(function(_0x287fc4,_0x36bf74){return client[_0xa7b4('0x9')](_0x4ec6eb,_0x2efa82)[_0xa7b4('0xa')](function(_0x862d39){logger[_0xa7b4('0xb')](_0xa7b4('0xc'),_0x1d863f,'request\x20sent');logger[_0xa7b4('0xd')](_0xa7b4('0xe'),_0x1d863f,_0xa7b4('0xf'),JSON[_0xa7b4('0x10')](_0x862d39));if(_0x862d39['error']){if(_0x862d39[_0xa7b4('0x11')][_0xa7b4('0x12')]===0x1f4){logger[_0xa7b4('0x11')](_0xa7b4('0xc'),_0x1d863f,_0x862d39[_0xa7b4('0x11')][_0xa7b4('0x13')]);return _0x36bf74(_0x862d39[_0xa7b4('0x11')][_0xa7b4('0x13')]);}logger[_0xa7b4('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1d863f,_0x862d39[_0xa7b4('0x11')][_0xa7b4('0x13')]);return _0x287fc4(_0x862d39[_0xa7b4('0x11')]['message']);}else{logger[_0xa7b4('0xb')](_0xa7b4('0xc'),_0x1d863f,'request\x20sent');_0x287fc4(_0x862d39[_0xa7b4('0x14')][_0xa7b4('0x13')]);}})[_0xa7b4('0x15')](function(_0x3d8293){logger[_0xa7b4('0x11')](_0xa7b4('0xc'),_0x1d863f,_0x3d8293);_0x36bf74(_0x3d8293);});});}exports[_0xa7b4('0x16')]=function(_0x4d3010){var _0x4f2e75=this;return new Promise(function(_0x339a93,_0x3432ee){return db[_0xa7b4('0x17')][_0xa7b4('0x18')]({'raw':!![],'where':{'ContactId':_0x4d3010['body']['ContactId'],'ListId':_0x4d3010['body'][_0xa7b4('0x19')],'VoiceQueueId':_0x4d3010[_0xa7b4('0x1a')]['VoiceQueueId']===undefined?null:_0x4d3010[_0xa7b4('0x1a')]['VoiceQueueId'],'CampaignId':_0x4d3010[_0xa7b4('0x1a')][_0xa7b4('0x1b')]===undefined?null:_0x4d3010[_0xa7b4('0x1a')][_0xa7b4('0x1b')]}})['then'](function(_0xd6bd24){if(_0xd6bd24!=null){return db[_0xa7b4('0x1c')][_0xa7b4('0x18')]({'raw':!![],'where':{'CmHopperId':_0xd6bd24['id'],'OrderBy':{'$gt':_0xd6bd24[_0xa7b4('0x1d')]}},'order':[[_0xa7b4('0x1d'),'ASC']]})['then'](function(_0x1efa0){var _0x35dbe3=0x0;if(_0x1efa0){if(_0x1efa0[_0xa7b4('0x1e')]+_0x1efa0[_0xa7b4('0x1f')]+_0x1efa0['countnoanswerretry']+_0x1efa0[_0xa7b4('0x20')]+_0x1efa0[_0xa7b4('0x21')]+_0x1efa0['countabandonedretry']+_0x1efa0['countmachineretry']+_0x1efa0[_0xa7b4('0x22')]<_0x4d3010[_0xa7b4('0x23')][_0xa7b4('0x24')])_0x35dbe3=0x1;_0x339a93({'additional':_0x35dbe3});}else{return db[_0xa7b4('0x1c')][_0xa7b4('0x18')]({'raw':!![],'where':{'CmHopperId':_0xd6bd24['id']},'order':[[_0xa7b4('0x1d'),_0xa7b4('0x25')]]})['then'](function(_0x158711){var _0x5e8c83=0x0;if(_0x158711){if(_0x158711['countbusyretry']+_0x158711['countcongestionretry']+_0x158711[_0xa7b4('0x26')]+_0x158711[_0xa7b4('0x20')]+_0x158711[_0xa7b4('0x21')]+_0x158711[_0xa7b4('0x27')]+_0x158711['countmachineretry']+_0x158711[_0xa7b4('0x22')]<_0x4d3010[_0xa7b4('0x23')][_0xa7b4('0x24')])_0x5e8c83=0x1;_0x339a93({'additional':_0x5e8c83});}else{_0x339a93({'additional':0x0});}})['catch'](function(_0x10f2a3){logger[_0xa7b4('0x11')]('VerifyAdditionalPhones',_0x10f2a3[_0xa7b4('0x13')],_0x4d3010);_0x3432ee(_0x4f2e75[_0xa7b4('0x11')](0x1f4,_0x10f2a3[_0xa7b4('0x13')]));});}})[_0xa7b4('0x15')](function(_0x937e13){logger[_0xa7b4('0x11')](_0xa7b4('0x16'),_0x937e13[_0xa7b4('0x13')],_0x4d3010);_0x3432ee(_0x4f2e75[_0xa7b4('0x11')](0x1f4,_0x937e13[_0xa7b4('0x13')]));});}else _0x339a93({'additional':0x0});});});};exports[_0xa7b4('0x28')]=function(_0x19ae98){var _0x4a3316=this;return new Promise(function(_0x3a4f72,_0x32f50f){return db['CmHopper']['findOne']({'raw':!![],'where':{'ContactId':_0x19ae98[_0xa7b4('0x1a')]['ContactId'],'ListId':_0x19ae98['body']['ListId'],'VoiceQueueId':_0x19ae98['body']['VoiceQueueId']===undefined?null:_0x19ae98[_0xa7b4('0x1a')][_0xa7b4('0x29')],'CampaignId':_0x19ae98[_0xa7b4('0x1a')]['CampaignId']===undefined?null:_0x19ae98[_0xa7b4('0x1a')]['CampaignId']}})[_0xa7b4('0xa')](function(_0x3fb5e5){if(_0x3fb5e5!=null){return db[_0xa7b4('0x1c')][_0xa7b4('0x18')]({'raw':!![],'where':{'CmHopperId':_0x3fb5e5['id'],'OrderBy':{'$gt':_0x3fb5e5[_0xa7b4('0x1d')]}},'order':[[_0xa7b4('0x1d'),_0xa7b4('0x25')]]})[_0xa7b4('0xa')](function(_0x936f83){if(_0x936f83)return activateAdditionalPhone(_0x3fb5e5,_0x19ae98[_0xa7b4('0x1a')],_0x936f83,_0x19ae98[_0xa7b4('0x2a')],_0x19ae98[_0xa7b4('0x2b')])[_0xa7b4('0xa')](function(_0x135067){_0x3a4f72(_0x135067);});else{return db[_0xa7b4('0x1c')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x3fb5e5['id']},'order':[[_0xa7b4('0x1d'),_0xa7b4('0x25')]]})[_0xa7b4('0xa')](function(_0x7738b3){if(_0x7738b3)return activateAdditionalPhone(_0x3fb5e5,_0x19ae98['body'],_0x7738b3,_0x19ae98[_0xa7b4('0x2a')],_0x19ae98['waitTime'])[_0xa7b4('0xa')](function(_0x3199e7){_0x3a4f72(_0x3199e7);});else{_0x3a4f72({'id':_0x3fb5e5['id'],'phone':''});}})[_0xa7b4('0x15')](function(_0x554b7a){logger['error']('VerifyAdditionalPhones',_0x554b7a[_0xa7b4('0x13')],_0x19ae98);_0x32f50f(_0x4a3316[_0xa7b4('0x11')](0x1f4,_0x554b7a[_0xa7b4('0x13')]));});}})[_0xa7b4('0x15')](function(_0x29efe2){logger[_0xa7b4('0x11')](_0xa7b4('0x16'),_0x29efe2[_0xa7b4('0x13')],_0x19ae98);_0x32f50f(_0x4a3316[_0xa7b4('0x11')](0x1f4,_0x29efe2['message']));});}else _0x3a4f72(0x1);});});};function activateAdditionalPhone(_0x45c858,_0x5837f7,_0x21a871,_0x239ddb,_0x27f520){return new Promise(function(_0x400098,_0x2302fb){logger[_0xa7b4('0xb')]('VerifyAdditionalPhones',_0x21a871);var _0x2aae44;if(moment()>moment(_0x21a871[_0xa7b4('0x2c')])){_0x2aae44=moment()[_0xa7b4('0x2d')](_0x27f520||0x3,_0xa7b4('0x2e'));}else{if(_0x21a871['OrderBy']==0x0){_0x2aae44=moment(_0x21a871[_0xa7b4('0x2c')]);}else{_0x2aae44=moment()['add'](_0x27f520||0x3,_0xa7b4('0x2e'));}}var _0x2e2898={'phone':_0x45c858[_0xa7b4('0x2f')],'active':0x0,'OrderBy':_[_0xa7b4('0x30')](_0x45c858[_0xa7b4('0x1d')])?0x0:_0x45c858[_0xa7b4('0x1d')],'scheduledat':moment()[_0xa7b4('0x2d')](_0x239ddb||0x1,'minutes'),'countbusyretry':_0x5837f7[_0xa7b4('0x1e')],'countcongestionretry':_0x5837f7[_0xa7b4('0x1f')],'countnoanswerretry':_0x5837f7['countnoanswerretry'],'countnosuchnumberretry':_0x5837f7[_0xa7b4('0x20')],'countdropretry':_0x5837f7[_0xa7b4('0x21')],'countabandonedretry':_0x5837f7[_0xa7b4('0x27')],'countmachineretry':_0x5837f7['countmachineretry'],'countagentrejectretry':_0x5837f7[_0xa7b4('0x22')],'createdAt':_0x5837f7[_0xa7b4('0x31')],'updatedAt':_0x5837f7['updatedAt']};var _0x191c74={'CmHopperId':_0x45c858['id'],'phone':_0x21a871[_0xa7b4('0x2f')],'active':0x0,'OrderBy':_['isNil'](_0x21a871[_0xa7b4('0x1d')])?0x0:_0x21a871['OrderBy'],'scheduledat':_0x2aae44,'countbusyretry':_0x21a871['countbusyretry'],'countcongestionretry':_0x21a871[_0xa7b4('0x1f')],'countnoanswerretry':_0x21a871['countnoanswerretry'],'countnosuchnumberretry':_0x5837f7[_0xa7b4('0x20')],'countdropretry':_0x5837f7[_0xa7b4('0x21')],'countabandonedretry':_0x5837f7[_0xa7b4('0x27')],'countmachineretry':_0x5837f7[_0xa7b4('0x32')],'countagentrejectretry':_0x5837f7[_0xa7b4('0x22')],'createdAt':_0x21a871[_0xa7b4('0x31')],'updatedAt':_0x21a871[_0xa7b4('0x33')]};logger['info'](_0xa7b4('0x34'),_0x2e2898);logger['info'](_0xa7b4('0x35'),_0x191c74);return db[_0xa7b4('0x36')][_0xa7b4('0x37')](function(_0x595f80){return db[_0xa7b4('0x1c')][_0xa7b4('0x38')](_0x2e2898,{'where':{'id':_0x21a871['id']}},{'transaction':_0x595f80})[_0xa7b4('0xa')](function(){return db[_0xa7b4('0x17')]['update'](_0x191c74,{'where':{'id':_0x45c858['id']}},{'transaction':_0x595f80});});})[_0xa7b4('0xa')](function(_0x1e4250){_0x400098({'id':_0x45c858['id'],'phone':_0x21a871[_0xa7b4('0x2f')]});})[_0xa7b4('0x15')](function(_0x1f28d4){logger[_0xa7b4('0x11')](_0xa7b4('0x16'),_0x1f28d4[_0xa7b4('0x13')],req);_0x2302fb(_this[_0xa7b4('0x11')](0x1f4,_0x1f28d4[_0xa7b4('0x13')]));});});}exports[_0xa7b4('0x39')]=function(_0x343288){var _0x501fc3=this;return new Promise(function(_0x22d521,_0x3ab01a){return db['CmHopper']['update'](_0x343288[_0xa7b4('0x1a')][_0xa7b4('0x3a')],{'where':{'id':_0x343288[_0xa7b4('0x1a')]['id']}})[_0xa7b4('0xa')](function(_0x5dd84b){_0x22d521(_0x5dd84b);})[_0xa7b4('0x15')](function(_0x5ee7fc){logger[_0xa7b4('0x11')](_0xa7b4('0x39'),_0x5ee7fc[_0xa7b4('0x13')],_0x343288);_0x3ab01a(_0x501fc3[_0xa7b4('0x11')](0x1f4,_0x5ee7fc[_0xa7b4('0x13')]));});});};