Built motion from commit e0fa946e.|2.6.5
[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 _0x8588=['message','info','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','OrderBy','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','ASC','countnosuchnumberretry','SwapAdditionalPhones','then','duration','waitTime','scheduledat','add','minutes','isNil','phone','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','request\x20sent','debug','stringify','error','code','CmHopperAdditionalPhone,\x20%s,\x20%s'];(function(_0x3512cf,_0x476137){var _0x2b39d5=function(_0x49c493){while(--_0x49c493){_0x3512cf['push'](_0x3512cf['shift']());}};_0x2b39d5(++_0x476137);}(_0x8588,0x185));var _0x8858=function(_0x157945,_0x5f04d2){_0x157945=_0x157945-0x0;var _0x3f8850=_0x8588[_0x157945];return _0x3f8850;};'use strict';var _=require('lodash');var util=require(_0x8858('0x0'));var moment=require(_0x8858('0x1'));var BPromise=require(_0x8858('0x2'));var rs=require(_0x8858('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8858('0x4'))['db'];var utils=require(_0x8858('0x5'));var logger=require(_0x8858('0x6'))('rpc');var config=require(_0x8858('0x7'));var jayson=require(_0x8858('0x8'));var client=jayson['client'][_0x8858('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3117b3,_0x3df513,_0x5703da){return new BPromise(function(_0x550895,_0x57ed04){return client[_0x8858('0xa')](_0x3117b3,_0x5703da)['then'](function(_0x3ac09b){logger['info']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x3df513,_0x8858('0xb'));logger[_0x8858('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x3df513,'request\x20sent',JSON[_0x8858('0xd')](_0x3ac09b));if(_0x3ac09b[_0x8858('0xe')]){if(_0x3ac09b[_0x8858('0xe')][_0x8858('0xf')]===0x1f4){logger[_0x8858('0xe')](_0x8858('0x10'),_0x3df513,_0x3ac09b[_0x8858('0xe')][_0x8858('0x11')]);return _0x57ed04(_0x3ac09b[_0x8858('0xe')][_0x8858('0x11')]);}logger[_0x8858('0xe')](_0x8858('0x10'),_0x3df513,_0x3ac09b[_0x8858('0xe')][_0x8858('0x11')]);return _0x550895(_0x3ac09b[_0x8858('0xe')]['message']);}else{logger[_0x8858('0x12')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x3df513,_0x8858('0xb'));_0x550895(_0x3ac09b[_0x8858('0x13')][_0x8858('0x11')]);}})[_0x8858('0x14')](function(_0x3f090d){logger[_0x8858('0xe')](_0x8858('0x10'),_0x3df513,_0x3f090d);_0x57ed04(_0x3f090d);});});}exports[_0x8858('0x15')]=function(_0x159aab){var _0x31acb7=this;return new Promise(function(_0x5b0880,_0x43d065){return db[_0x8858('0x16')][_0x8858('0x17')]({'raw':!![],'where':{'ContactId':_0x159aab[_0x8858('0x18')][_0x8858('0x19')],'ListId':_0x159aab[_0x8858('0x18')][_0x8858('0x1a')],'VoiceQueueId':_0x159aab[_0x8858('0x18')][_0x8858('0x1b')]===undefined?null:_0x159aab[_0x8858('0x18')][_0x8858('0x1b')],'CampaignId':_0x159aab[_0x8858('0x18')][_0x8858('0x1c')]===undefined?null:_0x159aab[_0x8858('0x18')]['CampaignId']}})['then'](function(_0x1e7ee){if(_0x1e7ee!=null){return db['CmHopperAdditionalPhone'][_0x8858('0x17')]({'raw':!![],'where':{'CmHopperId':_0x1e7ee['id'],'OrderBy':{'$gt':_0x1e7ee[_0x8858('0x1d')]}},'order':[[_0x8858('0x1d'),'ASC']]})['then'](function(_0x4caccb){var _0x1a6672=0x0;if(_0x4caccb){if(_0x4caccb[_0x8858('0x1e')]+_0x4caccb[_0x8858('0x1f')]+_0x4caccb[_0x8858('0x20')]+_0x4caccb['countnosuchnumberretry']+_0x4caccb[_0x8858('0x21')]+_0x4caccb[_0x8858('0x22')]+_0x4caccb[_0x8858('0x23')]+_0x4caccb[_0x8858('0x24')]<_0x159aab[_0x8858('0x25')][_0x8858('0x26')])_0x1a6672=0x1;_0x5b0880({'additional':_0x1a6672});}else{return db[_0x8858('0x27')][_0x8858('0x17')]({'raw':!![],'where':{'CmHopperId':_0x1e7ee['id']},'order':[[_0x8858('0x1d'),_0x8858('0x28')]]})['then'](function(_0x363fd2){var _0x4e2459=0x0;if(_0x363fd2){if(_0x363fd2[_0x8858('0x1e')]+_0x363fd2[_0x8858('0x1f')]+_0x363fd2[_0x8858('0x20')]+_0x363fd2[_0x8858('0x29')]+_0x363fd2[_0x8858('0x21')]+_0x363fd2['countabandonedretry']+_0x363fd2[_0x8858('0x23')]+_0x363fd2['countagentrejectretry']<_0x159aab[_0x8858('0x25')]['dialGlobalMaxRetry'])_0x4e2459=0x1;_0x5b0880({'additional':_0x4e2459});}else{_0x5b0880({'additional':0x0});}})[_0x8858('0x14')](function(_0x4f00f8){logger['error'](_0x8858('0x15'),_0x4f00f8['message']);_0x43d065(_0x31acb7[_0x8858('0xe')](0x1f4,_0x4f00f8[_0x8858('0x11')]));});}})[_0x8858('0x14')](function(_0x23ef02){logger[_0x8858('0xe')]('VerifyAdditionalPhones',_0x23ef02[_0x8858('0x11')]);_0x43d065(_0x31acb7['error'](0x1f4,_0x23ef02['message']));});}else _0x5b0880({'additional':0x0});});});};exports[_0x8858('0x2a')]=function(_0x354927){var _0xf4d436=this;return new Promise(function(_0x42dd30,_0x5c74a5){return db[_0x8858('0x16')][_0x8858('0x17')]({'raw':!![],'where':{'ContactId':_0x354927[_0x8858('0x18')][_0x8858('0x19')],'ListId':_0x354927[_0x8858('0x18')][_0x8858('0x1a')],'VoiceQueueId':_0x354927[_0x8858('0x18')][_0x8858('0x1b')]===undefined?null:_0x354927[_0x8858('0x18')][_0x8858('0x1b')],'CampaignId':_0x354927[_0x8858('0x18')][_0x8858('0x1c')]===undefined?null:_0x354927[_0x8858('0x18')][_0x8858('0x1c')]}})[_0x8858('0x2b')](function(_0x367878){if(_0x367878!=null){return db[_0x8858('0x27')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x367878['id'],'OrderBy':{'$gte':_0x367878['OrderBy']}},'order':[[_0x8858('0x1d'),_0x8858('0x28')]]})['then'](function(_0x197e48){if(_0x197e48)return activateAdditionalPhone(_0x367878,_0x354927[_0x8858('0x18')],_0x197e48,_0x354927[_0x8858('0x2c')],_0x354927['waitTime'])['then'](function(_0x54c209){_0x42dd30(_0x54c209);});else{return db[_0x8858('0x27')][_0x8858('0x17')]({'raw':!![],'where':{'CmHopperId':_0x367878['id']},'order':[[_0x8858('0x1d'),_0x8858('0x28')]]})['then'](function(_0x1ed1e2){if(_0x1ed1e2)return activateAdditionalPhone(_0x367878,_0x354927[_0x8858('0x18')],_0x1ed1e2,_0x354927[_0x8858('0x2c')],_0x354927[_0x8858('0x2d')])['then'](function(_0x5c5d8c){_0x42dd30(_0x5c5d8c);});else{_0x42dd30({'id':_0x367878['id'],'phone':''});}})[_0x8858('0x14')](function(_0x395e07){logger[_0x8858('0xe')](_0x8858('0x15'),_0x395e07['message']);_0x5c74a5(_0xf4d436[_0x8858('0xe')](0x1f4,_0x395e07[_0x8858('0x11')]));});}})[_0x8858('0x14')](function(_0x380bbd){logger[_0x8858('0xe')](_0x8858('0x15'),_0x380bbd[_0x8858('0x11')]);_0x5c74a5(_0xf4d436[_0x8858('0xe')](0x1f4,_0x380bbd[_0x8858('0x11')]));});}else _0x42dd30(0x1);});});};function activateAdditionalPhone(_0x52fd73,_0x3e8e06,_0x28f211,_0x1c88fe,_0xc6b4db){return new Promise(function(_0x5d33d0,_0x1bdead){var _0x5e86bd;if(_['isNil'](_0x28f211[_0x8858('0x2e')])){_0x28f211[_0x8858('0x2e')]=moment();}if(moment()>moment(_0x28f211[_0x8858('0x2e')])){_0x5e86bd=moment()[_0x8858('0x2f')](_0xc6b4db||0x3,_0x8858('0x30'));}else{if(_0x28f211['OrderBy']==0x0){_0x5e86bd=moment(_0x28f211[_0x8858('0x2e')]);}else{_0x5e86bd=moment()[_0x8858('0x2f')](_0xc6b4db||0x3,'minutes');}}if(_[_0x8858('0x31')](_0x5e86bd)){_0x5e86bd=moment()[_0x8858('0x2f')](_0xc6b4db||0x3,_0x8858('0x30'));}var _0x2c6c20={'phone':_0x52fd73[_0x8858('0x32')],'active':0x0,'OrderBy':_[_0x8858('0x31')](_0x52fd73[_0x8858('0x1d')])?0x0:_0x52fd73[_0x8858('0x1d')],'scheduledat':moment()[_0x8858('0x2f')](_0x1c88fe||0x1,_0x8858('0x30')),'countbusyretry':_0x3e8e06[_0x8858('0x1e')],'countcongestionretry':_0x3e8e06[_0x8858('0x1f')],'countnoanswerretry':_0x3e8e06[_0x8858('0x20')],'countnosuchnumberretry':_0x3e8e06[_0x8858('0x29')],'countdropretry':_0x3e8e06[_0x8858('0x21')],'countabandonedretry':_0x3e8e06[_0x8858('0x22')],'countmachineretry':_0x3e8e06[_0x8858('0x23')],'countagentrejectretry':_0x3e8e06['countagentrejectretry'],'createdAt':_0x3e8e06[_0x8858('0x33')],'updatedAt':_0x3e8e06[_0x8858('0x34')]};var _0x56bf30={'CmHopperId':_0x52fd73['id'],'phone':_0x28f211[_0x8858('0x32')],'active':0x0,'OrderBy':_['isNil'](_0x28f211[_0x8858('0x1d')])?0x0:_0x28f211[_0x8858('0x1d')],'scheduledat':_0x5e86bd,'countbusyretry':_0x28f211[_0x8858('0x1e')],'countcongestionretry':_0x28f211['countcongestionretry'],'countnoanswerretry':_0x28f211[_0x8858('0x20')],'countnosuchnumberretry':_0x28f211['countnosuchnumberretry'],'countdropretry':_0x28f211['countdropretry'],'countabandonedretry':_0x28f211[_0x8858('0x22')],'countmachineretry':_0x28f211[_0x8858('0x23')],'countagentrejectretry':_0x28f211[_0x8858('0x24')],'createdAt':_0x28f211[_0x8858('0x33')],'updatedAt':_0x28f211[_0x8858('0x34')]};return db[_0x8858('0x35')][_0x8858('0x36')](function(_0x3c898c){return db['CmHopperAdditionalPhone']['update'](_0x2c6c20,{'where':{'id':_0x28f211['id']}},{'transaction':_0x3c898c})[_0x8858('0x2b')](function(){return db[_0x8858('0x16')][_0x8858('0x37')](_0x56bf30,{'where':{'id':_0x52fd73['id']}},{'transaction':_0x3c898c});});})[_0x8858('0x2b')](function(_0x31c367){_0x5d33d0({'id':_0x52fd73['id'],'phone':_0x28f211['phone']});})[_0x8858('0x14')](function(_0x5ebd23){logger[_0x8858('0xe')](_0x8858('0x38'),_0x5ebd23[_0x8858('0x11')]);_0x1bdead({'error':_0x5ebd23[_0x8858('0x11')]});});});}exports[_0x8858('0x39')]=function(_0x47545f){var _0x422a06=this;return new Promise(function(_0x44684b,_0x11dd8d){return db[_0x8858('0x16')][_0x8858('0x37')](_0x47545f[_0x8858('0x18')]['field'],{'where':{'id':_0x47545f[_0x8858('0x18')]['id']}})[_0x8858('0x2b')](function(_0x575fda){_0x44684b(_0x575fda);})[_0x8858('0x14')](function(_0x3d54ee){logger[_0x8858('0xe')](_0x8858('0x39'),_0x3d54ee[_0x8858('0x11')]);_0x11dd8d(_0x422a06[_0x8858('0xe')](0x1f4,_0x3d54ee[_0x8858('0x11')]));});});};