Built motion from commit 47436d59.|2.6.7
[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 _0x6aa7=['merge','where','filter','options','includeAll','include','findAll','rows','catch','show','find','create','body','params','describe','destroy','VoiceQueueId','Campaign','CampaignId','omit','createdAt','updatedAt','state','statedesc','deleted','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','outbound','preview','dialOrderByScheduledAt','dialPreviewAutoRecallMe','transaction','direction','prev','hopperIds','scheduledAt','ASC','DESC','sequelize','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','isEmpty','priority','findOne','scheduledat','recallme','UPDATE','Contact','CmCompany','Company','CmList','List','VoiceQueue','Queue','dialActive','getPreviewRecall','LOCK','isNumber','error','CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts','entity\x20not\x20found','push','utcOffset','json','getTimezone','timezones','moment','../../components/parsers/qs','../../config/logger','api','../../config/environment','offset','limit','undefined','count','status','set','Content-Range','update','then','sendStatus','stack','name','send','index','map','CmHopper','rawAttributes','fieldName','type','key','model','query','keys','intersection','filters','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$contains','$any','attributes','fields','length','hasOwnProperty','nolimit','sort','pick'];(function(_0x2182bb,_0x179a45){var _0x3162ce=function(_0x4e1a7d){while(--_0x4e1a7d){_0x2182bb['push'](_0x2182bb['shift']());}};_0x3162ce(++_0x179a45);}(_0x6aa7,0x178));var _0x76aa=function(_0x1d0a38,_0x4e0619){_0x1d0a38=_0x1d0a38-0x0;var _0x13c175=_0x6aa7[_0x1d0a38];return _0x13c175;};'use strict';var moment=require(_0x76aa('0x0'));var _=require('lodash');var qs=require(_0x76aa('0x1'));var logger=require(_0x76aa('0x2'))(_0x76aa('0x3'));var shared=require(_0x76aa('0x4'));var db=require('../../mysqldb')['db'];function respondWithResult(_0x13f62b,_0xef15ef){_0xef15ef=_0xef15ef||0xc8;return function(_0x1d6e04){if(_0x1d6e04){return _0x13f62b['status'](_0xef15ef)['json'](_0x1d6e04);}};}function respondWithFilteredResult(_0x1aceaa,_0x4d53f6){return function(_0x32dee5){if(_0x32dee5){var _0x36d12b=typeof _0x4d53f6[_0x76aa('0x5')]==='undefined'&&typeof _0x4d53f6[_0x76aa('0x6')]===_0x76aa('0x7');var _0x3a3f36=_0x32dee5['count'];var _0xcd99aa=_0x36d12b?0x0:_0x4d53f6[_0x76aa('0x5')];var _0x41643a=_0x36d12b?_0x32dee5[_0x76aa('0x8')]:_0x4d53f6[_0x76aa('0x5')]+_0x4d53f6[_0x76aa('0x6')];var _0x2c5075;if(_0x41643a>=_0x3a3f36){_0x41643a=_0x3a3f36;_0x2c5075=0xc8;}else{_0x2c5075=0xce;}_0x1aceaa[_0x76aa('0x9')](_0x2c5075);return _0x1aceaa[_0x76aa('0xa')](_0x76aa('0xb'),_0xcd99aa+'-'+_0x41643a+'/'+_0x3a3f36)['json'](_0x32dee5);}return null;};}function saveUpdates(_0x112c39,_0x5df49c){return function(_0x226536){if(_0x226536){return _0x226536[_0x76aa('0xc')](_0x112c39)[_0x76aa('0xd')](function(_0x8e44ed){return _0x8e44ed;});}return null;};}function handleEntityNotFound(_0x10432c,_0x4e309f){return function(_0x5f5b59){if(!_0x5f5b59){_0x10432c[_0x76aa('0xe')](0x194);}return _0x5f5b59;};}function handleError(_0x4cfc34,_0x180d92){_0x180d92=_0x180d92||0x1f4;return function(_0x319bf1){logger['error'](_0x319bf1[_0x76aa('0xf')]);if(_0x319bf1['name']){delete _0x319bf1[_0x76aa('0x10')];}_0x4cfc34['status'](_0x180d92)[_0x76aa('0x11')](_0x319bf1);};}exports[_0x76aa('0x12')]=function(_0x2ab30b,_0x21c16d){var _0xa1bc7={},_0x3ead3f={},_0x496902={'count':0x0,'rows':[]};var _0x5d6202=_[_0x76aa('0x13')](db[_0x76aa('0x14')][_0x76aa('0x15')],function(_0x15b931){return{'name':_0x15b931[_0x76aa('0x16')],'type':_0x15b931[_0x76aa('0x17')][_0x76aa('0x18')]};});_0x3ead3f[_0x76aa('0x19')]=_[_0x76aa('0x13')](_0x5d6202,'name');_0x3ead3f[_0x76aa('0x1a')]=_[_0x76aa('0x1b')](_0x2ab30b[_0x76aa('0x1a')]);_0x3ead3f['filters']=_[_0x76aa('0x1c')](_0x3ead3f[_0x76aa('0x19')],_0x3ead3f[_0x76aa('0x1a')]);_0x3ead3f[_0x76aa('0x1d')]=_[_0x76aa('0x1e')](_0x3ead3f[_0x76aa('0x1d')],[_0x76aa('0x1f'),_0x76aa('0x20'),_0x76aa('0x21'),_0x76aa('0x22'),_0x76aa('0x23'),_0x76aa('0x24'),_0x76aa('0x25'),'$eq',_0x76aa('0x26'),_0x76aa('0x27'),_0x76aa('0x28'),_0x76aa('0x29'),_0x76aa('0x2a'),_0x76aa('0x2b'),_0x76aa('0x2c'),_0x76aa('0x2d'),_0x76aa('0x2e'),_0x76aa('0x2b'),'$overlap',_0x76aa('0x2f'),'$contained',_0x76aa('0x30')]);_0xa1bc7[_0x76aa('0x31')]=_[_0x76aa('0x1c')](_0x3ead3f[_0x76aa('0x19')],qs[_0x76aa('0x32')](_0x2ab30b[_0x76aa('0x1a')][_0x76aa('0x32')]));_0xa1bc7[_0x76aa('0x31')]=_0xa1bc7[_0x76aa('0x31')][_0x76aa('0x33')]?_0xa1bc7['attributes']:_0x3ead3f[_0x76aa('0x19')];if(!_0x2ab30b[_0x76aa('0x1a')][_0x76aa('0x34')](_0x76aa('0x35'))){_0xa1bc7[_0x76aa('0x6')]=qs[_0x76aa('0x6')](_0x2ab30b[_0x76aa('0x1a')]['limit']);_0xa1bc7[_0x76aa('0x5')]=qs[_0x76aa('0x5')](_0x2ab30b['query'][_0x76aa('0x5')]);}_0xa1bc7['order']=qs[_0x76aa('0x36')](_0x2ab30b['query'][_0x76aa('0x36')]);_0xa1bc7['where']=qs['filters'](_[_0x76aa('0x37')](_0x2ab30b[_0x76aa('0x1a')],_0x3ead3f[_0x76aa('0x1d')]),_0x5d6202);if(_0x2ab30b[_0x76aa('0x1a')]['filter']){_0xa1bc7['where']=_[_0x76aa('0x38')](_0xa1bc7[_0x76aa('0x39')],{'$or':_[_0x76aa('0x13')](_0x5d6202,function(_0x23e2fd){if(_0x23e2fd[_0x76aa('0x17')]!=='VIRTUAL'){var _0x9ce5f4={};_0x9ce5f4[_0x23e2fd['name']]={'$like':'%'+_0x2ab30b['query'][_0x76aa('0x3a')]+'%'};return _0x9ce5f4;}})});}_0xa1bc7=_[_0x76aa('0x38')]({},_0xa1bc7,_0x2ab30b[_0x76aa('0x3b')]);var _0x127bc4={'where':_0xa1bc7['where']};return db[_0x76aa('0x14')][_0x76aa('0x8')](_0x127bc4)[_0x76aa('0xd')](function(_0x4e131a){_0x496902[_0x76aa('0x8')]=_0x4e131a;if(_0x2ab30b[_0x76aa('0x1a')][_0x76aa('0x3c')]){_0xa1bc7[_0x76aa('0x3d')]=[{'all':!![]}];}return db[_0x76aa('0x14')][_0x76aa('0x3e')](_0xa1bc7);})[_0x76aa('0xd')](function(_0x307d67){_0x496902[_0x76aa('0x3f')]=_0x307d67;return _0x496902;})['then'](respondWithFilteredResult(_0x21c16d,_0xa1bc7))[_0x76aa('0x40')](handleError(_0x21c16d,null));};exports[_0x76aa('0x41')]=function(_0x4a5a96,_0xa824e8){var _0x64612e={'raw':!![],'where':{'id':_0x4a5a96['params']['id']}},_0x2957aa={};_0x2957aa['model']=_[_0x76aa('0x1b')](db[_0x76aa('0x14')][_0x76aa('0x15')]);_0x2957aa[_0x76aa('0x1a')]=_['keys'](_0x4a5a96[_0x76aa('0x1a')]);_0x2957aa[_0x76aa('0x1d')]=_[_0x76aa('0x1c')](_0x2957aa[_0x76aa('0x19')],_0x2957aa[_0x76aa('0x1a')]);_0x64612e['attributes']=_[_0x76aa('0x1c')](_0x2957aa['model'],qs[_0x76aa('0x32')](_0x4a5a96['query']['fields']));_0x64612e['attributes']=_0x64612e[_0x76aa('0x31')]['length']?_0x64612e['attributes']:_0x2957aa['model'];if(_0x4a5a96[_0x76aa('0x1a')][_0x76aa('0x3c')]){_0x64612e[_0x76aa('0x3d')]=[{'all':!![]}];}_0x64612e=_[_0x76aa('0x38')]({},_0x64612e,_0x4a5a96[_0x76aa('0x3b')]);return db['CmHopper'][_0x76aa('0x42')](_0x64612e)[_0x76aa('0xd')](handleEntityNotFound(_0xa824e8,null))[_0x76aa('0xd')](respondWithResult(_0xa824e8,null))[_0x76aa('0x40')](handleError(_0xa824e8,null));};exports[_0x76aa('0x43')]=function(_0x47a308,_0x2f695c){return db[_0x76aa('0x14')]['create'](_0x47a308[_0x76aa('0x44')],{})['then'](respondWithResult(_0x2f695c,0xc9))[_0x76aa('0x40')](handleError(_0x2f695c,null));};exports[_0x76aa('0xc')]=function(_0x31930b,_0x18fd3e){if(_0x31930b[_0x76aa('0x44')]['id']){delete _0x31930b[_0x76aa('0x44')]['id'];}return db[_0x76aa('0x14')][_0x76aa('0x42')]({'where':{'id':_0x31930b[_0x76aa('0x45')]['id']}})[_0x76aa('0xd')](handleEntityNotFound(_0x18fd3e,null))['then'](saveUpdates(_0x31930b[_0x76aa('0x44')],null))['then'](respondWithResult(_0x18fd3e,null))[_0x76aa('0x40')](handleError(_0x18fd3e,null));};exports[_0x76aa('0x46')]=function(_0x5e95f5,_0x156d4e){return db['CmHopper']['describe']()[_0x76aa('0xd')](respondWithResult(_0x156d4e,null))['catch'](handleError(_0x156d4e,null));};exports[_0x76aa('0x47')]=function(_0x302a0c,_0x4315b3){var _0x2e5633;var _0x30c577=_0x302a0c[_0x76aa('0x45')]['id'];return db['CmHopper']['find']({'where':{'id':_0x302a0c[_0x76aa('0x45')]['id']}})[_0x76aa('0xd')](handleEntityNotFound(_0x4315b3,null))[_0x76aa('0xd')](function(_0x40e8ff){if(_0x40e8ff){return _0x40e8ff[_0x76aa('0x47')]()[_0x76aa('0xd')](function(_0x4c52d5){return _0x4c52d5;});}})[_0x76aa('0xd')](function(_0x2d631e){_0x2e5633=_0x2d631e;if(_0x2d631e){if(_0x2d631e[_0x76aa('0x48')]||_0x2d631e['CampaignId']){return db[_0x2d631e[_0x76aa('0x48')]?'VoiceQueue':_0x76aa('0x49')]['find']({'where':{'id':_0x2d631e[_0x76aa('0x48')]?_0x2d631e[_0x76aa('0x48')]:_0x2d631e[_0x76aa('0x4a')]},'attributes':['id',_0x76aa('0x10')],'raw':!![]});}}})[_0x76aa('0xd')](function(_0x316de3){var _0x953726={};if(_0x316de3){_['merge'](_0x953726,_[_0x76aa('0x4b')](_0x2e5633['dataValues'],[_0x76aa('0x4c'),_0x76aa('0x4d'),'id']));_0x953726[_0x76aa('0x4e')]=0x15;_0x953726[_0x76aa('0x4f')]=_0x76aa('0x50');_0x953726[_0x76aa('0x51')]=_0x316de3[_0x76aa('0x10')];_0x953726['membername']=_0x302a0c[_0x76aa('0x52')][_0x76aa('0x10')];_0x953726[_0x76aa('0x53')]=_0x302a0c[_0x76aa('0x52')]['id'];_0x953726['deleted']=!![];_0x953726[_0x76aa('0x54')]=moment()[_0x76aa('0x55')](_0x76aa('0x56'));_0x953726[_0x76aa('0x57')]=_0x2e5633[_0x76aa('0x58')];_0x953726[_0x76aa('0x59')]=_0x2e5633['VoiceQueueId']?_0x76aa('0x5a'):_0x76aa('0x5b');return db[_0x76aa('0x5c')][_0x76aa('0x42')]({'where':{'id':_0x953726[_0x76aa('0x5d')]},'attributes':[_0x76aa('0x5e'),_0x76aa('0x5f')]})['then'](function(_0x4910fb){if(!_[_0x76aa('0x60')](_0x4315b3)&&!_[_0x76aa('0x60')](_0x4910fb['firstName'])){_0x953726[_0x76aa('0x61')]=_0x4910fb[_0x76aa('0x5e')];if(!_['isNil'](_0x4910fb[_0x76aa('0x5f')])){_0x953726[_0x76aa('0x61')]+='\x20'+_0x4910fb[_0x76aa('0x5f')];}}})[_0x76aa('0x62')](function(){return db[_0x76aa('0x63')][_0x76aa('0x43')](_0x953726);});}})[_0x76aa('0xd')](function(_0x30573a){return db[_0x76aa('0x64')]['destroy']({'where':{'CmHopperId':_0x30c577}});})[_0x76aa('0xd')](function(){return _0x4315b3['status'](0xcc)[_0x76aa('0x65')]();})[_0x76aa('0x40')](handleError(_0x4315b3,null));};exports[_0x76aa('0x66')]=function(_0x16cc85,_0x343cf1){var _0x260ad2=[];return db[_0x76aa('0x5c')][_0x76aa('0x46')]()[_0x76aa('0xd')](function(_0x5eceba){_0x260ad2=_[_0x76aa('0x1b')](_0x5eceba);return _0x16cc85[_0x76aa('0x52')][_0x76aa('0x67')]({'where':{'type':_0x76aa('0x68'),'dialActive':!![],'dialMethod':_0x76aa('0x69')},'attributes':['id',_0x76aa('0x6a'),_0x76aa('0x6b')],'raw':!![]});})[_0x76aa('0xd')](function(_0x5546b6){if(_0x5546b6&&_0x5546b6[_0x76aa('0x33')]){return db['sequelize'][_0x76aa('0x6c')](function(_0x35881c){var _0x3e97f8={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x76aa('0x55')](_0x76aa('0x56'))},'VoiceQueueId':{'$in':_[_0x76aa('0x13')](_0x5546b6,'id')},'$or':[{'UserId':null},{'UserId':_0x16cc85[_0x76aa('0x52')]['id']}]};var _0x4a37f1={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x5546b6)[_0x76aa('0x3a')]([_0x76aa('0x6b'),0x0])['map']('id')['value']()},'$or':[{'UserId':null},{'UserId':_0x16cc85[_0x76aa('0x52')]['id']}]};var _0x13389d={'$or':[_0x3e97f8,_0x4a37f1]};var _0x5295a7=[];if(_0x16cc85[_0x76aa('0x44')][_0x76aa('0x6d')]&&_0x16cc85[_0x76aa('0x44')]['direction']===_0x76aa('0x6e')){if(!_['isEmpty'](_0x16cc85[_0x76aa('0x44')][_0x76aa('0x6f')])){_0x13389d['id']={'$in':_0x16cc85[_0x76aa('0x44')][_0x76aa('0x6f')]};}_0x5295a7=[['priority','ASC'],[_0x76aa('0x70'),_0x5546b6[0x0]['dialOrderByScheduledAt']===_0x76aa('0x71')?_0x76aa('0x72'):_0x76aa('0x71')],db[_0x76aa('0x73')][_0x76aa('0x74')](_0x76aa('0x75')),['id',_0x76aa('0x72')]];}else{if(!_[_0x76aa('0x76')](_0x16cc85[_0x76aa('0x44')]['hopperIds'])){_0x13389d['id']={'$notIn':_0x16cc85[_0x76aa('0x44')][_0x76aa('0x6f')]};}_0x5295a7=[[_0x76aa('0x77'),_0x76aa('0x72')],['scheduledAt',_0x5546b6[0x0]['dialOrderByScheduledAt']],db['sequelize'][_0x76aa('0x74')]('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id',_0x76aa('0x71')]];}return db[_0x76aa('0x14')][_0x76aa('0x78')]({'attributes':['id',_0x76aa('0x79'),'phone',_0x76aa('0x7a')],'where':_0x13389d,'order':_0x5295a7,'transaction':_0x35881c,'lock':_0x35881c['LOCK'][_0x76aa('0x7b')],'include':[{'model':db[_0x76aa('0x5c')],'as':_0x76aa('0x7c'),'attributes':_0x260ad2,'include':[{'model':db[_0x76aa('0x7d')],'as':_0x76aa('0x7e'),'attributes':['id','name']}]},{'model':db[_0x76aa('0x7f')],'as':_0x76aa('0x80'),'attributes':['id',_0x76aa('0x10')]},{'model':db[_0x76aa('0x81')],'as':_0x76aa('0x82'),'attributes':['id',_0x76aa('0x10'),_0x76aa('0x83')]}]})[_0x76aa('0xd')](function(_0x572f75){if(_0x572f75){return _0x572f75[_0x76aa('0xc')]({'UserId':_0x16cc85[_0x76aa('0x52')]['id']},{'transaction':_0x35881c});}});});}})['then'](handleEntityNotFound(_0x343cf1,null))[_0x76aa('0xd')](respondWithResult(_0x343cf1,null))[_0x76aa('0x40')](handleError(_0x343cf1,null));};exports[_0x76aa('0x84')]=function(_0x37cfa1,_0x1ad3c6,_0x51b101){var _0x2eaeb5=[];var _0x5dc923=_0x37cfa1[_0x76aa('0x45')]['id'];var _0x5988a0=_0x37cfa1['user']['id'];return db[_0x76aa('0x5c')][_0x76aa('0x46')]()['then'](function(_0x5d1de1){_0x2eaeb5=_[_0x76aa('0x1b')](_0x5d1de1);return db[_0x76aa('0x73')][_0x76aa('0x6c')](function(_0x588cc5){const _0x57bbc2={'id':_0x5dc923};return db[_0x76aa('0x14')][_0x76aa('0x78')]({'attributes':['id',_0x76aa('0x79'),'recallme'],'where':_0x57bbc2,'transaction':_0x588cc5,'lock':_0x588cc5[_0x76aa('0x85')]['UPDATE'],'include':[{'model':db[_0x76aa('0x5c')],'as':_0x76aa('0x7c'),'attributes':_0x2eaeb5,'include':[{'model':db[_0x76aa('0x7d')],'as':_0x76aa('0x7e'),'attributes':['id',_0x76aa('0x10')]}]},{'model':db['CmList'],'as':'List','attributes':['id',_0x76aa('0x10')]},{'model':db[_0x76aa('0x81')],'as':_0x76aa('0x82'),'attributes':['id','name',_0x76aa('0x83')]}]})[_0x76aa('0xd')](function(_0x2ce07f){if(_0x2ce07f){return _0x2ce07f[_0x76aa('0xc')]({'UserId':_0x5988a0},{'transaction':_0x588cc5});}});});})[_0x76aa('0xd')](handleEntityNotFound(_0x1ad3c6,null))['then'](respondWithResult(_0x1ad3c6,null))[_0x76aa('0x40')](handleError(_0x1ad3c6,null));};exports['getOpenContacts']=function(_0x213f7f,_0xca8769){return _0x213f7f[_0x76aa('0x52')][_0x76aa('0x67')]({'where':{'type':_0x76aa('0x68'),'dialActive':!![],'dialMethod':_0x76aa('0x69')},'attributes':['id'],'raw':!![]})['then'](function(_0x555682){if(_0x555682&&_0x555682['length']){return db['CmHopper']['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x76aa('0x55')](_0x76aa('0x56'))},'VoiceQueueId':{'$in':_['map'](_0x555682,'id')},'$or':[{'UserId':null},{'UserId':_0x213f7f['user']['id']}]}});}return 0x0;})['then'](function(_0x3a6326){if(!_[_0x76aa('0x60')](_0x3a6326)&&_[_0x76aa('0x86')](_0x3a6326)){return _0xca8769['status'](0xc8)['json']({'contacts':_0x3a6326});}else{logger[_0x76aa('0x87')](_0x76aa('0x88'),_0x76aa('0x89'),0x194,_0x76aa('0x8a'));_0xca8769[_0x76aa('0xe')](0x194);}})['catch'](handleError(_0xca8769,null));};exports['getTimezones']=function(_0x465a57,_0x5c18b4){var _0x5d9381=shared['timezones'];var _0x4673e6=[];_[_0x76aa('0x13')](_0x5d9381,function(_0x52d5ce){_0x4673e6[_0x76aa('0x8b')]({'id':_0x52d5ce[_0x76aa('0x10')],'name':_0x52d5ce['name'],'utcOffset':_0x52d5ce[_0x76aa('0x8c')]});});return _0x5c18b4[_0x76aa('0x9')](0xc8)[_0x76aa('0x8d')]({'tz':_0x4673e6});};exports[_0x76aa('0x8e')]=function(_0x1fa86b,_0x458ab9){var _0x1a8b6b=shared[_0x76aa('0x8f')];var _0x2243be={};if(!_['isNil'](_0x1a8b6b[_0x1fa86b[_0x76aa('0x44')]['id']]))_0x2243be=_0x1a8b6b[_0x1fa86b[_0x76aa('0x44')]['id']];return _0x458ab9['status'](0xc8)[_0x76aa('0x8d')](_0x2243be);};