Built motion from commit a679711e.|2.6.15
[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 _0x98d3=['concat','$or','$gt','$ne','$eq','$not','$between','$notBetween','$in','$notIn','$like','$iLike','$overlap','$contains','$any','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','destroy','VoiceQueueId','CampaignId','Campaign','omit','createdAt','updatedAt','state','statedesc','user','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','CmHopperAdditionalPhone','getPreview','getVoiceQueues','outbound','dialOrderByScheduledAt','dialPreviewAutoRecallMe','transaction','value','direction','prev','isEmpty','hopperIds','scheduledAt','ASC','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','Company','CmList','List','VoiceQueue','Queue','dialActive','sequelize','recallme','CmCompany','getOpenContacts','preview','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','getTimezones','timezones','push','utcOffset','getTimezone','moment','lodash','../../config/logger','../../config/environment','json','offset','undefined','limit','count','set','Content-Range','update','then','error','stack','name','status','index','CmHopper','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection'];(function(_0x59e501,_0x5ba25c){var _0x5a2170=function(_0x3695c9){while(--_0x3695c9){_0x59e501['push'](_0x59e501['shift']());}};_0x5a2170(++_0x5ba25c);}(_0x98d3,0x173));var _0x398d=function(_0x43828c,_0x119bd2){_0x43828c=_0x43828c-0x0;var _0x5d0d46=_0x98d3[_0x43828c];return _0x5d0d46;};'use strict';var moment=require(_0x398d('0x0'));var _=require(_0x398d('0x1'));var qs=require('../../components/parsers/qs');var logger=require(_0x398d('0x2'))('api');var shared=require(_0x398d('0x3'));var db=require('../../mysqldb')['db'];function respondWithResult(_0x465d4a,_0x41f57c){_0x41f57c=_0x41f57c||0xc8;return function(_0x4f7a58){if(_0x4f7a58){return _0x465d4a['status'](_0x41f57c)[_0x398d('0x4')](_0x4f7a58);}};}function respondWithFilteredResult(_0x25d38f,_0x2c3c4c){return function(_0x502652){if(_0x502652){var _0x4ba1a3=typeof _0x2c3c4c[_0x398d('0x5')]===_0x398d('0x6')&&typeof _0x2c3c4c[_0x398d('0x7')]===_0x398d('0x6');var _0x54c349=_0x502652[_0x398d('0x8')];var _0x147aec=_0x4ba1a3?0x0:_0x2c3c4c[_0x398d('0x5')];var _0x3841e6=_0x4ba1a3?_0x502652[_0x398d('0x8')]:_0x2c3c4c[_0x398d('0x5')]+_0x2c3c4c[_0x398d('0x7')];var _0x101bfc;if(_0x3841e6>=_0x54c349){_0x3841e6=_0x54c349;_0x101bfc=0xc8;}else{_0x101bfc=0xce;}_0x25d38f['status'](_0x101bfc);return _0x25d38f[_0x398d('0x9')](_0x398d('0xa'),_0x147aec+'-'+_0x3841e6+'/'+_0x54c349)[_0x398d('0x4')](_0x502652);}return null;};}function saveUpdates(_0x12eb91,_0x15a424){return function(_0x91619e){if(_0x91619e){return _0x91619e[_0x398d('0xb')](_0x12eb91)[_0x398d('0xc')](function(_0x3bf2a2){return _0x3bf2a2;});}return null;};}function handleEntityNotFound(_0x396015,_0x1fc998){return function(_0x537bb6){if(!_0x537bb6){_0x396015['sendStatus'](0x194);}return _0x537bb6;};}function handleError(_0x3d424f,_0x36cde2){_0x36cde2=_0x36cde2||0x1f4;return function(_0x347508){logger[_0x398d('0xd')](_0x347508[_0x398d('0xe')]);if(_0x347508[_0x398d('0xf')]){delete _0x347508[_0x398d('0xf')];}_0x3d424f[_0x398d('0x10')](_0x36cde2)['send'](_0x347508);};}exports[_0x398d('0x11')]=function(_0x54e717,_0x673840){var _0x476c36={},_0x297768={},_0x5de1be={'count':0x0,'rows':[]};var _0x4c5c9d=_['map'](db[_0x398d('0x12')][_0x398d('0x13')],function(_0x117baa){return{'name':_0x117baa[_0x398d('0x14')],'type':_0x117baa[_0x398d('0x15')][_0x398d('0x16')]};});_0x297768[_0x398d('0x17')]=_['map'](_0x4c5c9d,'name');_0x297768['query']=_[_0x398d('0x18')](_0x54e717[_0x398d('0x19')]);_0x297768[_0x398d('0x1a')]=_[_0x398d('0x1b')](_0x297768[_0x398d('0x17')],_0x297768['query']);_0x297768['filters']=_[_0x398d('0x1c')](_0x297768[_0x398d('0x1a')],['$and',_0x398d('0x1d'),_0x398d('0x1e'),'$gte','$lt','$lte',_0x398d('0x1f'),_0x398d('0x20'),_0x398d('0x21'),_0x398d('0x22'),_0x398d('0x23'),_0x398d('0x24'),_0x398d('0x25'),_0x398d('0x26'),'$notLike',_0x398d('0x27'),'$notILike','$like',_0x398d('0x28'),_0x398d('0x29'),'$contained',_0x398d('0x2a')]);_0x476c36['attributes']=_[_0x398d('0x1b')](_0x297768[_0x398d('0x17')],qs['fields'](_0x54e717['query'][_0x398d('0x2b')]));_0x476c36[_0x398d('0x2c')]=_0x476c36['attributes'][_0x398d('0x2d')]?_0x476c36[_0x398d('0x2c')]:_0x297768[_0x398d('0x17')];if(!_0x54e717[_0x398d('0x19')][_0x398d('0x2e')](_0x398d('0x2f'))){_0x476c36['limit']=qs['limit'](_0x54e717[_0x398d('0x19')][_0x398d('0x7')]);_0x476c36[_0x398d('0x5')]=qs[_0x398d('0x5')](_0x54e717[_0x398d('0x19')][_0x398d('0x5')]);}_0x476c36[_0x398d('0x30')]=qs[_0x398d('0x31')](_0x54e717[_0x398d('0x19')]['sort']);_0x476c36[_0x398d('0x32')]=qs[_0x398d('0x1a')](_[_0x398d('0x33')](_0x54e717['query'],_0x297768['filters']),_0x4c5c9d);if(_0x54e717[_0x398d('0x19')][_0x398d('0x34')]){_0x476c36[_0x398d('0x32')]=_[_0x398d('0x35')](_0x476c36[_0x398d('0x32')],{'$or':_[_0x398d('0x36')](_0x4c5c9d,function(_0x324d76){if(_0x324d76[_0x398d('0x15')]!==_0x398d('0x37')){var _0x2a95bc={};_0x2a95bc[_0x324d76[_0x398d('0xf')]]={'$like':'%'+_0x54e717[_0x398d('0x19')][_0x398d('0x34')]+'%'};return _0x2a95bc;}})});}_0x476c36=_[_0x398d('0x35')]({},_0x476c36,_0x54e717[_0x398d('0x38')]);var _0x302314={'where':_0x476c36[_0x398d('0x32')]};return db[_0x398d('0x12')][_0x398d('0x8')](_0x302314)['then'](function(_0x244512){_0x5de1be[_0x398d('0x8')]=_0x244512;if(_0x54e717[_0x398d('0x19')][_0x398d('0x39')]){_0x476c36[_0x398d('0x3a')]=[{'all':!![]}];}return db[_0x398d('0x12')][_0x398d('0x3b')](_0x476c36);})['then'](function(_0x17976b){_0x5de1be[_0x398d('0x3c')]=_0x17976b;return _0x5de1be;})[_0x398d('0xc')](respondWithFilteredResult(_0x673840,_0x476c36))[_0x398d('0x3d')](handleError(_0x673840,null));};exports[_0x398d('0x3e')]=function(_0x219651,_0x4d57cc){var _0x3dddcf={'raw':!![],'where':{'id':_0x219651[_0x398d('0x3f')]['id']}},_0x518e7c={};_0x518e7c[_0x398d('0x17')]=_[_0x398d('0x18')](db[_0x398d('0x12')][_0x398d('0x13')]);_0x518e7c['query']=_[_0x398d('0x18')](_0x219651[_0x398d('0x19')]);_0x518e7c['filters']=_[_0x398d('0x1b')](_0x518e7c[_0x398d('0x17')],_0x518e7c[_0x398d('0x19')]);_0x3dddcf[_0x398d('0x2c')]=_[_0x398d('0x1b')](_0x518e7c[_0x398d('0x17')],qs[_0x398d('0x2b')](_0x219651[_0x398d('0x19')][_0x398d('0x2b')]));_0x3dddcf['attributes']=_0x3dddcf[_0x398d('0x2c')][_0x398d('0x2d')]?_0x3dddcf[_0x398d('0x2c')]:_0x518e7c[_0x398d('0x17')];if(_0x219651[_0x398d('0x19')][_0x398d('0x39')]){_0x3dddcf['include']=[{'all':!![]}];}_0x3dddcf=_[_0x398d('0x35')]({},_0x3dddcf,_0x219651[_0x398d('0x38')]);return db['CmHopper'][_0x398d('0x40')](_0x3dddcf)[_0x398d('0xc')](handleEntityNotFound(_0x4d57cc,null))[_0x398d('0xc')](respondWithResult(_0x4d57cc,null))['catch'](handleError(_0x4d57cc,null));};exports[_0x398d('0x41')]=function(_0x19dabb,_0x1b3e1a){return db[_0x398d('0x12')][_0x398d('0x41')](_0x19dabb['body'],{})[_0x398d('0xc')](respondWithResult(_0x1b3e1a,0xc9))[_0x398d('0x3d')](handleError(_0x1b3e1a,null));};exports[_0x398d('0xb')]=function(_0x532aaa,_0x2e4acb){if(_0x532aaa[_0x398d('0x42')]['id']){delete _0x532aaa['body']['id'];}return db[_0x398d('0x12')][_0x398d('0x40')]({'where':{'id':_0x532aaa[_0x398d('0x3f')]['id']}})[_0x398d('0xc')](handleEntityNotFound(_0x2e4acb,null))[_0x398d('0xc')](saveUpdates(_0x532aaa[_0x398d('0x42')],null))[_0x398d('0xc')](respondWithResult(_0x2e4acb,null))[_0x398d('0x3d')](handleError(_0x2e4acb,null));};exports['describe']=function(_0x34c0fc,_0x3f146c){return db['CmHopper']['describe']()[_0x398d('0xc')](respondWithResult(_0x3f146c,null))[_0x398d('0x3d')](handleError(_0x3f146c,null));};exports[_0x398d('0x43')]=function(_0x35d260,_0x49a6de){var _0x40418d;var _0x4826b2=_0x35d260[_0x398d('0x3f')]['id'];return db['CmHopper'][_0x398d('0x40')]({'where':{'id':_0x35d260['params']['id']}})['then'](handleEntityNotFound(_0x49a6de,null))['then'](function(_0x38604a){if(_0x38604a){return _0x38604a[_0x398d('0x43')]()[_0x398d('0xc')](function(_0x3fa030){return _0x3fa030;});}})['then'](function(_0x5d864a){_0x40418d=_0x5d864a;if(_0x5d864a){if(_0x5d864a[_0x398d('0x44')]||_0x5d864a[_0x398d('0x45')]){return db[_0x5d864a[_0x398d('0x44')]?'VoiceQueue':_0x398d('0x46')][_0x398d('0x40')]({'where':{'id':_0x5d864a[_0x398d('0x44')]?_0x5d864a[_0x398d('0x44')]:_0x5d864a[_0x398d('0x45')]},'attributes':['id',_0x398d('0xf')],'raw':!![]});}}})['then'](function(_0x158828){var _0xfb9f18={};if(_0x158828){_[_0x398d('0x35')](_0xfb9f18,_[_0x398d('0x47')](_0x40418d['dataValues'],[_0x398d('0x48'),_0x398d('0x49'),'id']));_0xfb9f18[_0x398d('0x4a')]=0x15;_0xfb9f18[_0x398d('0x4b')]='deleted';_0xfb9f18['campaign']=_0x158828[_0x398d('0xf')];_0xfb9f18['membername']=_0x35d260[_0x398d('0x4c')][_0x398d('0xf')];_0xfb9f18['UserId']=_0x35d260[_0x398d('0x4c')]['id'];_0xfb9f18['deleted']=!![];_0xfb9f18[_0x398d('0x4d')]=moment()[_0x398d('0x4e')](_0x398d('0x4f'));_0xfb9f18[_0x398d('0x50')]=_0x40418d[_0x398d('0x51')];_0xfb9f18[_0x398d('0x52')]=_0x40418d[_0x398d('0x44')]?_0x398d('0x53'):_0x398d('0x54');return db[_0x398d('0x55')][_0x398d('0x40')]({'where':{'id':_0xfb9f18[_0x398d('0x56')]},'attributes':[_0x398d('0x57'),_0x398d('0x58')]})[_0x398d('0xc')](function(_0x3f3108){if(!_[_0x398d('0x59')](_0x49a6de)&&!_[_0x398d('0x59')](_0x3f3108[_0x398d('0x57')])){_0xfb9f18[_0x398d('0x5a')]=_0x3f3108[_0x398d('0x57')];if(!_[_0x398d('0x59')](_0x3f3108['lastName'])){_0xfb9f18[_0x398d('0x5a')]+='\x20'+_0x3f3108[_0x398d('0x58')];}}})[_0x398d('0x5b')](function(){return db[_0x398d('0x5c')][_0x398d('0x41')](_0xfb9f18);});}})[_0x398d('0xc')](function(_0x22d30a){return db[_0x398d('0x5d')][_0x398d('0x43')]({'where':{'CmHopperId':_0x4826b2}});})[_0x398d('0xc')](function(){return _0x49a6de[_0x398d('0x10')](0xcc)['end']();})[_0x398d('0x3d')](handleError(_0x49a6de,null));};exports[_0x398d('0x5e')]=function(_0x545a5d,_0x362471){var _0x548a8a=[];return db['CmContact']['describe']()[_0x398d('0xc')](function(_0x38970c){_0x548a8a=_['keys'](_0x38970c);return _0x545a5d[_0x398d('0x4c')][_0x398d('0x5f')]({'where':{'type':_0x398d('0x60'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x398d('0x61'),_0x398d('0x62')],'raw':!![]});})[_0x398d('0xc')](function(_0x5dcb9c){if(_0x5dcb9c&&_0x5dcb9c[_0x398d('0x2d')]){return db['sequelize'][_0x398d('0x63')](function(_0x5a7de6){var _0x4501a9={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x398d('0x4f'))},'VoiceQueueId':{'$in':_[_0x398d('0x36')](_0x5dcb9c,'id')},'$or':[{'UserId':null},{'UserId':_0x545a5d[_0x398d('0x4c')]['id']}]};var _0x322eec={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x5dcb9c)[_0x398d('0x34')](['dialPreviewAutoRecallMe',0x0])[_0x398d('0x36')]('id')[_0x398d('0x64')]()},'$or':[{'UserId':null},{'UserId':_0x545a5d[_0x398d('0x4c')]['id']}]};var _0x4f6cff={'$or':[_0x4501a9,_0x322eec]};var _0x21026=[];if(_0x545a5d[_0x398d('0x42')][_0x398d('0x65')]&&_0x545a5d['body'][_0x398d('0x65')]===_0x398d('0x66')){if(!_[_0x398d('0x67')](_0x545a5d['body']['hopperIds'])){_0x4f6cff['id']={'$in':_0x545a5d[_0x398d('0x42')][_0x398d('0x68')]};}_0x21026=[['priority','ASC'],[_0x398d('0x69'),_0x5dcb9c[0x0]['dialOrderByScheduledAt']===_0x398d('0x6a')?'DESC':_0x398d('0x6a')],db['sequelize']['literal']('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0x398d('0x6b')]];}else{if(!_[_0x398d('0x67')](_0x545a5d[_0x398d('0x42')][_0x398d('0x68')])){_0x4f6cff['id']={'$notIn':_0x545a5d[_0x398d('0x42')]['hopperIds']};}_0x21026=[['priority','DESC'],['scheduledAt',_0x5dcb9c[0x0][_0x398d('0x61')]],db['sequelize'][_0x398d('0x6c')](_0x398d('0x6d')),['id',_0x398d('0x6a')]];}return db[_0x398d('0x12')][_0x398d('0x6e')]({'attributes':['id',_0x398d('0x6f'),'phone','recallme'],'where':_0x4f6cff,'order':_0x21026,'transaction':_0x5a7de6,'lock':_0x5a7de6[_0x398d('0x70')][_0x398d('0x71')],'include':[{'model':db['CmContact'],'as':_0x398d('0x72'),'attributes':_0x548a8a,'include':[{'model':db['CmCompany'],'as':_0x398d('0x73'),'attributes':['id',_0x398d('0xf')]}]},{'model':db[_0x398d('0x74')],'as':_0x398d('0x75'),'attributes':['id','name']},{'model':db[_0x398d('0x76')],'as':_0x398d('0x77'),'attributes':['id',_0x398d('0xf'),_0x398d('0x78')]}]})[_0x398d('0xc')](function(_0x550d71){if(_0x550d71){return _0x550d71[_0x398d('0xb')]({'UserId':_0x545a5d['user']['id']},{'transaction':_0x5a7de6});}});});}})[_0x398d('0xc')](handleEntityNotFound(_0x362471,null))[_0x398d('0xc')](respondWithResult(_0x362471,null))[_0x398d('0x3d')](handleError(_0x362471,null));};exports['getPreviewRecall']=function(_0x135d5d,_0x15be8d,_0x5492b6){var _0x37c9e2=[];var _0x36801f=_0x135d5d[_0x398d('0x3f')]['id'];var _0x4eeee5=_0x135d5d['user']['id'];return db['CmContact']['describe']()[_0x398d('0xc')](function(_0x56fc73){_0x37c9e2=_[_0x398d('0x18')](_0x56fc73);return db[_0x398d('0x79')][_0x398d('0x63')](function(_0x1ccd23){const _0x19f1c6={'id':_0x36801f};return db[_0x398d('0x12')]['findOne']({'attributes':['id',_0x398d('0x6f'),_0x398d('0x7a')],'where':_0x19f1c6,'transaction':_0x1ccd23,'lock':_0x1ccd23['LOCK'][_0x398d('0x71')],'include':[{'model':db[_0x398d('0x55')],'as':_0x398d('0x72'),'attributes':_0x37c9e2,'include':[{'model':db[_0x398d('0x7b')],'as':_0x398d('0x73'),'attributes':['id',_0x398d('0xf')]}]},{'model':db[_0x398d('0x74')],'as':_0x398d('0x75'),'attributes':['id',_0x398d('0xf')]},{'model':db[_0x398d('0x76')],'as':'Queue','attributes':['id',_0x398d('0xf'),_0x398d('0x78')]}]})[_0x398d('0xc')](function(_0x5bd2cf){if(_0x5bd2cf){return _0x5bd2cf[_0x398d('0xb')]({'UserId':_0x4eeee5},{'transaction':_0x1ccd23});}});});})[_0x398d('0xc')](handleEntityNotFound(_0x15be8d,null))[_0x398d('0xc')](respondWithResult(_0x15be8d,null))[_0x398d('0x3d')](handleError(_0x15be8d,null));};exports[_0x398d('0x7c')]=function(_0x2ba660,_0x2f9fba){return _0x2ba660[_0x398d('0x4c')]['getVoiceQueues']({'where':{'type':_0x398d('0x60'),'dialActive':!![],'dialMethod':_0x398d('0x7d')},'attributes':['id'],'raw':!![]})[_0x398d('0xc')](function(_0x46e7e0){if(_0x46e7e0&&_0x46e7e0[_0x398d('0x2d')]){return db[_0x398d('0x12')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x398d('0x4f'))},'VoiceQueueId':{'$in':_[_0x398d('0x36')](_0x46e7e0,'id')},'$or':[{'UserId':null},{'UserId':_0x2ba660[_0x398d('0x4c')]['id']}]}});}return 0x0;})[_0x398d('0xc')](function(_0x59f6a0){if(!_['isNil'](_0x59f6a0)&&_[_0x398d('0x7e')](_0x59f6a0)){return _0x2f9fba[_0x398d('0x10')](0xc8)[_0x398d('0x4')]({'contacts':_0x59f6a0});}else{logger[_0x398d('0xd')](_0x398d('0x7f'),'getOpenContacts',0x194,'entity\x20not\x20found');_0x2f9fba['sendStatus'](0x194);}})[_0x398d('0x3d')](handleError(_0x2f9fba,null));};exports[_0x398d('0x80')]=function(_0x23d8b6,_0xc6066a){var _0x2bed67=shared[_0x398d('0x81')];var _0x444c98=[];_[_0x398d('0x36')](_0x2bed67,function(_0x37cf92){_0x444c98[_0x398d('0x82')]({'id':_0x37cf92[_0x398d('0xf')],'name':_0x37cf92[_0x398d('0xf')],'utcOffset':_0x37cf92[_0x398d('0x83')]});});return _0xc6066a[_0x398d('0x10')](0xc8)[_0x398d('0x4')]({'tz':_0x444c98});};exports[_0x398d('0x84')]=function(_0x35a491,_0x34142f){var _0x551b72=shared['timezones'];var _0x34d8bd={};if(!_[_0x398d('0x59')](_0x551b72[_0x35a491[_0x398d('0x42')]['id']]))_0x34d8bd=_0x551b72[_0x35a491['body']['id']];return _0x34142f[_0x398d('0x10')](0xc8)[_0x398d('0x4')](_0x34d8bd);};