Built motion from commit 4fa9d4a7.|2.6.31
[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 _0x6334=['getTimezones','timezones','push','utcOffset','getTimezone','moment','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','status','json','undefined','limit','count','set','sendStatus','error','stack','name','send','map','CmHopper','fieldName','key','query','keys','filters','intersection','concat','$and','$or','$gt','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$contained','$any','model','fields','attributes','length','hasOwnProperty','nolimit','offset','order','sort','where','filter','merge','type','VIRTUAL','options','then','includeAll','findAll','rows','catch','show','params','find','create','body','update','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','createdAt','updatedAt','state','statedesc','campaign','membername','user','UserId','deleted','deletedat','format','calleridnum','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','end','getVoiceQueues','outbound','dialOrderByScheduledAt','dialPreviewAutoRecallMe','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','value','direction','isEmpty','hopperIds','priority','scheduledAt','DESC','ASC','literal','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','List','getPreviewRecall','findOne','recallme','dialActive','getOpenContacts','preview','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found'];(function(_0x1e73f9,_0x241846){var _0x419bfb=function(_0x43ced8){while(--_0x43ced8){_0x1e73f9['push'](_0x1e73f9['shift']());}};_0x419bfb(++_0x241846);}(_0x6334,0x119));var _0x4633=function(_0x903228,_0x42c429){_0x903228=_0x903228-0x0;var _0xcec81d=_0x6334[_0x903228];return _0xcec81d;};'use strict';var moment=require(_0x4633('0x0'));var _=require(_0x4633('0x1'));var qs=require(_0x4633('0x2'));var logger=require(_0x4633('0x3'))(_0x4633('0x4'));var shared=require(_0x4633('0x5'));var db=require('../../mysqldb')['db'];function respondWithResult(_0x1099be,_0x205442){_0x205442=_0x205442||0xc8;return function(_0x2a2b3c){if(_0x2a2b3c){return _0x1099be[_0x4633('0x6')](_0x205442)[_0x4633('0x7')](_0x2a2b3c);}};}function respondWithFilteredResult(_0x6493dc,_0x175e14){return function(_0x4a8997){if(_0x4a8997){var _0x5647f1=typeof _0x175e14['offset']===_0x4633('0x8')&&typeof _0x175e14[_0x4633('0x9')]==='undefined';var _0x3c202f=_0x4a8997[_0x4633('0xa')];var _0x4018ba=_0x5647f1?0x0:_0x175e14['offset'];var _0x45a590=_0x5647f1?_0x4a8997[_0x4633('0xa')]:_0x175e14['offset']+_0x175e14[_0x4633('0x9')];var _0x3d5182;if(_0x45a590>=_0x3c202f){_0x45a590=_0x3c202f;_0x3d5182=0xc8;}else{_0x3d5182=0xce;}_0x6493dc[_0x4633('0x6')](_0x3d5182);return _0x6493dc[_0x4633('0xb')]('Content-Range',_0x4018ba+'-'+_0x45a590+'/'+_0x3c202f)[_0x4633('0x7')](_0x4a8997);}return null;};}function saveUpdates(_0xad405,_0x438e87){return function(_0x48e92c){if(_0x48e92c){return _0x48e92c['update'](_0xad405)['then'](function(_0x28e2bc){return _0x28e2bc;});}return null;};}function handleEntityNotFound(_0x1fd00c,_0x579229){return function(_0x52955e){if(!_0x52955e){_0x1fd00c[_0x4633('0xc')](0x194);}return _0x52955e;};}function handleError(_0x4813c5,_0xcdffcc){_0xcdffcc=_0xcdffcc||0x1f4;return function(_0x33b6e7){logger[_0x4633('0xd')](_0x33b6e7[_0x4633('0xe')]);if(_0x33b6e7['name']){delete _0x33b6e7[_0x4633('0xf')];}_0x4813c5[_0x4633('0x6')](_0xcdffcc)[_0x4633('0x10')](_0x33b6e7);};}exports['index']=function(_0xa8a6c1,_0x37e536){var _0x1c7186={},_0x2ad562={},_0xbab957={'count':0x0,'rows':[]};var _0x5953b8=_[_0x4633('0x11')](db[_0x4633('0x12')]['rawAttributes'],function(_0x57e61c){return{'name':_0x57e61c[_0x4633('0x13')],'type':_0x57e61c['type'][_0x4633('0x14')]};});_0x2ad562['model']=_['map'](_0x5953b8,_0x4633('0xf'));_0x2ad562[_0x4633('0x15')]=_[_0x4633('0x16')](_0xa8a6c1[_0x4633('0x15')]);_0x2ad562[_0x4633('0x17')]=_[_0x4633('0x18')](_0x2ad562['model'],_0x2ad562[_0x4633('0x15')]);_0x2ad562['filters']=_[_0x4633('0x19')](_0x2ad562[_0x4633('0x17')],[_0x4633('0x1a'),_0x4633('0x1b'),_0x4633('0x1c'),'$gte',_0x4633('0x1d'),_0x4633('0x1e'),_0x4633('0x1f'),_0x4633('0x20'),_0x4633('0x21'),_0x4633('0x22'),_0x4633('0x23'),_0x4633('0x24'),_0x4633('0x25'),_0x4633('0x26'),_0x4633('0x27'),_0x4633('0x28'),_0x4633('0x29'),_0x4633('0x26'),_0x4633('0x2a'),_0x4633('0x2b'),_0x4633('0x2c'),_0x4633('0x2d')]);_0x1c7186['attributes']=_[_0x4633('0x18')](_0x2ad562[_0x4633('0x2e')],qs[_0x4633('0x2f')](_0xa8a6c1[_0x4633('0x15')][_0x4633('0x2f')]));_0x1c7186[_0x4633('0x30')]=_0x1c7186['attributes'][_0x4633('0x31')]?_0x1c7186['attributes']:_0x2ad562[_0x4633('0x2e')];if(!_0xa8a6c1[_0x4633('0x15')][_0x4633('0x32')](_0x4633('0x33'))){_0x1c7186[_0x4633('0x9')]=qs[_0x4633('0x9')](_0xa8a6c1[_0x4633('0x15')][_0x4633('0x9')]);_0x1c7186[_0x4633('0x34')]=qs[_0x4633('0x34')](_0xa8a6c1[_0x4633('0x15')][_0x4633('0x34')]);}_0x1c7186[_0x4633('0x35')]=qs[_0x4633('0x36')](_0xa8a6c1['query']['sort']);_0x1c7186[_0x4633('0x37')]=qs[_0x4633('0x17')](_['pick'](_0xa8a6c1[_0x4633('0x15')],_0x2ad562[_0x4633('0x17')]),_0x5953b8);if(_0xa8a6c1[_0x4633('0x15')][_0x4633('0x38')]){_0x1c7186['where']=_[_0x4633('0x39')](_0x1c7186['where'],{'$or':_[_0x4633('0x11')](_0x5953b8,function(_0x15868f){if(_0x15868f[_0x4633('0x3a')]!==_0x4633('0x3b')){var _0x213768={};_0x213768[_0x15868f[_0x4633('0xf')]]={'$like':'%'+_0xa8a6c1[_0x4633('0x15')][_0x4633('0x38')]+'%'};return _0x213768;}})});}_0x1c7186=_['merge']({},_0x1c7186,_0xa8a6c1[_0x4633('0x3c')]);var _0x107616={'where':_0x1c7186['where']};return db[_0x4633('0x12')][_0x4633('0xa')](_0x107616)[_0x4633('0x3d')](function(_0x468648){_0xbab957['count']=_0x468648;if(_0xa8a6c1['query'][_0x4633('0x3e')]){_0x1c7186['include']=[{'all':!![]}];}return db['CmHopper'][_0x4633('0x3f')](_0x1c7186);})['then'](function(_0x4c83b8){_0xbab957[_0x4633('0x40')]=_0x4c83b8;return _0xbab957;})[_0x4633('0x3d')](respondWithFilteredResult(_0x37e536,_0x1c7186))[_0x4633('0x41')](handleError(_0x37e536,null));};exports[_0x4633('0x42')]=function(_0x2cdb28,_0x582404){var _0x6873d0={'raw':!![],'where':{'id':_0x2cdb28[_0x4633('0x43')]['id']}},_0x530ced={};_0x530ced[_0x4633('0x2e')]=_[_0x4633('0x16')](db[_0x4633('0x12')]['rawAttributes']);_0x530ced[_0x4633('0x15')]=_['keys'](_0x2cdb28[_0x4633('0x15')]);_0x530ced[_0x4633('0x17')]=_[_0x4633('0x18')](_0x530ced[_0x4633('0x2e')],_0x530ced[_0x4633('0x15')]);_0x6873d0['attributes']=_['intersection'](_0x530ced[_0x4633('0x2e')],qs[_0x4633('0x2f')](_0x2cdb28[_0x4633('0x15')][_0x4633('0x2f')]));_0x6873d0[_0x4633('0x30')]=_0x6873d0['attributes'][_0x4633('0x31')]?_0x6873d0['attributes']:_0x530ced[_0x4633('0x2e')];if(_0x2cdb28['query'][_0x4633('0x3e')]){_0x6873d0['include']=[{'all':!![]}];}_0x6873d0=_[_0x4633('0x39')]({},_0x6873d0,_0x2cdb28[_0x4633('0x3c')]);return db[_0x4633('0x12')][_0x4633('0x44')](_0x6873d0)[_0x4633('0x3d')](handleEntityNotFound(_0x582404,null))[_0x4633('0x3d')](respondWithResult(_0x582404,null))[_0x4633('0x41')](handleError(_0x582404,null));};exports[_0x4633('0x45')]=function(_0x18f3fd,_0x2e1cf2){return db[_0x4633('0x12')][_0x4633('0x45')](_0x18f3fd[_0x4633('0x46')],{})[_0x4633('0x3d')](respondWithResult(_0x2e1cf2,0xc9))[_0x4633('0x41')](handleError(_0x2e1cf2,null));};exports[_0x4633('0x47')]=function(_0x13ffa5,_0x1e533d){if(_0x13ffa5[_0x4633('0x46')]['id']){delete _0x13ffa5[_0x4633('0x46')]['id'];}return db[_0x4633('0x12')]['find']({'where':{'id':_0x13ffa5['params']['id']}})[_0x4633('0x3d')](handleEntityNotFound(_0x1e533d,null))['then'](saveUpdates(_0x13ffa5['body'],null))['then'](respondWithResult(_0x1e533d,null))[_0x4633('0x41')](handleError(_0x1e533d,null));};exports[_0x4633('0x48')]=function(_0x5cb4cc,_0x35b82a){return db[_0x4633('0x12')][_0x4633('0x48')]()[_0x4633('0x3d')](respondWithResult(_0x35b82a,null))[_0x4633('0x41')](handleError(_0x35b82a,null));};exports[_0x4633('0x49')]=function(_0x4d3cf4,_0x4ca3d6){var _0x4fb731;var _0x99c493=_0x4d3cf4[_0x4633('0x43')]['id'];return db[_0x4633('0x12')]['find']({'where':{'id':_0x4d3cf4[_0x4633('0x43')]['id']}})[_0x4633('0x3d')](handleEntityNotFound(_0x4ca3d6,null))['then'](function(_0x2d18f6){if(_0x2d18f6){return _0x2d18f6[_0x4633('0x49')]()[_0x4633('0x3d')](function(_0x4c5367){return _0x4c5367;});}})['then'](function(_0x12e416){_0x4fb731=_0x12e416;if(_0x12e416){if(_0x12e416[_0x4633('0x4a')]||_0x12e416[_0x4633('0x4b')]){return db[_0x12e416[_0x4633('0x4a')]?_0x4633('0x4c'):'Campaign'][_0x4633('0x44')]({'where':{'id':_0x12e416[_0x4633('0x4a')]?_0x12e416[_0x4633('0x4a')]:_0x12e416[_0x4633('0x4b')]},'attributes':['id',_0x4633('0xf')],'raw':!![]});}}})[_0x4633('0x3d')](function(_0x5659ed){var _0xeec38a={};if(_0x5659ed){_['merge'](_0xeec38a,_['omit'](_0x4fb731['dataValues'],[_0x4633('0x4d'),_0x4633('0x4e'),'id']));_0xeec38a[_0x4633('0x4f')]=0x15;_0xeec38a[_0x4633('0x50')]='deleted';_0xeec38a[_0x4633('0x51')]=_0x5659ed['name'];_0xeec38a[_0x4633('0x52')]=_0x4d3cf4[_0x4633('0x53')][_0x4633('0xf')];_0xeec38a[_0x4633('0x54')]=_0x4d3cf4[_0x4633('0x53')]['id'];_0xeec38a[_0x4633('0x55')]=!![];_0xeec38a[_0x4633('0x56')]=moment()[_0x4633('0x57')]('YYYY-MM-DD\x20HH:mm:ss');_0xeec38a[_0x4633('0x58')]=_0x4fb731['phone'];_0xeec38a[_0x4633('0x59')]=_0x4fb731[_0x4633('0x4a')]?_0x4633('0x5a'):_0x4633('0x5b');return db[_0x4633('0x5c')][_0x4633('0x44')]({'where':{'id':_0xeec38a[_0x4633('0x5d')]},'attributes':[_0x4633('0x5e'),_0x4633('0x5f')]})[_0x4633('0x3d')](function(_0x27608f){if(!_[_0x4633('0x60')](_0x4ca3d6)&&!_[_0x4633('0x60')](_0x27608f['firstName'])){_0xeec38a[_0x4633('0x61')]=_0x27608f[_0x4633('0x5e')];if(!_[_0x4633('0x60')](_0x27608f[_0x4633('0x5f')])){_0xeec38a[_0x4633('0x61')]+='\x20'+_0x27608f[_0x4633('0x5f')];}}})[_0x4633('0x62')](function(){return db[_0x4633('0x63')][_0x4633('0x45')](_0xeec38a);});}})[_0x4633('0x3d')](function(_0x3669a1){return db['CmHopperAdditionalPhone']['destroy']({'where':{'CmHopperId':_0x99c493}});})[_0x4633('0x3d')](function(){return _0x4ca3d6['status'](0xcc)[_0x4633('0x64')]();})[_0x4633('0x41')](handleError(_0x4ca3d6,null));};exports['getPreview']=function(_0x3fb667,_0x344536){var _0x327103=[];return db[_0x4633('0x5c')][_0x4633('0x48')]()['then'](function(_0x22271a){_0x327103=_[_0x4633('0x16')](_0x22271a);return _0x3fb667[_0x4633('0x53')][_0x4633('0x65')]({'where':{'type':_0x4633('0x66'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x4633('0x67'),_0x4633('0x68')],'raw':!![]});})[_0x4633('0x3d')](function(_0x493d6c){if(_0x493d6c&&_0x493d6c[_0x4633('0x31')]){return db[_0x4633('0x69')][_0x4633('0x6a')](function(_0x2efee0){var _0x1eb81f={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4633('0x57')](_0x4633('0x6b'))},'VoiceQueueId':{'$in':_[_0x4633('0x11')](_0x493d6c,'id')},'$or':[{'UserId':null},{'UserId':_0x3fb667[_0x4633('0x53')]['id']}]};var _0xea95b5={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x493d6c)[_0x4633('0x38')](['dialPreviewAutoRecallMe',0x0])['map']('id')[_0x4633('0x6c')]()},'$or':[{'UserId':null},{'UserId':_0x3fb667[_0x4633('0x53')]['id']}]};var _0x474a50={'$or':[_0x1eb81f,_0xea95b5]};var _0x4a5478=[];if(_0x3fb667['body'][_0x4633('0x6d')]&&_0x3fb667[_0x4633('0x46')][_0x4633('0x6d')]==='prev'){if(!_[_0x4633('0x6e')](_0x3fb667[_0x4633('0x46')][_0x4633('0x6f')])){_0x474a50['id']={'$in':_0x3fb667['body']['hopperIds']};}_0x4a5478=[[_0x4633('0x70'),'ASC'],[_0x4633('0x71'),_0x493d6c[0x0][_0x4633('0x67')]==='ASC'?_0x4633('0x72'):_0x4633('0x73')],db[_0x4633('0x69')][_0x4633('0x74')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0x4633('0x72')]];}else{if(!_[_0x4633('0x6e')](_0x3fb667[_0x4633('0x46')][_0x4633('0x6f')])){_0x474a50['id']={'$notIn':_0x3fb667[_0x4633('0x46')][_0x4633('0x6f')]};}_0x4a5478=[[_0x4633('0x70'),'DESC'],[_0x4633('0x71'),_0x493d6c[0x0][_0x4633('0x67')]],db[_0x4633('0x69')][_0x4633('0x74')]('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id','ASC']];}return db[_0x4633('0x12')]['findOne']({'attributes':['id',_0x4633('0x75'),'phone','recallme'],'where':_0x474a50,'order':_0x4a5478,'transaction':_0x2efee0,'lock':_0x2efee0[_0x4633('0x76')][_0x4633('0x77')],'include':[{'model':db['CmContact'],'as':_0x4633('0x78'),'attributes':_0x327103,'include':[{'model':db[_0x4633('0x79')],'as':_0x4633('0x7a'),'attributes':['id',_0x4633('0xf')]}]},{'model':db[_0x4633('0x7b')],'as':_0x4633('0x7c'),'attributes':['id',_0x4633('0xf')]},{'model':db[_0x4633('0x4c')],'as':'Queue','attributes':['id',_0x4633('0xf'),'dialActive']}]})[_0x4633('0x3d')](function(_0x5706cd){if(_0x5706cd){return _0x5706cd[_0x4633('0x47')]({'UserId':_0x3fb667[_0x4633('0x53')]['id']},{'transaction':_0x2efee0});}});});}})[_0x4633('0x3d')](handleEntityNotFound(_0x344536,null))[_0x4633('0x3d')](respondWithResult(_0x344536,null))[_0x4633('0x41')](handleError(_0x344536,null));};exports[_0x4633('0x7d')]=function(_0x53b890,_0x194c9a,_0x2f3405){var _0x27ab67=[];var _0x5ce875=_0x53b890[_0x4633('0x43')]['id'];var _0x200fcc=_0x53b890[_0x4633('0x53')]['id'];return db[_0x4633('0x5c')][_0x4633('0x48')]()[_0x4633('0x3d')](function(_0x5a8b1c){_0x27ab67=_['keys'](_0x5a8b1c);return db[_0x4633('0x69')]['transaction'](function(_0x4d5b84){const _0x47aec6={'id':_0x5ce875};return db['CmHopper'][_0x4633('0x7e')]({'attributes':['id',_0x4633('0x75'),_0x4633('0x7f')],'where':_0x47aec6,'transaction':_0x4d5b84,'lock':_0x4d5b84[_0x4633('0x76')][_0x4633('0x77')],'include':[{'model':db['CmContact'],'as':_0x4633('0x78'),'attributes':_0x27ab67,'include':[{'model':db[_0x4633('0x79')],'as':_0x4633('0x7a'),'attributes':['id',_0x4633('0xf')]}]},{'model':db[_0x4633('0x7b')],'as':_0x4633('0x7c'),'attributes':['id','name']},{'model':db[_0x4633('0x4c')],'as':'Queue','attributes':['id',_0x4633('0xf'),_0x4633('0x80')]}]})['then'](function(_0x2ee435){if(_0x2ee435){return _0x2ee435[_0x4633('0x47')]({'UserId':_0x200fcc},{'transaction':_0x4d5b84});}});});})['then'](handleEntityNotFound(_0x194c9a,null))[_0x4633('0x3d')](respondWithResult(_0x194c9a,null))[_0x4633('0x41')](handleError(_0x194c9a,null));};exports[_0x4633('0x81')]=function(_0x4a8cca,_0x5c2c93){return _0x4a8cca['user'][_0x4633('0x65')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x4633('0x82')},'attributes':['id'],'raw':!![]})['then'](function(_0x109a23){if(_0x109a23&&_0x109a23[_0x4633('0x31')]){return db[_0x4633('0x12')][_0x4633('0xa')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4633('0x57')](_0x4633('0x6b'))},'VoiceQueueId':{'$in':_[_0x4633('0x11')](_0x109a23,'id')},'$or':[{'UserId':null},{'UserId':_0x4a8cca[_0x4633('0x53')]['id']}]}});}return 0x0;})[_0x4633('0x3d')](function(_0x89261b){if(!_[_0x4633('0x60')](_0x89261b)&&_['isNumber'](_0x89261b)){return _0x5c2c93[_0x4633('0x6')](0xc8)[_0x4633('0x7')]({'contacts':_0x89261b});}else{logger[_0x4633('0xd')](_0x4633('0x83'),_0x4633('0x81'),0x194,_0x4633('0x84'));_0x5c2c93['sendStatus'](0x194);}})[_0x4633('0x41')](handleError(_0x5c2c93,null));};exports[_0x4633('0x85')]=function(_0x3a9832,_0x46195b){var _0x4d1d30=shared[_0x4633('0x86')];var _0x3f064c=[];_['map'](_0x4d1d30,function(_0x4e820a){_0x3f064c[_0x4633('0x87')]({'id':_0x4e820a['name'],'name':_0x4e820a['name'],'utcOffset':_0x4e820a[_0x4633('0x88')]});});return _0x46195b['status'](0xc8)['json']({'tz':_0x3f064c});};exports[_0x4633('0x89')]=function(_0x47875e,_0x20a6c5){var _0xdc710f=shared[_0x4633('0x86')];var _0x37bb9a={};if(!_['isNil'](_0xdc710f[_0x47875e[_0x4633('0x46')]['id']]))_0x37bb9a=_0xdc710f[_0x47875e[_0x4633('0x46')]['id']];return _0x20a6c5['status'](0xc8)[_0x4633('0x7')](_0x37bb9a);};