14caf8cdf96e7c93d73144b6cd7fc5e8f4a72025
[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 _0xac95=['getVoiceQueues','dialOrderByScheduledAt','dialPreviewAutoRecallMe','sequelize','transaction','filter','value','direction','isEmpty','hopperIds','priority','DESC','ASC','COALESCE(CmHopper.UserId,\x200)\x20ASC','scheduledAt','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','recallme','LOCK','UPDATE','Contact','Company','CmList','List','dialActive','getPreviewRecall','Queue','getOpenContacts','preview','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','getTimezones','timezones','push','utcOffset','moment','lodash','../../components/parsers/qs','../../config/logger','../../mysqldb','status','undefined','limit','count','Content-Range','json','then','sendStatus','error','stack','name','map','CmHopper','rawAttributes','fieldName','type','key','query','keys','intersection','model','filters','$and','$gte','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$contained','$any','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','includeAll','include','rows','catch','show','find','create','body','update','describe','destroy','params','VoiceQueueId','VoiceQueue','Campaign','CampaignId','omit','dataValues','createdAt','statedesc','campaign','membername','UserId','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','CmContact','ContactId','firstName','isNil','calleridname','lastName','CmHopperFinal','CmHopperAdditionalPhone','getPreview','user'];(function(_0x1dfa63,_0x362bd4){var _0x26f2a9=function(_0x31cc52){while(--_0x31cc52){_0x1dfa63['push'](_0x1dfa63['shift']());}};_0x26f2a9(++_0x362bd4);}(_0xac95,0xa8));var _0x5ac9=function(_0x30ee83,_0x445ebd){_0x30ee83=_0x30ee83-0x0;var _0x50e581=_0xac95[_0x30ee83];return _0x50e581;};'use strict';var moment=require(_0x5ac9('0x0'));var _=require(_0x5ac9('0x1'));var qs=require(_0x5ac9('0x2'));var logger=require(_0x5ac9('0x3'))('api');var shared=require('../../config/environment');var db=require(_0x5ac9('0x4'))['db'];function respondWithResult(_0x1ebdea,_0x550511){_0x550511=_0x550511||0xc8;return function(_0xafa08d){if(_0xafa08d){return _0x1ebdea[_0x5ac9('0x5')](_0x550511)['json'](_0xafa08d);}};}function respondWithFilteredResult(_0x1dc09a,_0x2bb4da){return function(_0x8675ec){if(_0x8675ec){var _0x4bddcf=typeof _0x2bb4da['offset']===_0x5ac9('0x6')&&typeof _0x2bb4da[_0x5ac9('0x7')]===_0x5ac9('0x6');var _0x11660c=_0x8675ec[_0x5ac9('0x8')];var _0x5da6fb=_0x4bddcf?0x0:_0x2bb4da['offset'];var _0x1bac16=_0x4bddcf?_0x8675ec[_0x5ac9('0x8')]:_0x2bb4da['offset']+_0x2bb4da[_0x5ac9('0x7')];var _0x4968d6;if(_0x1bac16>=_0x11660c){_0x1bac16=_0x11660c;_0x4968d6=0xc8;}else{_0x4968d6=0xce;}_0x1dc09a[_0x5ac9('0x5')](_0x4968d6);return _0x1dc09a['set'](_0x5ac9('0x9'),_0x5da6fb+'-'+_0x1bac16+'/'+_0x11660c)[_0x5ac9('0xa')](_0x8675ec);}return null;};}function saveUpdates(_0x371231,_0x40eb62){return function(_0x4f9a04){if(_0x4f9a04){return _0x4f9a04['update'](_0x371231)[_0x5ac9('0xb')](function(_0x5f2d30){return _0x5f2d30;});}return null;};}function handleEntityNotFound(_0x3a7d64,_0x364007){return function(_0x50658c){if(!_0x50658c){_0x3a7d64[_0x5ac9('0xc')](0x194);}return _0x50658c;};}function handleError(_0x4590f1,_0x3f8fac){_0x3f8fac=_0x3f8fac||0x1f4;return function(_0x122590){logger[_0x5ac9('0xd')](_0x122590[_0x5ac9('0xe')]);if(_0x122590[_0x5ac9('0xf')]){delete _0x122590[_0x5ac9('0xf')];}_0x4590f1[_0x5ac9('0x5')](_0x3f8fac)['send'](_0x122590);};}exports['index']=function(_0x352874,_0x193c56){var _0x102c85={},_0x4463ff={},_0x91823f={'count':0x0,'rows':[]};var _0x47713e=_[_0x5ac9('0x10')](db[_0x5ac9('0x11')][_0x5ac9('0x12')],function(_0x3c655a){return{'name':_0x3c655a[_0x5ac9('0x13')],'type':_0x3c655a[_0x5ac9('0x14')][_0x5ac9('0x15')]};});_0x4463ff['model']=_[_0x5ac9('0x10')](_0x47713e,_0x5ac9('0xf'));_0x4463ff[_0x5ac9('0x16')]=_[_0x5ac9('0x17')](_0x352874[_0x5ac9('0x16')]);_0x4463ff['filters']=_[_0x5ac9('0x18')](_0x4463ff[_0x5ac9('0x19')],_0x4463ff['query']);_0x4463ff['filters']=_['concat'](_0x4463ff[_0x5ac9('0x1a')],[_0x5ac9('0x1b'),'$or','$gt',_0x5ac9('0x1c'),'$lt','$lte',_0x5ac9('0x1d'),'$eq',_0x5ac9('0x1e'),_0x5ac9('0x1f'),_0x5ac9('0x20'),_0x5ac9('0x21'),_0x5ac9('0x22'),_0x5ac9('0x23'),_0x5ac9('0x24'),_0x5ac9('0x25'),_0x5ac9('0x26'),'$like',_0x5ac9('0x27'),_0x5ac9('0x28'),_0x5ac9('0x29'),_0x5ac9('0x2a')]);_0x102c85[_0x5ac9('0x2b')]=_['intersection'](_0x4463ff['model'],qs[_0x5ac9('0x2c')](_0x352874[_0x5ac9('0x16')]['fields']));_0x102c85[_0x5ac9('0x2b')]=_0x102c85['attributes'][_0x5ac9('0x2d')]?_0x102c85[_0x5ac9('0x2b')]:_0x4463ff[_0x5ac9('0x19')];if(!_0x352874['query'][_0x5ac9('0x2e')](_0x5ac9('0x2f'))){_0x102c85[_0x5ac9('0x7')]=qs[_0x5ac9('0x7')](_0x352874[_0x5ac9('0x16')][_0x5ac9('0x7')]);_0x102c85['offset']=qs['offset'](_0x352874[_0x5ac9('0x16')]['offset']);}_0x102c85['order']=qs[_0x5ac9('0x30')](_0x352874[_0x5ac9('0x16')][_0x5ac9('0x30')]);_0x102c85[_0x5ac9('0x31')]=qs[_0x5ac9('0x1a')](_[_0x5ac9('0x32')](_0x352874[_0x5ac9('0x16')],_0x4463ff[_0x5ac9('0x1a')]),_0x47713e);if(_0x352874[_0x5ac9('0x16')]['filter']){_0x102c85[_0x5ac9('0x31')]=_[_0x5ac9('0x33')](_0x102c85['where'],{'$or':_['map'](_0x47713e,function(_0x1af6dd){if(_0x1af6dd[_0x5ac9('0x14')]!==_0x5ac9('0x34')){var _0x378367={};_0x378367[_0x1af6dd['name']]={'$like':'%'+_0x352874[_0x5ac9('0x16')]['filter']+'%'};return _0x378367;}})});}_0x102c85=_[_0x5ac9('0x33')]({},_0x102c85,_0x352874[_0x5ac9('0x35')]);var _0x2cb1d5={'where':_0x102c85[_0x5ac9('0x31')]};return db[_0x5ac9('0x11')][_0x5ac9('0x8')](_0x2cb1d5)[_0x5ac9('0xb')](function(_0x42010d){_0x91823f[_0x5ac9('0x8')]=_0x42010d;if(_0x352874[_0x5ac9('0x16')][_0x5ac9('0x36')]){_0x102c85[_0x5ac9('0x37')]=[{'all':!![]}];}return db['CmHopper']['findAll'](_0x102c85);})[_0x5ac9('0xb')](function(_0x42c4f0){_0x91823f[_0x5ac9('0x38')]=_0x42c4f0;return _0x91823f;})[_0x5ac9('0xb')](respondWithFilteredResult(_0x193c56,_0x102c85))[_0x5ac9('0x39')](handleError(_0x193c56,null));};exports[_0x5ac9('0x3a')]=function(_0x49bddc,_0x2dfa2f){var _0x16b74e={'raw':!![],'where':{'id':_0x49bddc['params']['id']}},_0x5640c4={};_0x5640c4['model']=_[_0x5ac9('0x17')](db[_0x5ac9('0x11')][_0x5ac9('0x12')]);_0x5640c4[_0x5ac9('0x16')]=_['keys'](_0x49bddc[_0x5ac9('0x16')]);_0x5640c4['filters']=_['intersection'](_0x5640c4[_0x5ac9('0x19')],_0x5640c4[_0x5ac9('0x16')]);_0x16b74e['attributes']=_[_0x5ac9('0x18')](_0x5640c4[_0x5ac9('0x19')],qs['fields'](_0x49bddc[_0x5ac9('0x16')][_0x5ac9('0x2c')]));_0x16b74e[_0x5ac9('0x2b')]=_0x16b74e[_0x5ac9('0x2b')][_0x5ac9('0x2d')]?_0x16b74e[_0x5ac9('0x2b')]:_0x5640c4[_0x5ac9('0x19')];if(_0x49bddc[_0x5ac9('0x16')][_0x5ac9('0x36')]){_0x16b74e[_0x5ac9('0x37')]=[{'all':!![]}];}_0x16b74e=_[_0x5ac9('0x33')]({},_0x16b74e,_0x49bddc[_0x5ac9('0x35')]);return db['CmHopper'][_0x5ac9('0x3b')](_0x16b74e)[_0x5ac9('0xb')](handleEntityNotFound(_0x2dfa2f,null))[_0x5ac9('0xb')](respondWithResult(_0x2dfa2f,null))['catch'](handleError(_0x2dfa2f,null));};exports[_0x5ac9('0x3c')]=function(_0x28edf5,_0x3b6aad){return db['CmHopper'][_0x5ac9('0x3c')](_0x28edf5[_0x5ac9('0x3d')],{})[_0x5ac9('0xb')](respondWithResult(_0x3b6aad,0xc9))[_0x5ac9('0x39')](handleError(_0x3b6aad,null));};exports[_0x5ac9('0x3e')]=function(_0x2aeeb5,_0x4bfc67){if(_0x2aeeb5['body']['id']){delete _0x2aeeb5[_0x5ac9('0x3d')]['id'];}return db['CmHopper'][_0x5ac9('0x3b')]({'where':{'id':_0x2aeeb5['params']['id']}})[_0x5ac9('0xb')](handleEntityNotFound(_0x4bfc67,null))[_0x5ac9('0xb')](saveUpdates(_0x2aeeb5[_0x5ac9('0x3d')],null))[_0x5ac9('0xb')](respondWithResult(_0x4bfc67,null))[_0x5ac9('0x39')](handleError(_0x4bfc67,null));};exports[_0x5ac9('0x3f')]=function(_0x324b7d,_0x20b55b){return db[_0x5ac9('0x11')][_0x5ac9('0x3f')]()[_0x5ac9('0xb')](respondWithResult(_0x20b55b,null))['catch'](handleError(_0x20b55b,null));};exports[_0x5ac9('0x40')]=function(_0x4bb9c7,_0x482df4){var _0x5909a4;var _0x14a81f=_0x4bb9c7[_0x5ac9('0x41')]['id'];return db[_0x5ac9('0x11')]['find']({'where':{'id':_0x4bb9c7[_0x5ac9('0x41')]['id']}})[_0x5ac9('0xb')](handleEntityNotFound(_0x482df4,null))[_0x5ac9('0xb')](function(_0x831fe7){if(_0x831fe7){return _0x831fe7[_0x5ac9('0x40')]()[_0x5ac9('0xb')](function(_0x499fd3){return _0x499fd3;});}})['then'](function(_0xcc5418){_0x5909a4=_0xcc5418;if(_0xcc5418){if(_0xcc5418[_0x5ac9('0x42')]||_0xcc5418['CampaignId']){return db[_0xcc5418[_0x5ac9('0x42')]?_0x5ac9('0x43'):_0x5ac9('0x44')][_0x5ac9('0x3b')]({'where':{'id':_0xcc5418[_0x5ac9('0x42')]?_0xcc5418['VoiceQueueId']:_0xcc5418[_0x5ac9('0x45')]},'attributes':['id',_0x5ac9('0xf')],'raw':!![]});}}})[_0x5ac9('0xb')](function(_0x52e811){var _0x16b248={};if(_0x52e811){_[_0x5ac9('0x33')](_0x16b248,_[_0x5ac9('0x46')](_0x5909a4[_0x5ac9('0x47')],[_0x5ac9('0x48'),'updatedAt','id']));_0x16b248['state']=0x15;_0x16b248[_0x5ac9('0x49')]='deleted';_0x16b248[_0x5ac9('0x4a')]=_0x52e811['name'];_0x16b248[_0x5ac9('0x4b')]=_0x4bb9c7['user'][_0x5ac9('0xf')];_0x16b248[_0x5ac9('0x4c')]=_0x4bb9c7['user']['id'];_0x16b248['deleted']=!![];_0x16b248[_0x5ac9('0x4d')]=moment()[_0x5ac9('0x4e')](_0x5ac9('0x4f'));_0x16b248[_0x5ac9('0x50')]=_0x5909a4[_0x5ac9('0x51')];_0x16b248[_0x5ac9('0x52')]=_0x5909a4[_0x5ac9('0x42')]?_0x5ac9('0x53'):'ivr';return db[_0x5ac9('0x54')]['find']({'where':{'id':_0x16b248[_0x5ac9('0x55')]},'attributes':[_0x5ac9('0x56'),'lastName']})[_0x5ac9('0xb')](function(_0x4ae713){if(!_[_0x5ac9('0x57')](_0x482df4)&&!_[_0x5ac9('0x57')](_0x4ae713[_0x5ac9('0x56')])){_0x16b248[_0x5ac9('0x58')]=_0x4ae713[_0x5ac9('0x56')];if(!_['isNil'](_0x4ae713[_0x5ac9('0x59')])){_0x16b248[_0x5ac9('0x58')]+='\x20'+_0x4ae713[_0x5ac9('0x59')];}}})['finally'](function(){return db[_0x5ac9('0x5a')][_0x5ac9('0x3c')](_0x16b248);});}})[_0x5ac9('0xb')](function(_0x4e3154){return db[_0x5ac9('0x5b')]['destroy']({'where':{'CmHopperId':_0x14a81f}});})[_0x5ac9('0xb')](function(){return _0x482df4[_0x5ac9('0x5')](0xcc)['end']();})['catch'](handleError(_0x482df4,null));};exports[_0x5ac9('0x5c')]=function(_0x92fae7,_0x3a0cc4){var _0x2a4db2=[];return db[_0x5ac9('0x54')][_0x5ac9('0x3f')]()[_0x5ac9('0xb')](function(_0x1118e8){_0x2a4db2=_['keys'](_0x1118e8);return _0x92fae7[_0x5ac9('0x5d')][_0x5ac9('0x5e')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x5ac9('0x5f'),_0x5ac9('0x60')],'raw':!![]});})['then'](function(_0x1fd466){if(_0x1fd466&&_0x1fd466[_0x5ac9('0x2d')]){return db[_0x5ac9('0x61')][_0x5ac9('0x62')](function(_0x3da33b){var _0x24dbd5={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x5ac9('0x4e')](_0x5ac9('0x4f'))},'VoiceQueueId':{'$in':_[_0x5ac9('0x10')](_0x1fd466,'id')},'$or':[{'UserId':null},{'UserId':_0x92fae7[_0x5ac9('0x5d')]['id']}]};var _0x36f158={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x1fd466)[_0x5ac9('0x63')]([_0x5ac9('0x60'),0x0])[_0x5ac9('0x10')]('id')[_0x5ac9('0x64')]()},'$or':[{'UserId':null},{'UserId':_0x92fae7['user']['id']}]};var _0x1c18d9={'$or':[_0x24dbd5,_0x36f158]};var _0x4c8245=[];if(_0x92fae7[_0x5ac9('0x3d')][_0x5ac9('0x65')]&&_0x92fae7[_0x5ac9('0x3d')]['direction']==='prev'){if(!_[_0x5ac9('0x66')](_0x92fae7[_0x5ac9('0x3d')][_0x5ac9('0x67')])){_0x1c18d9['id']={'$in':_0x92fae7['body'][_0x5ac9('0x67')]};}_0x4c8245=[[_0x5ac9('0x68'),'ASC'],['scheduledAt',_0x1fd466[0x0][_0x5ac9('0x5f')]==='ASC'?_0x5ac9('0x69'):_0x5ac9('0x6a')],db[_0x5ac9('0x61')]['literal'](_0x5ac9('0x6b')),['id',_0x5ac9('0x69')]];}else{if(!_['isEmpty'](_0x92fae7[_0x5ac9('0x3d')][_0x5ac9('0x67')])){_0x1c18d9['id']={'$notIn':_0x92fae7['body'][_0x5ac9('0x67')]};}_0x4c8245=[[_0x5ac9('0x68'),'DESC'],[_0x5ac9('0x6c'),_0x1fd466[0x0][_0x5ac9('0x5f')]],db['sequelize'][_0x5ac9('0x6d')](_0x5ac9('0x6e')),['id',_0x5ac9('0x6a')]];}return db['CmHopper'][_0x5ac9('0x6f')]({'attributes':['id',_0x5ac9('0x70'),_0x5ac9('0x51'),_0x5ac9('0x71')],'where':_0x1c18d9,'order':_0x4c8245,'transaction':_0x3da33b,'lock':_0x3da33b[_0x5ac9('0x72')][_0x5ac9('0x73')],'include':[{'model':db[_0x5ac9('0x54')],'as':_0x5ac9('0x74'),'attributes':_0x2a4db2,'include':[{'model':db['CmCompany'],'as':_0x5ac9('0x75'),'attributes':['id',_0x5ac9('0xf')]}]},{'model':db[_0x5ac9('0x76')],'as':_0x5ac9('0x77'),'attributes':['id','name']},{'model':db[_0x5ac9('0x43')],'as':'Queue','attributes':['id',_0x5ac9('0xf'),_0x5ac9('0x78')]}]})[_0x5ac9('0xb')](function(_0xcfa3e3){if(_0xcfa3e3){return _0xcfa3e3[_0x5ac9('0x3e')]({'UserId':_0x92fae7['user']['id']},{'transaction':_0x3da33b});}});});}})['then'](handleEntityNotFound(_0x3a0cc4,null))[_0x5ac9('0xb')](respondWithResult(_0x3a0cc4,null))['catch'](handleError(_0x3a0cc4,null));};exports[_0x5ac9('0x79')]=function(_0x438ce8,_0x1d830a,_0x23ac5d){var _0x47dc0f=[];var _0x171afb=_0x438ce8['params']['id'];var _0x3fbf4d=_0x438ce8[_0x5ac9('0x5d')]['id'];return db[_0x5ac9('0x54')][_0x5ac9('0x3f')]()[_0x5ac9('0xb')](function(_0x189e0e){_0x47dc0f=_[_0x5ac9('0x17')](_0x189e0e);return db['sequelize'][_0x5ac9('0x62')](function(_0x533c78){const _0x3528a3={'id':_0x171afb};return db[_0x5ac9('0x11')][_0x5ac9('0x6f')]({'attributes':['id',_0x5ac9('0x70'),_0x5ac9('0x71')],'where':_0x3528a3,'transaction':_0x533c78,'lock':_0x533c78['LOCK'][_0x5ac9('0x73')],'include':[{'model':db[_0x5ac9('0x54')],'as':_0x5ac9('0x74'),'attributes':_0x47dc0f,'include':[{'model':db['CmCompany'],'as':_0x5ac9('0x75'),'attributes':['id','name']}]},{'model':db['CmList'],'as':_0x5ac9('0x77'),'attributes':['id',_0x5ac9('0xf')]},{'model':db[_0x5ac9('0x43')],'as':_0x5ac9('0x7a'),'attributes':['id','name',_0x5ac9('0x78')]}]})[_0x5ac9('0xb')](function(_0x331f5b){if(_0x331f5b){return _0x331f5b[_0x5ac9('0x3e')]({'UserId':_0x3fbf4d},{'transaction':_0x533c78});}});});})[_0x5ac9('0xb')](handleEntityNotFound(_0x1d830a,null))['then'](respondWithResult(_0x1d830a,null))['catch'](handleError(_0x1d830a,null));};exports[_0x5ac9('0x7b')]=function(_0x4279d2,_0x15ca3f){return _0x4279d2['user'][_0x5ac9('0x5e')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x5ac9('0x7c')},'attributes':['id'],'raw':!![]})[_0x5ac9('0xb')](function(_0x5d61d6){if(_0x5d61d6&&_0x5d61d6[_0x5ac9('0x2d')]){return db[_0x5ac9('0x11')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x5ac9('0x4e')](_0x5ac9('0x4f'))},'VoiceQueueId':{'$in':_[_0x5ac9('0x10')](_0x5d61d6,'id')},'$or':[{'UserId':null},{'UserId':_0x4279d2['user']['id']}]}});}return 0x0;})[_0x5ac9('0xb')](function(_0x946e97){if(!_[_0x5ac9('0x57')](_0x946e97)&&_[_0x5ac9('0x7d')](_0x946e97)){return _0x15ca3f[_0x5ac9('0x5')](0xc8)[_0x5ac9('0xa')]({'contacts':_0x946e97});}else{logger[_0x5ac9('0xd')](_0x5ac9('0x7e'),_0x5ac9('0x7b'),0x194,'entity\x20not\x20found');_0x15ca3f[_0x5ac9('0xc')](0x194);}})[_0x5ac9('0x39')](handleError(_0x15ca3f,null));};exports[_0x5ac9('0x7f')]=function(_0x199903,_0x5ca243){var _0x4497d9=shared[_0x5ac9('0x80')];var _0xc2d500=[];_[_0x5ac9('0x10')](_0x4497d9,function(_0x3cc382){_0xc2d500[_0x5ac9('0x81')]({'id':_0x3cc382[_0x5ac9('0xf')],'name':_0x3cc382[_0x5ac9('0xf')],'utcOffset':_0x3cc382[_0x5ac9('0x82')]});});return _0x5ca243[_0x5ac9('0x5')](0xc8)[_0x5ac9('0xa')]({'tz':_0xc2d500});};exports['getTimezone']=function(_0x30ff13,_0x443cc8){var _0x375d38=shared[_0x5ac9('0x80')];var _0x2b19f2={};if(!_[_0x5ac9('0x57')](_0x375d38[_0x30ff13['body']['id']]))_0x2b19f2=_0x375d38[_0x30ff13[_0x5ac9('0x3d')]['id']];return _0x443cc8[_0x5ac9('0x5')](0xc8)[_0x5ac9('0xa')](_0x2b19f2);};