Built motion from commit 25580385.|2.6.2
[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 _0x3a49=['http','then','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','message','CmHopperAdditionalPhone,\x20%s,\x20%s','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','OrderBy','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','ASC','SwapAdditionalPhones','duration','waitTime','scheduledat','add','minutes','isNil','phone','createdAt','transaction','update','IncrementPreviewCounters','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','client'];(function(_0x300768,_0x515b0c){var _0x27bb75=function(_0x3b25c7){while(--_0x3b25c7){_0x300768['push'](_0x300768['shift']());}};_0x27bb75(++_0x515b0c);}(_0x3a49,0x1a0));var _0x93a4=function(_0x3920e7,_0x5a18af){_0x3920e7=_0x3920e7-0x0;var _0x16cf02=_0x3a49[_0x3920e7];return _0x16cf02;};'use strict';var _=require(_0x93a4('0x0'));var util=require(_0x93a4('0x1'));var moment=require('moment');var BPromise=require(_0x93a4('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x93a4('0x3'))['db'];var utils=require(_0x93a4('0x4'));var logger=require(_0x93a4('0x5'))(_0x93a4('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x93a4('0x7')][_0x93a4('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5a0783,_0x57ec05,_0x2e8f54){return new BPromise(function(_0x51d671,_0x2dca9c){return client['request'](_0x5a0783,_0x2e8f54)[_0x93a4('0x9')](function(_0x297804){logger['info']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x57ec05,_0x93a4('0xa'));logger[_0x93a4('0xb')](_0x93a4('0xc'),_0x57ec05,'request\x20sent',JSON[_0x93a4('0xd')](_0x297804));if(_0x297804['error']){if(_0x297804[_0x93a4('0xe')][_0x93a4('0xf')]===0x1f4){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x57ec05,_0x297804['error'][_0x93a4('0x10')]);return _0x2dca9c(_0x297804[_0x93a4('0xe')]['message']);}logger[_0x93a4('0xe')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x57ec05,_0x297804[_0x93a4('0xe')][_0x93a4('0x10')]);return _0x51d671(_0x297804[_0x93a4('0xe')][_0x93a4('0x10')]);}else{logger['info'](_0x93a4('0x11'),_0x57ec05,_0x93a4('0xa'));_0x51d671(_0x297804[_0x93a4('0x12')][_0x93a4('0x10')]);}})[_0x93a4('0x13')](function(_0x14811a){logger[_0x93a4('0xe')](_0x93a4('0x11'),_0x57ec05,_0x14811a);_0x2dca9c(_0x14811a);});});}exports[_0x93a4('0x14')]=function(_0x41413b){var _0x1c7aac=this;return new Promise(function(_0x34af01,_0x37786b){return db[_0x93a4('0x15')][_0x93a4('0x16')]({'raw':!![],'where':{'ContactId':_0x41413b[_0x93a4('0x17')][_0x93a4('0x18')],'ListId':_0x41413b['body'][_0x93a4('0x19')],'VoiceQueueId':_0x41413b[_0x93a4('0x17')][_0x93a4('0x1a')]===undefined?null:_0x41413b[_0x93a4('0x17')][_0x93a4('0x1a')],'CampaignId':_0x41413b[_0x93a4('0x17')][_0x93a4('0x1b')]===undefined?null:_0x41413b[_0x93a4('0x17')]['CampaignId']}})[_0x93a4('0x9')](function(_0x406790){if(_0x406790!=null){return db['CmHopperAdditionalPhone'][_0x93a4('0x16')]({'raw':!![],'where':{'CmHopperId':_0x406790['id'],'OrderBy':{'$gt':_0x406790[_0x93a4('0x1c')]}},'order':[[_0x93a4('0x1c'),'ASC']]})[_0x93a4('0x9')](function(_0x41aaba){var _0xd9b7ff=0x0;if(_0x41aaba){if(_0x41aaba[_0x93a4('0x1d')]+_0x41aaba[_0x93a4('0x1e')]+_0x41aaba[_0x93a4('0x1f')]+_0x41aaba[_0x93a4('0x20')]+_0x41aaba[_0x93a4('0x21')]+_0x41aaba[_0x93a4('0x22')]+_0x41aaba[_0x93a4('0x23')]+_0x41aaba[_0x93a4('0x24')]<_0x41413b[_0x93a4('0x25')][_0x93a4('0x26')])_0xd9b7ff=0x1;_0x34af01({'additional':_0xd9b7ff});}else{return db[_0x93a4('0x27')][_0x93a4('0x16')]({'raw':!![],'where':{'CmHopperId':_0x406790['id']},'order':[[_0x93a4('0x1c'),_0x93a4('0x28')]]})['then'](function(_0x2da8f4){var _0x40683a=0x0;if(_0x2da8f4){if(_0x2da8f4[_0x93a4('0x1d')]+_0x2da8f4['countcongestionretry']+_0x2da8f4[_0x93a4('0x1f')]+_0x2da8f4[_0x93a4('0x20')]+_0x2da8f4[_0x93a4('0x21')]+_0x2da8f4[_0x93a4('0x22')]+_0x2da8f4[_0x93a4('0x23')]+_0x2da8f4[_0x93a4('0x24')]<_0x41413b[_0x93a4('0x25')]['dialGlobalMaxRetry'])_0x40683a=0x1;_0x34af01({'additional':_0x40683a});}else{_0x34af01({'additional':0x0});}})[_0x93a4('0x13')](function(_0x156bf5){logger[_0x93a4('0xe')](_0x93a4('0x14'),_0x156bf5[_0x93a4('0x10')]);_0x37786b(_0x1c7aac[_0x93a4('0xe')](0x1f4,_0x156bf5[_0x93a4('0x10')]));});}})[_0x93a4('0x13')](function(_0x5c493a){logger[_0x93a4('0xe')]('VerifyAdditionalPhones',_0x5c493a[_0x93a4('0x10')]);_0x37786b(_0x1c7aac[_0x93a4('0xe')](0x1f4,_0x5c493a['message']));});}else _0x34af01({'additional':0x0});});});};exports[_0x93a4('0x29')]=function(_0x165642){var _0x46e6c9=this;return new Promise(function(_0x1604c4,_0x18cb47){return db[_0x93a4('0x15')][_0x93a4('0x16')]({'raw':!![],'where':{'ContactId':_0x165642[_0x93a4('0x17')][_0x93a4('0x18')],'ListId':_0x165642[_0x93a4('0x17')][_0x93a4('0x19')],'VoiceQueueId':_0x165642[_0x93a4('0x17')][_0x93a4('0x1a')]===undefined?null:_0x165642[_0x93a4('0x17')][_0x93a4('0x1a')],'CampaignId':_0x165642[_0x93a4('0x17')][_0x93a4('0x1b')]===undefined?null:_0x165642[_0x93a4('0x17')]['CampaignId']}})[_0x93a4('0x9')](function(_0x1dbf67){if(_0x1dbf67!=null){return db[_0x93a4('0x27')][_0x93a4('0x16')]({'raw':!![],'where':{'CmHopperId':_0x1dbf67['id'],'OrderBy':{'$gte':_0x1dbf67['OrderBy']}},'order':[[_0x93a4('0x1c'),_0x93a4('0x28')]]})['then'](function(_0x3dd1e7){if(_0x3dd1e7)return activateAdditionalPhone(_0x1dbf67,_0x165642[_0x93a4('0x17')],_0x3dd1e7,_0x165642[_0x93a4('0x2a')],_0x165642[_0x93a4('0x2b')])[_0x93a4('0x9')](function(_0x427200){_0x1604c4(_0x427200);});else{return db[_0x93a4('0x27')][_0x93a4('0x16')]({'raw':!![],'where':{'CmHopperId':_0x1dbf67['id']},'order':[[_0x93a4('0x1c'),_0x93a4('0x28')]]})['then'](function(_0x2cc287){if(_0x2cc287)return activateAdditionalPhone(_0x1dbf67,_0x165642[_0x93a4('0x17')],_0x2cc287,_0x165642['duration'],_0x165642[_0x93a4('0x2b')])[_0x93a4('0x9')](function(_0x2b35eb){_0x1604c4(_0x2b35eb);});else{_0x1604c4({'id':_0x1dbf67['id'],'phone':''});}})['catch'](function(_0x31c20f){logger[_0x93a4('0xe')](_0x93a4('0x14'),_0x31c20f[_0x93a4('0x10')]);_0x18cb47(_0x46e6c9['error'](0x1f4,_0x31c20f['message']));});}})[_0x93a4('0x13')](function(_0x205df6){logger[_0x93a4('0xe')](_0x93a4('0x14'),_0x205df6[_0x93a4('0x10')]);_0x18cb47(_0x46e6c9[_0x93a4('0xe')](0x1f4,_0x205df6['message']));});}else _0x1604c4(0x1);});});};function activateAdditionalPhone(_0x5e799b,_0x2030a3,_0x3039cc,_0x303491,_0xb9d96d){return new Promise(function(_0x4416e9,_0x2689a4){var _0xb580f7;if(_['isNil'](_0x3039cc[_0x93a4('0x2c')])){_0x3039cc[_0x93a4('0x2c')]=moment();}if(moment()>moment(_0x3039cc[_0x93a4('0x2c')])){_0xb580f7=moment()[_0x93a4('0x2d')](_0xb9d96d||0x3,_0x93a4('0x2e'));}else{if(_0x3039cc[_0x93a4('0x1c')]==0x0){_0xb580f7=moment(_0x3039cc[_0x93a4('0x2c')]);}else{_0xb580f7=moment()[_0x93a4('0x2d')](_0xb9d96d||0x3,_0x93a4('0x2e'));}}if(_[_0x93a4('0x2f')](_0xb580f7)){_0xb580f7=moment()['add'](_0xb9d96d||0x3,_0x93a4('0x2e'));}var _0x5b87e2={'phone':_0x5e799b[_0x93a4('0x30')],'active':0x0,'OrderBy':_[_0x93a4('0x2f')](_0x5e799b[_0x93a4('0x1c')])?0x0:_0x5e799b[_0x93a4('0x1c')],'scheduledat':moment()[_0x93a4('0x2d')](_0x303491||0x1,_0x93a4('0x2e')),'countbusyretry':_0x2030a3['countbusyretry'],'countcongestionretry':_0x2030a3[_0x93a4('0x1e')],'countnoanswerretry':_0x2030a3[_0x93a4('0x1f')],'countnosuchnumberretry':_0x2030a3[_0x93a4('0x20')],'countdropretry':_0x2030a3['countdropretry'],'countabandonedretry':_0x2030a3['countabandonedretry'],'countmachineretry':_0x2030a3[_0x93a4('0x23')],'countagentrejectretry':_0x2030a3[_0x93a4('0x24')],'createdAt':_0x2030a3['createdAt'],'updatedAt':_0x2030a3['updatedAt']};var _0x218e19={'CmHopperId':_0x5e799b['id'],'phone':_0x3039cc['phone'],'active':0x0,'OrderBy':_[_0x93a4('0x2f')](_0x3039cc[_0x93a4('0x1c')])?0x0:_0x3039cc[_0x93a4('0x1c')],'scheduledat':_0xb580f7,'countbusyretry':_0x3039cc[_0x93a4('0x1d')],'countcongestionretry':_0x3039cc[_0x93a4('0x1e')],'countnoanswerretry':_0x3039cc[_0x93a4('0x1f')],'countnosuchnumberretry':_0x3039cc[_0x93a4('0x20')],'countdropretry':_0x3039cc[_0x93a4('0x21')],'countabandonedretry':_0x3039cc[_0x93a4('0x22')],'countmachineretry':_0x3039cc[_0x93a4('0x23')],'countagentrejectretry':_0x3039cc['countagentrejectretry'],'createdAt':_0x3039cc[_0x93a4('0x31')],'updatedAt':_0x3039cc['updatedAt']};return db['sequelize'][_0x93a4('0x32')](function(_0x1cdafa){return db[_0x93a4('0x27')]['update'](_0x5b87e2,{'where':{'id':_0x3039cc['id']}},{'transaction':_0x1cdafa})['then'](function(){return db[_0x93a4('0x15')][_0x93a4('0x33')](_0x218e19,{'where':{'id':_0x5e799b['id']}},{'transaction':_0x1cdafa});});})[_0x93a4('0x9')](function(_0x5e32b7){_0x4416e9({'id':_0x5e799b['id'],'phone':_0x3039cc['phone']});})[_0x93a4('0x13')](function(_0x5c1313){logger[_0x93a4('0xe')]('activateAdditionalPhone',_0x5c1313[_0x93a4('0x10')]);_0x2689a4({'error':_0x5c1313[_0x93a4('0x10')]});});});}exports[_0x93a4('0x34')]=function(_0x1fdec){var _0x1340ad=this;return new Promise(function(_0x4d73b1,_0x99e616){return db[_0x93a4('0x15')][_0x93a4('0x33')](_0x1fdec[_0x93a4('0x17')]['field'],{'where':{'id':_0x1fdec[_0x93a4('0x17')]['id']}})[_0x93a4('0x9')](function(_0x26628c){_0x4d73b1(_0x26628c);})[_0x93a4('0x13')](function(_0x317dec){logger[_0x93a4('0xe')](_0x93a4('0x34'),_0x317dec['message']);_0x99e616(_0x1340ad[_0x93a4('0xe')](0x1f4,_0x317dec['message']));});});};