Built motion from commit e0fa946e.|2.6.5
[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 _0x4b1f=['sendStatus','getTimezones','push','utcOffset','getTimezone','timezones','moment','lodash','../../config/logger','api','../../config/environment','offset','count','limit','status','set','Content-Range','json','update','then','error','send','index','map','rawAttributes','type','key','name','query','keys','filters','intersection','model','concat','$or','$gte','$lte','$ne','$eq','$between','$in','$like','$notLike','$notILike','$contains','$contained','$any','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','CmHopper','findAll','catch','show','params','find','create','body','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','state','campaign','user','UserId','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','CmHopperAdditionalPhone','end','getPreview','getVoiceQueues','preview','dialOrderByScheduledAt','dialPreviewAutoRecallMe','value','direction','prev','isEmpty','hopperIds','priority','ASC','sequelize','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','scheduledAt','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','recallme','UPDATE','Contact','CmCompany','Company','dialActive','transaction','LOCK','CmList','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts','entity\x20not\x20found'];(function(_0x43fdf8,_0x8426b3){var _0x1160c6=function(_0x281fb6){while(--_0x281fb6){_0x43fdf8['push'](_0x43fdf8['shift']());}};_0x1160c6(++_0x8426b3);}(_0x4b1f,0x195));var _0xf4b1=function(_0x35885a,_0x42fed7){_0x35885a=_0x35885a-0x0;var _0xe86249=_0x4b1f[_0x35885a];return _0xe86249;};'use strict';var moment=require(_0xf4b1('0x0'));var _=require(_0xf4b1('0x1'));var qs=require('../../components/parsers/qs');var logger=require(_0xf4b1('0x2'))(_0xf4b1('0x3'));var shared=require(_0xf4b1('0x4'));var db=require('../../mysqldb')['db'];function respondWithResult(_0x19fb44,_0x2b99e2){_0x2b99e2=_0x2b99e2||0xc8;return function(_0x31acb0){if(_0x31acb0){return _0x19fb44['status'](_0x2b99e2)['json'](_0x31acb0);}};}function respondWithFilteredResult(_0x1ab96b,_0x4b676){return function(_0x310db5){if(_0x310db5){var _0x3b9c78=typeof _0x4b676[_0xf4b1('0x5')]==='undefined'&&typeof _0x4b676['limit']==='undefined';var _0x2bf9d8=_0x310db5['count'];var _0xb243d6=_0x3b9c78?0x0:_0x4b676['offset'];var _0x4abaa5=_0x3b9c78?_0x310db5[_0xf4b1('0x6')]:_0x4b676[_0xf4b1('0x5')]+_0x4b676[_0xf4b1('0x7')];var _0x253fa8;if(_0x4abaa5>=_0x2bf9d8){_0x4abaa5=_0x2bf9d8;_0x253fa8=0xc8;}else{_0x253fa8=0xce;}_0x1ab96b[_0xf4b1('0x8')](_0x253fa8);return _0x1ab96b[_0xf4b1('0x9')](_0xf4b1('0xa'),_0xb243d6+'-'+_0x4abaa5+'/'+_0x2bf9d8)[_0xf4b1('0xb')](_0x310db5);}return null;};}function saveUpdates(_0x38afbb,_0xf66b4c){return function(_0x2c4eb9){if(_0x2c4eb9){return _0x2c4eb9[_0xf4b1('0xc')](_0x38afbb)[_0xf4b1('0xd')](function(_0x58bdf0){return _0x58bdf0;});}return null;};}function handleEntityNotFound(_0x591476,_0x3ea6f3){return function(_0x5cbc25){if(!_0x5cbc25){_0x591476['sendStatus'](0x194);}return _0x5cbc25;};}function handleError(_0x476a04,_0x51c39f){_0x51c39f=_0x51c39f||0x1f4;return function(_0x5764b1){logger[_0xf4b1('0xe')](_0x5764b1['stack']);if(_0x5764b1['name']){delete _0x5764b1['name'];}_0x476a04['status'](_0x51c39f)[_0xf4b1('0xf')](_0x5764b1);};}exports[_0xf4b1('0x10')]=function(_0x534fd8,_0x3b378e){var _0x420f9e={},_0x322b38={},_0x465da2={'count':0x0,'rows':[]};var _0x2658e8=_[_0xf4b1('0x11')](db['CmHopper'][_0xf4b1('0x12')],function(_0x2efda6){return{'name':_0x2efda6['fieldName'],'type':_0x2efda6[_0xf4b1('0x13')][_0xf4b1('0x14')]};});_0x322b38['model']=_[_0xf4b1('0x11')](_0x2658e8,_0xf4b1('0x15'));_0x322b38[_0xf4b1('0x16')]=_[_0xf4b1('0x17')](_0x534fd8['query']);_0x322b38[_0xf4b1('0x18')]=_[_0xf4b1('0x19')](_0x322b38[_0xf4b1('0x1a')],_0x322b38[_0xf4b1('0x16')]);_0x322b38['filters']=_[_0xf4b1('0x1b')](_0x322b38[_0xf4b1('0x18')],['$and',_0xf4b1('0x1c'),'$gt',_0xf4b1('0x1d'),'$lt',_0xf4b1('0x1e'),_0xf4b1('0x1f'),_0xf4b1('0x20'),'$not',_0xf4b1('0x21'),'$notBetween',_0xf4b1('0x22'),'$notIn',_0xf4b1('0x23'),_0xf4b1('0x24'),'$iLike',_0xf4b1('0x25'),_0xf4b1('0x23'),'$overlap',_0xf4b1('0x26'),_0xf4b1('0x27'),_0xf4b1('0x28')]);_0x420f9e[_0xf4b1('0x29')]=_[_0xf4b1('0x19')](_0x322b38[_0xf4b1('0x1a')],qs[_0xf4b1('0x2a')](_0x534fd8['query']['fields']));_0x420f9e[_0xf4b1('0x29')]=_0x420f9e[_0xf4b1('0x29')][_0xf4b1('0x2b')]?_0x420f9e[_0xf4b1('0x29')]:_0x322b38[_0xf4b1('0x1a')];if(!_0x534fd8['query'][_0xf4b1('0x2c')](_0xf4b1('0x2d'))){_0x420f9e[_0xf4b1('0x7')]=qs[_0xf4b1('0x7')](_0x534fd8[_0xf4b1('0x16')][_0xf4b1('0x7')]);_0x420f9e[_0xf4b1('0x5')]=qs[_0xf4b1('0x5')](_0x534fd8['query'][_0xf4b1('0x5')]);}_0x420f9e['order']=qs['sort'](_0x534fd8['query'][_0xf4b1('0x2e')]);_0x420f9e[_0xf4b1('0x2f')]=qs[_0xf4b1('0x18')](_[_0xf4b1('0x30')](_0x534fd8[_0xf4b1('0x16')],_0x322b38[_0xf4b1('0x18')]),_0x2658e8);if(_0x534fd8[_0xf4b1('0x16')][_0xf4b1('0x31')]){_0x420f9e['where']=_[_0xf4b1('0x32')](_0x420f9e['where'],{'$or':_[_0xf4b1('0x11')](_0x2658e8,function(_0x303290){if(_0x303290['type']!==_0xf4b1('0x33')){var _0x6675a={};_0x6675a[_0x303290[_0xf4b1('0x15')]]={'$like':'%'+_0x534fd8[_0xf4b1('0x16')][_0xf4b1('0x31')]+'%'};return _0x6675a;}})});}_0x420f9e=_['merge']({},_0x420f9e,_0x534fd8[_0xf4b1('0x34')]);var _0x4f52dd={'where':_0x420f9e[_0xf4b1('0x2f')]};return db['CmHopper'][_0xf4b1('0x6')](_0x4f52dd)[_0xf4b1('0xd')](function(_0xfe587f){_0x465da2['count']=_0xfe587f;if(_0x534fd8[_0xf4b1('0x16')][_0xf4b1('0x35')]){_0x420f9e[_0xf4b1('0x36')]=[{'all':!![]}];}return db[_0xf4b1('0x37')][_0xf4b1('0x38')](_0x420f9e);})[_0xf4b1('0xd')](function(_0xa5e7d1){_0x465da2['rows']=_0xa5e7d1;return _0x465da2;})[_0xf4b1('0xd')](respondWithFilteredResult(_0x3b378e,_0x420f9e))[_0xf4b1('0x39')](handleError(_0x3b378e,null));};exports[_0xf4b1('0x3a')]=function(_0x3553c3,_0x39de7f){var _0x5aab12={'raw':!![],'where':{'id':_0x3553c3[_0xf4b1('0x3b')]['id']}},_0x54df38={};_0x54df38[_0xf4b1('0x1a')]=_['keys'](db['CmHopper'][_0xf4b1('0x12')]);_0x54df38[_0xf4b1('0x16')]=_[_0xf4b1('0x17')](_0x3553c3[_0xf4b1('0x16')]);_0x54df38[_0xf4b1('0x18')]=_[_0xf4b1('0x19')](_0x54df38[_0xf4b1('0x1a')],_0x54df38[_0xf4b1('0x16')]);_0x5aab12['attributes']=_[_0xf4b1('0x19')](_0x54df38['model'],qs['fields'](_0x3553c3['query'][_0xf4b1('0x2a')]));_0x5aab12[_0xf4b1('0x29')]=_0x5aab12[_0xf4b1('0x29')]['length']?_0x5aab12[_0xf4b1('0x29')]:_0x54df38[_0xf4b1('0x1a')];if(_0x3553c3[_0xf4b1('0x16')]['includeAll']){_0x5aab12[_0xf4b1('0x36')]=[{'all':!![]}];}_0x5aab12=_[_0xf4b1('0x32')]({},_0x5aab12,_0x3553c3[_0xf4b1('0x34')]);return db['CmHopper'][_0xf4b1('0x3c')](_0x5aab12)['then'](handleEntityNotFound(_0x39de7f,null))[_0xf4b1('0xd')](respondWithResult(_0x39de7f,null))[_0xf4b1('0x39')](handleError(_0x39de7f,null));};exports[_0xf4b1('0x3d')]=function(_0x54f24a,_0x16c00f){return db[_0xf4b1('0x37')]['create'](_0x54f24a[_0xf4b1('0x3e')],{})[_0xf4b1('0xd')](respondWithResult(_0x16c00f,0xc9))[_0xf4b1('0x39')](handleError(_0x16c00f,null));};exports[_0xf4b1('0xc')]=function(_0x52a080,_0x5a7b0a){if(_0x52a080[_0xf4b1('0x3e')]['id']){delete _0x52a080[_0xf4b1('0x3e')]['id'];}return db['CmHopper'][_0xf4b1('0x3c')]({'where':{'id':_0x52a080['params']['id']}})[_0xf4b1('0xd')](handleEntityNotFound(_0x5a7b0a,null))['then'](saveUpdates(_0x52a080[_0xf4b1('0x3e')],null))[_0xf4b1('0xd')](respondWithResult(_0x5a7b0a,null))['catch'](handleError(_0x5a7b0a,null));};exports[_0xf4b1('0x3f')]=function(_0x104819,_0xd8fa5a){return db[_0xf4b1('0x37')][_0xf4b1('0x3f')]()[_0xf4b1('0xd')](respondWithResult(_0xd8fa5a,null))[_0xf4b1('0x39')](handleError(_0xd8fa5a,null));};exports[_0xf4b1('0x40')]=function(_0x4e6e04,_0x4a9761){var _0xcb26;var _0x247165=_0x4e6e04['params']['id'];return db[_0xf4b1('0x37')][_0xf4b1('0x3c')]({'where':{'id':_0x4e6e04[_0xf4b1('0x3b')]['id']}})[_0xf4b1('0xd')](handleEntityNotFound(_0x4a9761,null))[_0xf4b1('0xd')](function(_0x2e8e2c){if(_0x2e8e2c){return _0x2e8e2c[_0xf4b1('0x40')]()[_0xf4b1('0xd')](function(_0x29c3c1){return _0x29c3c1;});}})[_0xf4b1('0xd')](function(_0x407ecf){_0xcb26=_0x407ecf;if(_0x407ecf){if(_0x407ecf[_0xf4b1('0x41')]||_0x407ecf[_0xf4b1('0x42')]){return db[_0x407ecf[_0xf4b1('0x41')]?_0xf4b1('0x43'):_0xf4b1('0x44')][_0xf4b1('0x3c')]({'where':{'id':_0x407ecf[_0xf4b1('0x41')]?_0x407ecf[_0xf4b1('0x41')]:_0x407ecf[_0xf4b1('0x42')]},'attributes':['id',_0xf4b1('0x15')],'raw':!![]});}}})[_0xf4b1('0xd')](function(_0x38efcd){var _0x478573={};if(_0x38efcd){_[_0xf4b1('0x32')](_0x478573,_[_0xf4b1('0x45')](_0xcb26[_0xf4b1('0x46')],[_0xf4b1('0x47'),'updatedAt','id']));_0x478573[_0xf4b1('0x48')]=0x15;_0x478573['statedesc']='deleted';_0x478573[_0xf4b1('0x49')]=_0x38efcd[_0xf4b1('0x15')];_0x478573['membername']=_0x4e6e04[_0xf4b1('0x4a')][_0xf4b1('0x15')];_0x478573[_0xf4b1('0x4b')]=_0x4e6e04['user']['id'];_0x478573['deleted']=!![];_0x478573[_0xf4b1('0x4c')]=moment()[_0xf4b1('0x4d')](_0xf4b1('0x4e'));_0x478573[_0xf4b1('0x4f')]=_0xcb26[_0xf4b1('0x50')];_0x478573[_0xf4b1('0x51')]=_0xcb26[_0xf4b1('0x41')]?_0xf4b1('0x52'):_0xf4b1('0x53');return db[_0xf4b1('0x54')][_0xf4b1('0x3c')]({'where':{'id':_0x478573[_0xf4b1('0x55')]},'attributes':[_0xf4b1('0x56'),_0xf4b1('0x57')]})['then'](function(_0x193bab){if(!_[_0xf4b1('0x58')](_0x4a9761)&&!_[_0xf4b1('0x58')](_0x193bab[_0xf4b1('0x56')])){_0x478573[_0xf4b1('0x59')]=_0x193bab[_0xf4b1('0x56')];if(!_[_0xf4b1('0x58')](_0x193bab[_0xf4b1('0x57')])){_0x478573[_0xf4b1('0x59')]+='\x20'+_0x193bab['lastName'];}}})[_0xf4b1('0x5a')](function(){return db[_0xf4b1('0x5b')][_0xf4b1('0x3d')](_0x478573);});}})['then'](function(_0x5960cd){return db[_0xf4b1('0x5c')][_0xf4b1('0x40')]({'where':{'CmHopperId':_0x247165}});})['then'](function(){return _0x4a9761[_0xf4b1('0x8')](0xcc)[_0xf4b1('0x5d')]();})[_0xf4b1('0x39')](handleError(_0x4a9761,null));};exports[_0xf4b1('0x5e')]=function(_0xb3ac46,_0x34e231){var _0xf8fbc1=[];return db[_0xf4b1('0x54')][_0xf4b1('0x3f')]()[_0xf4b1('0xd')](function(_0x2bf00c){_0xf8fbc1=_['keys'](_0x2bf00c);return _0xb3ac46[_0xf4b1('0x4a')][_0xf4b1('0x5f')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0xf4b1('0x60')},'attributes':['id',_0xf4b1('0x61'),_0xf4b1('0x62')],'raw':!![]});})['then'](function(_0x38769a){if(_0x38769a&&_0x38769a[_0xf4b1('0x2b')]){return db['sequelize']['transaction'](function(_0x2ad185){var _0x52c144={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xf4b1('0x4e'))},'VoiceQueueId':{'$in':_[_0xf4b1('0x11')](_0x38769a,'id')},'$or':[{'UserId':null},{'UserId':_0xb3ac46['user']['id']}]};var _0x5ae14f={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x38769a)[_0xf4b1('0x31')]([_0xf4b1('0x62'),0x0])['map']('id')[_0xf4b1('0x63')]()},'$or':[{'UserId':null},{'UserId':_0xb3ac46[_0xf4b1('0x4a')]['id']}]};var _0x1da752={'$or':[_0x52c144,_0x5ae14f]};var _0x18fef2=[];if(_0xb3ac46[_0xf4b1('0x3e')][_0xf4b1('0x64')]&&_0xb3ac46[_0xf4b1('0x3e')]['direction']===_0xf4b1('0x65')){if(!_[_0xf4b1('0x66')](_0xb3ac46[_0xf4b1('0x3e')][_0xf4b1('0x67')])){_0x1da752['id']={'$in':_0xb3ac46[_0xf4b1('0x3e')][_0xf4b1('0x67')]};}_0x18fef2=[[_0xf4b1('0x68'),'ASC'],['scheduledAt',_0x38769a[0x0][_0xf4b1('0x61')]===_0xf4b1('0x69')?'DESC':_0xf4b1('0x69')],db[_0xf4b1('0x6a')][_0xf4b1('0x6b')](_0xf4b1('0x6c')),['id','DESC']];}else{if(!_[_0xf4b1('0x66')](_0xb3ac46[_0xf4b1('0x3e')][_0xf4b1('0x67')])){_0x1da752['id']={'$notIn':_0xb3ac46['body'][_0xf4b1('0x67')]};}_0x18fef2=[[_0xf4b1('0x68'),_0xf4b1('0x6d')],[_0xf4b1('0x6e'),_0x38769a[0x0][_0xf4b1('0x61')]],db['sequelize'][_0xf4b1('0x6b')](_0xf4b1('0x6f')),['id',_0xf4b1('0x69')]];}return db[_0xf4b1('0x37')][_0xf4b1('0x70')]({'attributes':['id',_0xf4b1('0x71'),'phone',_0xf4b1('0x72')],'where':_0x1da752,'order':_0x18fef2,'transaction':_0x2ad185,'lock':_0x2ad185['LOCK'][_0xf4b1('0x73')],'include':[{'model':db['CmContact'],'as':_0xf4b1('0x74'),'attributes':_0xf8fbc1,'include':[{'model':db[_0xf4b1('0x75')],'as':_0xf4b1('0x76'),'attributes':['id',_0xf4b1('0x15')]}]},{'model':db['CmList'],'as':'List','attributes':['id','name']},{'model':db[_0xf4b1('0x43')],'as':'Queue','attributes':['id','name',_0xf4b1('0x77')]}]})[_0xf4b1('0xd')](function(_0x52588f){if(_0x52588f){return _0x52588f[_0xf4b1('0xc')]({'UserId':_0xb3ac46[_0xf4b1('0x4a')]['id']},{'transaction':_0x2ad185});}});});}})['then'](handleEntityNotFound(_0x34e231,null))[_0xf4b1('0xd')](respondWithResult(_0x34e231,null))[_0xf4b1('0x39')](handleError(_0x34e231,null));};exports['getPreviewRecall']=function(_0x218a13,_0x5c71f2,_0x1687d5){var _0x5af286=[];var _0x59ac68=_0x218a13[_0xf4b1('0x3b')]['id'];var _0x19d240=_0x218a13['user']['id'];return db[_0xf4b1('0x54')][_0xf4b1('0x3f')]()[_0xf4b1('0xd')](function(_0x32b9a1){_0x5af286=_[_0xf4b1('0x17')](_0x32b9a1);return db['sequelize'][_0xf4b1('0x78')](function(_0x28ee27){const _0x2658d0={'id':_0x59ac68};return db['CmHopper'][_0xf4b1('0x70')]({'attributes':['id',_0xf4b1('0x71'),_0xf4b1('0x72')],'where':_0x2658d0,'transaction':_0x28ee27,'lock':_0x28ee27[_0xf4b1('0x79')]['UPDATE'],'include':[{'model':db[_0xf4b1('0x54')],'as':_0xf4b1('0x74'),'attributes':_0x5af286,'include':[{'model':db[_0xf4b1('0x75')],'as':_0xf4b1('0x76'),'attributes':['id',_0xf4b1('0x15')]}]},{'model':db[_0xf4b1('0x7a')],'as':'List','attributes':['id','name']},{'model':db['VoiceQueue'],'as':'Queue','attributes':['id',_0xf4b1('0x15'),_0xf4b1('0x77')]}]})['then'](function(_0x1af20e){if(_0x1af20e){return _0x1af20e[_0xf4b1('0xc')]({'UserId':_0x19d240},{'transaction':_0x28ee27});}});});})[_0xf4b1('0xd')](handleEntityNotFound(_0x5c71f2,null))['then'](respondWithResult(_0x5c71f2,null))[_0xf4b1('0x39')](handleError(_0x5c71f2,null));};exports['getOpenContacts']=function(_0x55fe87,_0x591d51){return _0x55fe87[_0xf4b1('0x4a')][_0xf4b1('0x5f')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})[_0xf4b1('0xd')](function(_0x49302a){if(_0x49302a&&_0x49302a[_0xf4b1('0x2b')]){return db[_0xf4b1('0x37')][_0xf4b1('0x6')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xf4b1('0x4d')](_0xf4b1('0x4e'))},'VoiceQueueId':{'$in':_[_0xf4b1('0x11')](_0x49302a,'id')},'$or':[{'UserId':null},{'UserId':_0x55fe87[_0xf4b1('0x4a')]['id']}]}});}return 0x0;})[_0xf4b1('0xd')](function(_0x2c2fc7){if(!_[_0xf4b1('0x58')](_0x2c2fc7)&&_[_0xf4b1('0x7b')](_0x2c2fc7)){return _0x591d51[_0xf4b1('0x8')](0xc8)['json']({'contacts':_0x2c2fc7});}else{logger[_0xf4b1('0xe')](_0xf4b1('0x7c'),_0xf4b1('0x7d'),0x194,_0xf4b1('0x7e'));_0x591d51[_0xf4b1('0x7f')](0x194);}})['catch'](handleError(_0x591d51,null));};exports[_0xf4b1('0x80')]=function(_0xcb1508,_0x704d5a){var _0x2fd77b=shared['timezones'];var _0x55559d=[];_[_0xf4b1('0x11')](_0x2fd77b,function(_0x33174b){_0x55559d[_0xf4b1('0x81')]({'id':_0x33174b[_0xf4b1('0x15')],'name':_0x33174b['name'],'utcOffset':_0x33174b[_0xf4b1('0x82')]});});return _0x704d5a[_0xf4b1('0x8')](0xc8)[_0xf4b1('0xb')]({'tz':_0x55559d});};exports[_0xf4b1('0x83')]=function(_0x48ab80,_0x503f3f){var _0x13d74f=shared[_0xf4b1('0x84')];var _0x313200={};if(!_['isNil'](_0x13d74f[_0x48ab80[_0xf4b1('0x3e')]['id']]))_0x313200=_0x13d74f[_0x48ab80[_0xf4b1('0x3e')]['id']];return _0x503f3f[_0xf4b1('0x8')](0xc8)[_0xf4b1('0xb')](_0x313200);};