64bd667b6438adde3e7bcc0716961ca7e0427aff
[motion2.git] / server / api / cmHopper / cmHopper.controller.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 _0xdb94=['$gt','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$like','$iLike','$notILike','$overlap','$contains','$contained','$any','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','includeAll','merge','find','create','body','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','user','UserId','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','campaigntype','queue','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','end','getPreview','getVoiceQueues','outbound','dialPreviewAutoRecallMe','transaction','value','direction','hopperIds','priority','ASC','scheduledAt','dialOrderByScheduledAt','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','isEmpty','sequelize','COALESCE(CmHopper.UserId,\x200)\x20DESC','phone','recallme','UPDATE','Contact','CmCompany','Company','Queue','dialActive','getPreviewRecall','findOne','LOCK','CmList','getOpenContacts','preview','isNumber','entity\x20not\x20found','utcOffset','getTimezone','lodash','../../components/parsers/qs','api','../../config/environment','../../mysqldb','status','offset','limit','undefined','count','Content-Range','json','update','then','sendStatus','error','name','index','CmHopper','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','filters','concat','$and'];(function(_0xdb2e19,_0x2eb3fc){var _0x11d381=function(_0x2148a5){while(--_0x2148a5){_0xdb2e19['push'](_0xdb2e19['shift']());}};_0x11d381(++_0x2eb3fc);}(_0xdb94,0xe5));var _0x4db9=function(_0x38cd04,_0x2f578b){_0x38cd04=_0x38cd04-0x0;var _0x1741c0=_0xdb94[_0x38cd04];return _0x1741c0;};'use strict';var moment=require('moment');var _=require(_0x4db9('0x0'));var qs=require(_0x4db9('0x1'));var logger=require('../../config/logger')(_0x4db9('0x2'));var shared=require(_0x4db9('0x3'));var db=require(_0x4db9('0x4'))['db'];function respondWithResult(_0x2e85f4,_0x1f05d4){_0x1f05d4=_0x1f05d4||0xc8;return function(_0x592097){if(_0x592097){return _0x2e85f4[_0x4db9('0x5')](_0x1f05d4)['json'](_0x592097);}};}function respondWithFilteredResult(_0x1d21a8,_0xc76bc1){return function(_0x1dddb9){if(_0x1dddb9){var _0x3404f6=typeof _0xc76bc1[_0x4db9('0x6')]==='undefined'&&typeof _0xc76bc1[_0x4db9('0x7')]===_0x4db9('0x8');var _0x2d1d38=_0x1dddb9[_0x4db9('0x9')];var _0x402132=_0x3404f6?0x0:_0xc76bc1['offset'];var _0x268eb5=_0x3404f6?_0x1dddb9[_0x4db9('0x9')]:_0xc76bc1[_0x4db9('0x6')]+_0xc76bc1[_0x4db9('0x7')];var _0x34147f;if(_0x268eb5>=_0x2d1d38){_0x268eb5=_0x2d1d38;_0x34147f=0xc8;}else{_0x34147f=0xce;}_0x1d21a8[_0x4db9('0x5')](_0x34147f);return _0x1d21a8['set'](_0x4db9('0xa'),_0x402132+'-'+_0x268eb5+'/'+_0x2d1d38)[_0x4db9('0xb')](_0x1dddb9);}return null;};}function saveUpdates(_0x59f01c,_0x549c92){return function(_0x19f2d3){if(_0x19f2d3){return _0x19f2d3[_0x4db9('0xc')](_0x59f01c)[_0x4db9('0xd')](function(_0x4d4046){return _0x4d4046;});}return null;};}function handleEntityNotFound(_0x1a93be,_0x3dde55){return function(_0x2018d2){if(!_0x2018d2){_0x1a93be[_0x4db9('0xe')](0x194);}return _0x2018d2;};}function handleError(_0x2d89a7,_0x585230){_0x585230=_0x585230||0x1f4;return function(_0x1b1062){logger[_0x4db9('0xf')](_0x1b1062['stack']);if(_0x1b1062[_0x4db9('0x10')]){delete _0x1b1062[_0x4db9('0x10')];}_0x2d89a7[_0x4db9('0x5')](_0x585230)['send'](_0x1b1062);};}exports[_0x4db9('0x11')]=function(_0x3b0863,_0x4c5f4f){var _0x50f685={},_0x493923={},_0x605552={'count':0x0,'rows':[]};var _0x4235ab=_['map'](db[_0x4db9('0x12')][_0x4db9('0x13')],function(_0x353718){return{'name':_0x353718[_0x4db9('0x14')],'type':_0x353718[_0x4db9('0x15')][_0x4db9('0x16')]};});_0x493923[_0x4db9('0x17')]=_[_0x4db9('0x18')](_0x4235ab,_0x4db9('0x10'));_0x493923[_0x4db9('0x19')]=_[_0x4db9('0x1a')](_0x3b0863[_0x4db9('0x19')]);_0x493923['filters']=_[_0x4db9('0x1b')](_0x493923[_0x4db9('0x17')],_0x493923['query']);_0x493923[_0x4db9('0x1c')]=_[_0x4db9('0x1d')](_0x493923[_0x4db9('0x1c')],[_0x4db9('0x1e'),'$or',_0x4db9('0x1f'),'$gte',_0x4db9('0x20'),_0x4db9('0x21'),_0x4db9('0x22'),_0x4db9('0x23'),_0x4db9('0x24'),_0x4db9('0x25'),_0x4db9('0x26'),'$in','$notIn',_0x4db9('0x27'),'$notLike',_0x4db9('0x28'),_0x4db9('0x29'),_0x4db9('0x27'),_0x4db9('0x2a'),_0x4db9('0x2b'),_0x4db9('0x2c'),_0x4db9('0x2d')]);_0x50f685[_0x4db9('0x2e')]=_['intersection'](_0x493923[_0x4db9('0x17')],qs['fields'](_0x3b0863[_0x4db9('0x19')][_0x4db9('0x2f')]));_0x50f685[_0x4db9('0x2e')]=_0x50f685[_0x4db9('0x2e')][_0x4db9('0x30')]?_0x50f685['attributes']:_0x493923[_0x4db9('0x17')];if(!_0x3b0863[_0x4db9('0x19')][_0x4db9('0x31')](_0x4db9('0x32'))){_0x50f685['limit']=qs['limit'](_0x3b0863[_0x4db9('0x19')][_0x4db9('0x7')]);_0x50f685['offset']=qs['offset'](_0x3b0863[_0x4db9('0x19')]['offset']);}_0x50f685['order']=qs[_0x4db9('0x33')](_0x3b0863[_0x4db9('0x19')]['sort']);_0x50f685[_0x4db9('0x34')]=qs[_0x4db9('0x1c')](_[_0x4db9('0x35')](_0x3b0863[_0x4db9('0x19')],_0x493923['filters']),_0x4235ab);if(_0x3b0863[_0x4db9('0x19')]['filter']){_0x50f685['where']=_['merge'](_0x50f685[_0x4db9('0x34')],{'$or':_[_0x4db9('0x18')](_0x4235ab,function(_0x5b863c){if(_0x5b863c[_0x4db9('0x15')]!==_0x4db9('0x36')){var _0x57b3fc={};_0x57b3fc[_0x5b863c['name']]={'$like':'%'+_0x3b0863['query'][_0x4db9('0x37')]+'%'};return _0x57b3fc;}})});}_0x50f685=_['merge']({},_0x50f685,_0x3b0863[_0x4db9('0x38')]);var _0x52711a={'where':_0x50f685[_0x4db9('0x34')]};return db[_0x4db9('0x12')][_0x4db9('0x9')](_0x52711a)[_0x4db9('0xd')](function(_0x27ef37){_0x605552['count']=_0x27ef37;if(_0x3b0863[_0x4db9('0x19')]['includeAll']){_0x50f685[_0x4db9('0x39')]=[{'all':!![]}];}return db[_0x4db9('0x12')][_0x4db9('0x3a')](_0x50f685);})[_0x4db9('0xd')](function(_0x146850){_0x605552[_0x4db9('0x3b')]=_0x146850;return _0x605552;})['then'](respondWithFilteredResult(_0x4c5f4f,_0x50f685))[_0x4db9('0x3c')](handleError(_0x4c5f4f,null));};exports[_0x4db9('0x3d')]=function(_0x5ba7df,_0x4caf5f){var _0x404af3={'raw':!![],'where':{'id':_0x5ba7df[_0x4db9('0x3e')]['id']}},_0x45142f={};_0x45142f[_0x4db9('0x17')]=_[_0x4db9('0x1a')](db[_0x4db9('0x12')][_0x4db9('0x13')]);_0x45142f[_0x4db9('0x19')]=_[_0x4db9('0x1a')](_0x5ba7df[_0x4db9('0x19')]);_0x45142f[_0x4db9('0x1c')]=_[_0x4db9('0x1b')](_0x45142f['model'],_0x45142f[_0x4db9('0x19')]);_0x404af3[_0x4db9('0x2e')]=_[_0x4db9('0x1b')](_0x45142f[_0x4db9('0x17')],qs['fields'](_0x5ba7df['query'][_0x4db9('0x2f')]));_0x404af3[_0x4db9('0x2e')]=_0x404af3[_0x4db9('0x2e')]['length']?_0x404af3[_0x4db9('0x2e')]:_0x45142f['model'];if(_0x5ba7df[_0x4db9('0x19')][_0x4db9('0x3f')]){_0x404af3[_0x4db9('0x39')]=[{'all':!![]}];}_0x404af3=_[_0x4db9('0x40')]({},_0x404af3,_0x5ba7df[_0x4db9('0x38')]);return db['CmHopper'][_0x4db9('0x41')](_0x404af3)[_0x4db9('0xd')](handleEntityNotFound(_0x4caf5f,null))[_0x4db9('0xd')](respondWithResult(_0x4caf5f,null))[_0x4db9('0x3c')](handleError(_0x4caf5f,null));};exports[_0x4db9('0x42')]=function(_0x48d591,_0x38d554){return db[_0x4db9('0x12')][_0x4db9('0x42')](_0x48d591[_0x4db9('0x43')],{})[_0x4db9('0xd')](respondWithResult(_0x38d554,0xc9))[_0x4db9('0x3c')](handleError(_0x38d554,null));};exports[_0x4db9('0xc')]=function(_0x1f5664,_0x8ebc63){if(_0x1f5664['body']['id']){delete _0x1f5664[_0x4db9('0x43')]['id'];}return db['CmHopper']['find']({'where':{'id':_0x1f5664[_0x4db9('0x3e')]['id']}})[_0x4db9('0xd')](handleEntityNotFound(_0x8ebc63,null))['then'](saveUpdates(_0x1f5664['body'],null))[_0x4db9('0xd')](respondWithResult(_0x8ebc63,null))[_0x4db9('0x3c')](handleError(_0x8ebc63,null));};exports[_0x4db9('0x44')]=function(_0x7f0aac,_0x2c2c17){return db[_0x4db9('0x12')][_0x4db9('0x44')]()[_0x4db9('0xd')](respondWithResult(_0x2c2c17,null))[_0x4db9('0x3c')](handleError(_0x2c2c17,null));};exports[_0x4db9('0x45')]=function(_0x43312c,_0x5495de){var _0x2fb812;var _0x1934fb=_0x43312c['params']['id'];return db[_0x4db9('0x12')]['find']({'where':{'id':_0x43312c[_0x4db9('0x3e')]['id']}})[_0x4db9('0xd')](handleEntityNotFound(_0x5495de,null))[_0x4db9('0xd')](function(_0x2a5a98){if(_0x2a5a98){return _0x2a5a98[_0x4db9('0x45')]()[_0x4db9('0xd')](function(_0x3f1aac){return _0x3f1aac;});}})[_0x4db9('0xd')](function(_0x2f77f9){_0x2fb812=_0x2f77f9;if(_0x2f77f9){if(_0x2f77f9[_0x4db9('0x46')]||_0x2f77f9[_0x4db9('0x47')]){return db[_0x2f77f9[_0x4db9('0x46')]?_0x4db9('0x48'):'Campaign']['find']({'where':{'id':_0x2f77f9['VoiceQueueId']?_0x2f77f9[_0x4db9('0x46')]:_0x2f77f9['CampaignId']},'attributes':['id',_0x4db9('0x10')],'raw':!![]});}}})['then'](function(_0x521c7b){var _0x2ab2aa={};if(_0x521c7b){_['merge'](_0x2ab2aa,_['omit'](_0x2fb812[_0x4db9('0x49')],[_0x4db9('0x4a'),_0x4db9('0x4b'),'id']));_0x2ab2aa[_0x4db9('0x4c')]=0x15;_0x2ab2aa[_0x4db9('0x4d')]=_0x4db9('0x4e');_0x2ab2aa[_0x4db9('0x4f')]=_0x521c7b[_0x4db9('0x10')];_0x2ab2aa['membername']=_0x43312c[_0x4db9('0x50')][_0x4db9('0x10')];_0x2ab2aa[_0x4db9('0x51')]=_0x43312c[_0x4db9('0x50')]['id'];_0x2ab2aa[_0x4db9('0x4e')]=!![];_0x2ab2aa['deletedat']=moment()[_0x4db9('0x52')](_0x4db9('0x53'));_0x2ab2aa[_0x4db9('0x54')]=_0x2fb812['phone'];_0x2ab2aa[_0x4db9('0x55')]=_0x2fb812[_0x4db9('0x46')]?_0x4db9('0x56'):'ivr';return db[_0x4db9('0x57')]['find']({'where':{'id':_0x2ab2aa[_0x4db9('0x58')]},'attributes':[_0x4db9('0x59'),_0x4db9('0x5a')]})['then'](function(_0x3544bf){if(!_[_0x4db9('0x5b')](_0x5495de)&&!_['isNil'](_0x3544bf[_0x4db9('0x59')])){_0x2ab2aa[_0x4db9('0x5c')]=_0x3544bf[_0x4db9('0x59')];if(!_[_0x4db9('0x5b')](_0x3544bf[_0x4db9('0x5a')])){_0x2ab2aa[_0x4db9('0x5c')]+='\x20'+_0x3544bf[_0x4db9('0x5a')];}}})[_0x4db9('0x5d')](function(){return db['CmHopperFinal'][_0x4db9('0x42')](_0x2ab2aa);});}})[_0x4db9('0xd')](function(_0x2cad2e){return db['CmHopperAdditionalPhone'][_0x4db9('0x45')]({'where':{'CmHopperId':_0x1934fb}});})[_0x4db9('0xd')](function(){return _0x5495de[_0x4db9('0x5')](0xcc)[_0x4db9('0x5e')]();})['catch'](handleError(_0x5495de,null));};exports[_0x4db9('0x5f')]=function(_0x3a6b75,_0x16e0b3){var _0x226023=[];return db[_0x4db9('0x57')][_0x4db9('0x44')]()[_0x4db9('0xd')](function(_0x41fd1e){_0x226023=_['keys'](_0x41fd1e);return _0x3a6b75[_0x4db9('0x50')][_0x4db9('0x60')]({'where':{'type':_0x4db9('0x61'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id','dialOrderByScheduledAt',_0x4db9('0x62')],'raw':!![]});})[_0x4db9('0xd')](function(_0x4f7a35){if(_0x4f7a35&&_0x4f7a35[_0x4db9('0x30')]){return db['sequelize'][_0x4db9('0x63')](function(_0x447a45){var _0x111646={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4db9('0x52')](_0x4db9('0x53'))},'VoiceQueueId':{'$in':_[_0x4db9('0x18')](_0x4f7a35,'id')},'$or':[{'UserId':null},{'UserId':_0x3a6b75[_0x4db9('0x50')]['id']}]};var _0x3fecd2={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x4f7a35)['filter']([_0x4db9('0x62'),0x0])[_0x4db9('0x18')]('id')[_0x4db9('0x64')]()},'$or':[{'UserId':null},{'UserId':_0x3a6b75[_0x4db9('0x50')]['id']}]};var _0x21598f={'$or':[_0x111646,_0x3fecd2]};var _0x3ae99c=[];if(_0x3a6b75[_0x4db9('0x43')][_0x4db9('0x65')]&&_0x3a6b75['body'][_0x4db9('0x65')]==='prev'){if(!_['isEmpty'](_0x3a6b75['body'][_0x4db9('0x66')])){_0x21598f['id']={'$in':_0x3a6b75[_0x4db9('0x43')][_0x4db9('0x66')]};}_0x3ae99c=[[_0x4db9('0x67'),_0x4db9('0x68')],[_0x4db9('0x69'),_0x4f7a35[0x0][_0x4db9('0x6a')]===_0x4db9('0x68')?'DESC':'ASC'],db['sequelize']['literal'](_0x4db9('0x6b')),['id',_0x4db9('0x6c')]];}else{if(!_[_0x4db9('0x6d')](_0x3a6b75[_0x4db9('0x43')][_0x4db9('0x66')])){_0x21598f['id']={'$notIn':_0x3a6b75[_0x4db9('0x43')][_0x4db9('0x66')]};}_0x3ae99c=[[_0x4db9('0x67'),'DESC'],[_0x4db9('0x69'),_0x4f7a35[0x0][_0x4db9('0x6a')]],db[_0x4db9('0x6e')]['literal'](_0x4db9('0x6f')),['id','ASC']];}return db['CmHopper']['findOne']({'attributes':['id','scheduledat',_0x4db9('0x70'),_0x4db9('0x71')],'where':_0x21598f,'order':_0x3ae99c,'transaction':_0x447a45,'lock':_0x447a45['LOCK'][_0x4db9('0x72')],'include':[{'model':db[_0x4db9('0x57')],'as':_0x4db9('0x73'),'attributes':_0x226023,'include':[{'model':db[_0x4db9('0x74')],'as':_0x4db9('0x75'),'attributes':['id','name']}]},{'model':db['CmList'],'as':'List','attributes':['id',_0x4db9('0x10')]},{'model':db['VoiceQueue'],'as':_0x4db9('0x76'),'attributes':['id','name',_0x4db9('0x77')]}]})[_0x4db9('0xd')](function(_0x2bac10){if(_0x2bac10){return _0x2bac10['update']({'UserId':_0x3a6b75[_0x4db9('0x50')]['id']},{'transaction':_0x447a45});}});});}})['then'](handleEntityNotFound(_0x16e0b3,null))['then'](respondWithResult(_0x16e0b3,null))[_0x4db9('0x3c')](handleError(_0x16e0b3,null));};exports[_0x4db9('0x78')]=function(_0x11b6f6,_0x584c77,_0x24f933){var _0x53395c=[];var _0x5667d2=_0x11b6f6[_0x4db9('0x3e')]['id'];var _0x28696c=_0x11b6f6[_0x4db9('0x50')]['id'];return db[_0x4db9('0x57')][_0x4db9('0x44')]()[_0x4db9('0xd')](function(_0x560da4){_0x53395c=_[_0x4db9('0x1a')](_0x560da4);return db[_0x4db9('0x6e')][_0x4db9('0x63')](function(_0xcef195){const _0x4f0f59={'id':_0x5667d2};return db[_0x4db9('0x12')][_0x4db9('0x79')]({'attributes':['id','scheduledat',_0x4db9('0x71')],'where':_0x4f0f59,'transaction':_0xcef195,'lock':_0xcef195[_0x4db9('0x7a')]['UPDATE'],'include':[{'model':db[_0x4db9('0x57')],'as':_0x4db9('0x73'),'attributes':_0x53395c,'include':[{'model':db[_0x4db9('0x74')],'as':_0x4db9('0x75'),'attributes':['id','name']}]},{'model':db[_0x4db9('0x7b')],'as':'List','attributes':['id',_0x4db9('0x10')]},{'model':db[_0x4db9('0x48')],'as':_0x4db9('0x76'),'attributes':['id',_0x4db9('0x10'),'dialActive']}]})['then'](function(_0x2d4c76){if(_0x2d4c76){return _0x2d4c76[_0x4db9('0xc')]({'UserId':_0x28696c},{'transaction':_0xcef195});}});});})[_0x4db9('0xd')](handleEntityNotFound(_0x584c77,null))[_0x4db9('0xd')](respondWithResult(_0x584c77,null))[_0x4db9('0x3c')](handleError(_0x584c77,null));};exports[_0x4db9('0x7c')]=function(_0x1ce451,_0x582a04){return _0x1ce451[_0x4db9('0x50')][_0x4db9('0x60')]({'where':{'type':_0x4db9('0x61'),'dialActive':!![],'dialMethod':_0x4db9('0x7d')},'attributes':['id'],'raw':!![]})['then'](function(_0x7a3928){if(_0x7a3928&&_0x7a3928[_0x4db9('0x30')]){return db[_0x4db9('0x12')][_0x4db9('0x9')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4db9('0x52')](_0x4db9('0x53'))},'VoiceQueueId':{'$in':_[_0x4db9('0x18')](_0x7a3928,'id')},'$or':[{'UserId':null},{'UserId':_0x1ce451[_0x4db9('0x50')]['id']}]}});}return 0x0;})[_0x4db9('0xd')](function(_0x147b3c){if(!_[_0x4db9('0x5b')](_0x147b3c)&&_[_0x4db9('0x7e')](_0x147b3c)){return _0x582a04[_0x4db9('0x5')](0xc8)[_0x4db9('0xb')]({'contacts':_0x147b3c});}else{logger[_0x4db9('0xf')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x4db9('0x7c'),0x194,_0x4db9('0x7f'));_0x582a04[_0x4db9('0xe')](0x194);}})['catch'](handleError(_0x582a04,null));};exports['getTimezones']=function(_0x2418de,_0x497f4a){var _0x42d23d=shared['timezones'];var _0xfe32cb=[];_['map'](_0x42d23d,function(_0x497997){_0xfe32cb['push']({'id':_0x497997['name'],'name':_0x497997[_0x4db9('0x10')],'utcOffset':_0x497997[_0x4db9('0x80')]});});return _0x497f4a[_0x4db9('0x5')](0xc8)['json']({'tz':_0xfe32cb});};exports[_0x4db9('0x81')]=function(_0x48f60a,_0x328286){var _0x4d2073=shared['timezones'];var _0x142367={};if(!_[_0x4db9('0x5b')](_0x4d2073[_0x48f60a['body']['id']]))_0x142367=_0x4d2073[_0x48f60a['body']['id']];return _0x328286[_0x4db9('0x5')](0xc8)[_0x4db9('0xb')](_0x142367);};