Built motion from commit eddce310.|2.6.12
[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 _0x6c32=['type','keys','filters','model','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$not','$in','$notIn','$notLike','$notILike','$like','$overlap','$contains','$contained','attributes','intersection','fields','query','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','rows','catch','params','rawAttributes','include','create','body','find','describe','destroy','VoiceQueueId','VoiceQueue','Campaign','CampaignId','omit','dataValues','updatedAt','state','statedesc','deleted','campaign','user','format','calleridnum','phone','campaigntype','CmContact','lastName','isNil','firstName','calleridname','finally','CmHopperFinal','CmHopperAdditionalPhone','getPreview','getVoiceQueues','outbound','preview','dialPreviewAutoRecallMe','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','value','direction','prev','hopperIds','priority','ASC','scheduledAt','dialOrderByScheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','recallme','LOCK','Contact','Company','List','dialActive','getPreviewRecall','UPDATE','CmCompany','CmList','Queue','getOpenContacts','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','getTimezones','push','getTimezone','timezones','moment','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','update','then','stack','name','index','map','CmHopper','fieldName'];(function(_0x3c0a9d,_0x37d2f0){var _0x52fae3=function(_0x34d290){while(--_0x34d290){_0x3c0a9d['push'](_0x3c0a9d['shift']());}};_0x52fae3(++_0x37d2f0);}(_0x6c32,0x6e));var _0x26c3=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x6c32[_0x321bb2];return _0x9c12ed;};'use strict';var moment=require(_0x26c3('0x0'));var _=require(_0x26c3('0x1'));var qs=require(_0x26c3('0x2'));var logger=require(_0x26c3('0x3'))(_0x26c3('0x4'));var shared=require(_0x26c3('0x5'));var db=require(_0x26c3('0x6'))['db'];function respondWithResult(_0x321cc5,_0x36528a){_0x36528a=_0x36528a||0xc8;return function(_0x49d4a1){if(_0x49d4a1){return _0x321cc5[_0x26c3('0x7')](_0x36528a)[_0x26c3('0x8')](_0x49d4a1);}};}function respondWithFilteredResult(_0x15ac36,_0x57d915){return function(_0x187b81){if(_0x187b81){var _0x5b3a5f=typeof _0x57d915[_0x26c3('0x9')]===_0x26c3('0xa')&&typeof _0x57d915[_0x26c3('0xb')]===_0x26c3('0xa');var _0x2bbb9a=_0x187b81[_0x26c3('0xc')];var _0x155187=_0x5b3a5f?0x0:_0x57d915[_0x26c3('0x9')];var _0x356992=_0x5b3a5f?_0x187b81[_0x26c3('0xc')]:_0x57d915['offset']+_0x57d915['limit'];var _0x4aa8e2;if(_0x356992>=_0x2bbb9a){_0x356992=_0x2bbb9a;_0x4aa8e2=0xc8;}else{_0x4aa8e2=0xce;}_0x15ac36['status'](_0x4aa8e2);return _0x15ac36[_0x26c3('0xd')](_0x26c3('0xe'),_0x155187+'-'+_0x356992+'/'+_0x2bbb9a)[_0x26c3('0x8')](_0x187b81);}return null;};}function saveUpdates(_0x457fc9,_0x4b8d92){return function(_0x4c7b94){if(_0x4c7b94){return _0x4c7b94[_0x26c3('0xf')](_0x457fc9)[_0x26c3('0x10')](function(_0xbbbec7){return _0xbbbec7;});}return null;};}function handleEntityNotFound(_0x3cd3c7,_0x17c399){return function(_0x568d0b){if(!_0x568d0b){_0x3cd3c7['sendStatus'](0x194);}return _0x568d0b;};}function handleError(_0x2acfb1,_0xc14c69){_0xc14c69=_0xc14c69||0x1f4;return function(_0x4f4256){logger['error'](_0x4f4256[_0x26c3('0x11')]);if(_0x4f4256['name']){delete _0x4f4256[_0x26c3('0x12')];}_0x2acfb1['status'](_0xc14c69)['send'](_0x4f4256);};}exports[_0x26c3('0x13')]=function(_0x5545ee,_0x38fe17){var _0x50a3e5={},_0x170039={},_0x2613e2={'count':0x0,'rows':[]};var _0x1405fb=_[_0x26c3('0x14')](db[_0x26c3('0x15')]['rawAttributes'],function(_0x5c530f){return{'name':_0x5c530f[_0x26c3('0x16')],'type':_0x5c530f[_0x26c3('0x17')]['key']};});_0x170039['model']=_[_0x26c3('0x14')](_0x1405fb,'name');_0x170039['query']=_[_0x26c3('0x18')](_0x5545ee['query']);_0x170039[_0x26c3('0x19')]=_['intersection'](_0x170039[_0x26c3('0x1a')],_0x170039['query']);_0x170039[_0x26c3('0x19')]=_[_0x26c3('0x1b')](_0x170039[_0x26c3('0x19')],[_0x26c3('0x1c'),_0x26c3('0x1d'),_0x26c3('0x1e'),_0x26c3('0x1f'),_0x26c3('0x20'),_0x26c3('0x21'),_0x26c3('0x22'),'$eq',_0x26c3('0x23'),'$between','$notBetween',_0x26c3('0x24'),_0x26c3('0x25'),'$like',_0x26c3('0x26'),'$iLike',_0x26c3('0x27'),_0x26c3('0x28'),_0x26c3('0x29'),_0x26c3('0x2a'),_0x26c3('0x2b'),'$any']);_0x50a3e5[_0x26c3('0x2c')]=_[_0x26c3('0x2d')](_0x170039[_0x26c3('0x1a')],qs[_0x26c3('0x2e')](_0x5545ee[_0x26c3('0x2f')][_0x26c3('0x2e')]));_0x50a3e5['attributes']=_0x50a3e5[_0x26c3('0x2c')][_0x26c3('0x30')]?_0x50a3e5[_0x26c3('0x2c')]:_0x170039['model'];if(!_0x5545ee[_0x26c3('0x2f')][_0x26c3('0x31')](_0x26c3('0x32'))){_0x50a3e5[_0x26c3('0xb')]=qs[_0x26c3('0xb')](_0x5545ee[_0x26c3('0x2f')]['limit']);_0x50a3e5[_0x26c3('0x9')]=qs[_0x26c3('0x9')](_0x5545ee['query']['offset']);}_0x50a3e5['order']=qs['sort'](_0x5545ee['query'][_0x26c3('0x33')]);_0x50a3e5[_0x26c3('0x34')]=qs['filters'](_[_0x26c3('0x35')](_0x5545ee[_0x26c3('0x2f')],_0x170039['filters']),_0x1405fb);if(_0x5545ee['query'][_0x26c3('0x36')]){_0x50a3e5['where']=_[_0x26c3('0x37')](_0x50a3e5['where'],{'$or':_[_0x26c3('0x14')](_0x1405fb,function(_0x40e41c){if(_0x40e41c[_0x26c3('0x17')]!==_0x26c3('0x38')){var _0x474349={};_0x474349[_0x40e41c['name']]={'$like':'%'+_0x5545ee[_0x26c3('0x2f')][_0x26c3('0x36')]+'%'};return _0x474349;}})});}_0x50a3e5=_[_0x26c3('0x37')]({},_0x50a3e5,_0x5545ee[_0x26c3('0x39')]);var _0x43145f={'where':_0x50a3e5[_0x26c3('0x34')]};return db['CmHopper']['count'](_0x43145f)[_0x26c3('0x10')](function(_0xcdb3fb){_0x2613e2[_0x26c3('0xc')]=_0xcdb3fb;if(_0x5545ee[_0x26c3('0x2f')][_0x26c3('0x3a')]){_0x50a3e5['include']=[{'all':!![]}];}return db['CmHopper']['findAll'](_0x50a3e5);})[_0x26c3('0x10')](function(_0x3fc4f7){_0x2613e2[_0x26c3('0x3b')]=_0x3fc4f7;return _0x2613e2;})[_0x26c3('0x10')](respondWithFilteredResult(_0x38fe17,_0x50a3e5))[_0x26c3('0x3c')](handleError(_0x38fe17,null));};exports['show']=function(_0x592764,_0x6db262){var _0x16e680={'raw':!![],'where':{'id':_0x592764[_0x26c3('0x3d')]['id']}},_0x2d9e80={};_0x2d9e80['model']=_[_0x26c3('0x18')](db[_0x26c3('0x15')][_0x26c3('0x3e')]);_0x2d9e80[_0x26c3('0x2f')]=_[_0x26c3('0x18')](_0x592764[_0x26c3('0x2f')]);_0x2d9e80[_0x26c3('0x19')]=_[_0x26c3('0x2d')](_0x2d9e80[_0x26c3('0x1a')],_0x2d9e80[_0x26c3('0x2f')]);_0x16e680[_0x26c3('0x2c')]=_[_0x26c3('0x2d')](_0x2d9e80[_0x26c3('0x1a')],qs['fields'](_0x592764[_0x26c3('0x2f')][_0x26c3('0x2e')]));_0x16e680[_0x26c3('0x2c')]=_0x16e680[_0x26c3('0x2c')][_0x26c3('0x30')]?_0x16e680[_0x26c3('0x2c')]:_0x2d9e80['model'];if(_0x592764[_0x26c3('0x2f')]['includeAll']){_0x16e680[_0x26c3('0x3f')]=[{'all':!![]}];}_0x16e680=_['merge']({},_0x16e680,_0x592764[_0x26c3('0x39')]);return db[_0x26c3('0x15')]['find'](_0x16e680)[_0x26c3('0x10')](handleEntityNotFound(_0x6db262,null))[_0x26c3('0x10')](respondWithResult(_0x6db262,null))[_0x26c3('0x3c')](handleError(_0x6db262,null));};exports[_0x26c3('0x40')]=function(_0x651d74,_0x4a7d48){return db[_0x26c3('0x15')]['create'](_0x651d74[_0x26c3('0x41')],{})['then'](respondWithResult(_0x4a7d48,0xc9))['catch'](handleError(_0x4a7d48,null));};exports[_0x26c3('0xf')]=function(_0x2b86da,_0x278563){if(_0x2b86da['body']['id']){delete _0x2b86da[_0x26c3('0x41')]['id'];}return db[_0x26c3('0x15')][_0x26c3('0x42')]({'where':{'id':_0x2b86da[_0x26c3('0x3d')]['id']}})[_0x26c3('0x10')](handleEntityNotFound(_0x278563,null))[_0x26c3('0x10')](saveUpdates(_0x2b86da['body'],null))[_0x26c3('0x10')](respondWithResult(_0x278563,null))[_0x26c3('0x3c')](handleError(_0x278563,null));};exports[_0x26c3('0x43')]=function(_0x133cf7,_0x551e22){return db[_0x26c3('0x15')][_0x26c3('0x43')]()['then'](respondWithResult(_0x551e22,null))[_0x26c3('0x3c')](handleError(_0x551e22,null));};exports[_0x26c3('0x44')]=function(_0x522fe2,_0x4566ab){var _0x4827c6;var _0x2c6d8b=_0x522fe2[_0x26c3('0x3d')]['id'];return db[_0x26c3('0x15')][_0x26c3('0x42')]({'where':{'id':_0x522fe2[_0x26c3('0x3d')]['id']}})[_0x26c3('0x10')](handleEntityNotFound(_0x4566ab,null))[_0x26c3('0x10')](function(_0x4b7578){if(_0x4b7578){return _0x4b7578[_0x26c3('0x44')]()['then'](function(_0x4ada42){return _0x4ada42;});}})[_0x26c3('0x10')](function(_0x3a46f9){_0x4827c6=_0x3a46f9;if(_0x3a46f9){if(_0x3a46f9[_0x26c3('0x45')]||_0x3a46f9['CampaignId']){return db[_0x3a46f9['VoiceQueueId']?_0x26c3('0x46'):_0x26c3('0x47')][_0x26c3('0x42')]({'where':{'id':_0x3a46f9['VoiceQueueId']?_0x3a46f9[_0x26c3('0x45')]:_0x3a46f9[_0x26c3('0x48')]},'attributes':['id',_0x26c3('0x12')],'raw':!![]});}}})['then'](function(_0x24f3a1){var _0x4f3564={};if(_0x24f3a1){_[_0x26c3('0x37')](_0x4f3564,_[_0x26c3('0x49')](_0x4827c6[_0x26c3('0x4a')],['createdAt',_0x26c3('0x4b'),'id']));_0x4f3564[_0x26c3('0x4c')]=0x15;_0x4f3564[_0x26c3('0x4d')]=_0x26c3('0x4e');_0x4f3564[_0x26c3('0x4f')]=_0x24f3a1[_0x26c3('0x12')];_0x4f3564['membername']=_0x522fe2[_0x26c3('0x50')][_0x26c3('0x12')];_0x4f3564['UserId']=_0x522fe2[_0x26c3('0x50')]['id'];_0x4f3564['deleted']=!![];_0x4f3564['deletedat']=moment()[_0x26c3('0x51')]('YYYY-MM-DD\x20HH:mm:ss');_0x4f3564[_0x26c3('0x52')]=_0x4827c6[_0x26c3('0x53')];_0x4f3564[_0x26c3('0x54')]=_0x4827c6[_0x26c3('0x45')]?'queue':'ivr';return db[_0x26c3('0x55')]['find']({'where':{'id':_0x4f3564['ContactId']},'attributes':['firstName',_0x26c3('0x56')]})['then'](function(_0x4a0100){if(!_[_0x26c3('0x57')](_0x4566ab)&&!_[_0x26c3('0x57')](_0x4a0100[_0x26c3('0x58')])){_0x4f3564[_0x26c3('0x59')]=_0x4a0100[_0x26c3('0x58')];if(!_[_0x26c3('0x57')](_0x4a0100['lastName'])){_0x4f3564[_0x26c3('0x59')]+='\x20'+_0x4a0100[_0x26c3('0x56')];}}})[_0x26c3('0x5a')](function(){return db[_0x26c3('0x5b')]['create'](_0x4f3564);});}})[_0x26c3('0x10')](function(_0x2c8390){return db[_0x26c3('0x5c')][_0x26c3('0x44')]({'where':{'CmHopperId':_0x2c6d8b}});})[_0x26c3('0x10')](function(){return _0x4566ab[_0x26c3('0x7')](0xcc)['end']();})[_0x26c3('0x3c')](handleError(_0x4566ab,null));};exports[_0x26c3('0x5d')]=function(_0x34c041,_0x3ad7b1){var _0x5cc9fc=[];return db[_0x26c3('0x55')][_0x26c3('0x43')]()[_0x26c3('0x10')](function(_0x416373){_0x5cc9fc=_['keys'](_0x416373);return _0x34c041[_0x26c3('0x50')][_0x26c3('0x5e')]({'where':{'type':_0x26c3('0x5f'),'dialActive':!![],'dialMethod':_0x26c3('0x60')},'attributes':['id','dialOrderByScheduledAt',_0x26c3('0x61')],'raw':!![]});})['then'](function(_0x2ada84){if(_0x2ada84&&_0x2ada84['length']){return db[_0x26c3('0x62')][_0x26c3('0x63')](function(_0x4bfda1){var _0x4518bc={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x26c3('0x51')](_0x26c3('0x64'))},'VoiceQueueId':{'$in':_[_0x26c3('0x14')](_0x2ada84,'id')},'$or':[{'UserId':null},{'UserId':_0x34c041[_0x26c3('0x50')]['id']}]};var _0x4fbd2e={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x2ada84)[_0x26c3('0x36')]([_0x26c3('0x61'),0x0])[_0x26c3('0x14')]('id')[_0x26c3('0x65')]()},'$or':[{'UserId':null},{'UserId':_0x34c041[_0x26c3('0x50')]['id']}]};var _0x3268d7={'$or':[_0x4518bc,_0x4fbd2e]};var _0x38cd7e=[];if(_0x34c041['body'][_0x26c3('0x66')]&&_0x34c041[_0x26c3('0x41')][_0x26c3('0x66')]===_0x26c3('0x67')){if(!_['isEmpty'](_0x34c041[_0x26c3('0x41')][_0x26c3('0x68')])){_0x3268d7['id']={'$in':_0x34c041['body'][_0x26c3('0x68')]};}_0x38cd7e=[[_0x26c3('0x69'),_0x26c3('0x6a')],[_0x26c3('0x6b'),_0x2ada84[0x0][_0x26c3('0x6c')]===_0x26c3('0x6a')?_0x26c3('0x6d'):_0x26c3('0x6a')],db[_0x26c3('0x62')][_0x26c3('0x6e')](_0x26c3('0x6f')),['id',_0x26c3('0x6d')]];}else{if(!_['isEmpty'](_0x34c041['body']['hopperIds'])){_0x3268d7['id']={'$notIn':_0x34c041['body'][_0x26c3('0x68')]};}_0x38cd7e=[[_0x26c3('0x69'),_0x26c3('0x6d')],[_0x26c3('0x6b'),_0x2ada84[0x0][_0x26c3('0x6c')]],db[_0x26c3('0x62')][_0x26c3('0x6e')](_0x26c3('0x70')),['id','ASC']];}return db[_0x26c3('0x15')][_0x26c3('0x71')]({'attributes':['id',_0x26c3('0x72'),_0x26c3('0x53'),_0x26c3('0x73')],'where':_0x3268d7,'order':_0x38cd7e,'transaction':_0x4bfda1,'lock':_0x4bfda1[_0x26c3('0x74')]['UPDATE'],'include':[{'model':db[_0x26c3('0x55')],'as':_0x26c3('0x75'),'attributes':_0x5cc9fc,'include':[{'model':db['CmCompany'],'as':_0x26c3('0x76'),'attributes':['id',_0x26c3('0x12')]}]},{'model':db['CmList'],'as':_0x26c3('0x77'),'attributes':['id',_0x26c3('0x12')]},{'model':db[_0x26c3('0x46')],'as':'Queue','attributes':['id',_0x26c3('0x12'),_0x26c3('0x78')]}]})[_0x26c3('0x10')](function(_0x13f0ac){if(_0x13f0ac){return _0x13f0ac[_0x26c3('0xf')]({'UserId':_0x34c041[_0x26c3('0x50')]['id']},{'transaction':_0x4bfda1});}});});}})[_0x26c3('0x10')](handleEntityNotFound(_0x3ad7b1,null))['then'](respondWithResult(_0x3ad7b1,null))['catch'](handleError(_0x3ad7b1,null));};exports[_0x26c3('0x79')]=function(_0x1ce607,_0x1c7387,_0x18189a){var _0x56b282=[];var _0x3c03cb=_0x1ce607['params']['id'];var _0x568151=_0x1ce607[_0x26c3('0x50')]['id'];return db[_0x26c3('0x55')]['describe']()[_0x26c3('0x10')](function(_0x59a8b8){_0x56b282=_[_0x26c3('0x18')](_0x59a8b8);return db[_0x26c3('0x62')][_0x26c3('0x63')](function(_0x5bbaae){const _0xc40965={'id':_0x3c03cb};return db['CmHopper'][_0x26c3('0x71')]({'attributes':['id',_0x26c3('0x72'),_0x26c3('0x73')],'where':_0xc40965,'transaction':_0x5bbaae,'lock':_0x5bbaae[_0x26c3('0x74')][_0x26c3('0x7a')],'include':[{'model':db['CmContact'],'as':'Contact','attributes':_0x56b282,'include':[{'model':db[_0x26c3('0x7b')],'as':_0x26c3('0x76'),'attributes':['id','name']}]},{'model':db[_0x26c3('0x7c')],'as':_0x26c3('0x77'),'attributes':['id',_0x26c3('0x12')]},{'model':db['VoiceQueue'],'as':_0x26c3('0x7d'),'attributes':['id',_0x26c3('0x12'),'dialActive']}]})['then'](function(_0x1440c9){if(_0x1440c9){return _0x1440c9[_0x26c3('0xf')]({'UserId':_0x568151},{'transaction':_0x5bbaae});}});});})[_0x26c3('0x10')](handleEntityNotFound(_0x1c7387,null))[_0x26c3('0x10')](respondWithResult(_0x1c7387,null))[_0x26c3('0x3c')](handleError(_0x1c7387,null));};exports[_0x26c3('0x7e')]=function(_0x483458,_0x3ca3d7){return _0x483458[_0x26c3('0x50')]['getVoiceQueues']({'where':{'type':_0x26c3('0x5f'),'dialActive':!![],'dialMethod':_0x26c3('0x60')},'attributes':['id'],'raw':!![]})[_0x26c3('0x10')](function(_0x54691c){if(_0x54691c&&_0x54691c[_0x26c3('0x30')]){return db[_0x26c3('0x15')][_0x26c3('0xc')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x26c3('0x51')](_0x26c3('0x64'))},'VoiceQueueId':{'$in':_['map'](_0x54691c,'id')},'$or':[{'UserId':null},{'UserId':_0x483458['user']['id']}]}});}return 0x0;})[_0x26c3('0x10')](function(_0x469a0a){if(!_[_0x26c3('0x57')](_0x469a0a)&&_['isNumber'](_0x469a0a)){return _0x3ca3d7[_0x26c3('0x7')](0xc8)[_0x26c3('0x8')]({'contacts':_0x469a0a});}else{logger['error'](_0x26c3('0x7f'),_0x26c3('0x7e'),0x194,_0x26c3('0x80'));_0x3ca3d7['sendStatus'](0x194);}})[_0x26c3('0x3c')](handleError(_0x3ca3d7,null));};exports[_0x26c3('0x81')]=function(_0x452a3e,_0x188f2e){var _0x4e9d4b=shared['timezones'];var _0x34acb7=[];_[_0x26c3('0x14')](_0x4e9d4b,function(_0x1be246){_0x34acb7[_0x26c3('0x82')]({'id':_0x1be246[_0x26c3('0x12')],'name':_0x1be246[_0x26c3('0x12')],'utcOffset':_0x1be246['utcOffset']});});return _0x188f2e[_0x26c3('0x7')](0xc8)[_0x26c3('0x8')]({'tz':_0x34acb7});};exports[_0x26c3('0x83')]=function(_0x44a99e,_0x2c91f1){var _0x23f7af=shared[_0x26c3('0x84')];var _0x1da826={};if(!_[_0x26c3('0x57')](_0x23f7af[_0x44a99e[_0x26c3('0x41')]['id']]))_0x1da826=_0x23f7af[_0x44a99e['body']['id']];return _0x2c91f1[_0x26c3('0x7')](0xc8)[_0x26c3('0x8')](_0x1da826);};