c9c1ca42a9b7d86f367a04caa419f805d344821b
[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 _0x0207=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','rows','catch','params','find','create','body','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','user','UserId','deletedat','format','calleridnum','phone','campaigntype','ContactId','firstName','lastName','isNil','calleridname','finally','end','getPreview','CmContact','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','dialPreviewAutoRecallMe','transaction','value','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','Contact','CmCompany','List','Queue','dialActive','sequelize','recallme','UPDATE','Company','CmList','getOpenContacts','YYYY-MM-DD\x20HH:mm:ss','isNumber','getTimezones','timezones','push','utcOffset','json','getTimezone','lodash','api','../../config/environment','../../mysqldb','status','offset','undefined','limit','set','Content-Range','update','then','sendStatus','error','name','send','index','map','CmHopper','fieldName','type','key','model','query','keys','intersection','filters','concat','$and','$or','$gte','$lt','$lte','$eq','$in','$like','$iLike','$notILike','$overlap','$contains','$contained','$any'];(function(_0x220951,_0x44ed1e){var _0x55fd13=function(_0xa98175){while(--_0xa98175){_0x220951['push'](_0x220951['shift']());}};_0x55fd13(++_0x44ed1e);}(_0x0207,0x162));var _0x7020=function(_0x204a28,_0x359c57){_0x204a28=_0x204a28-0x0;var _0x2d8e3d=_0x0207[_0x204a28];return _0x2d8e3d;};'use strict';var moment=require('moment');var _=require(_0x7020('0x0'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x7020('0x1'));var shared=require(_0x7020('0x2'));var db=require(_0x7020('0x3'))['db'];function respondWithResult(_0x15db09,_0x2e62fd){_0x2e62fd=_0x2e62fd||0xc8;return function(_0x25174b){if(_0x25174b){return _0x15db09[_0x7020('0x4')](_0x2e62fd)['json'](_0x25174b);}};}function respondWithFilteredResult(_0x5074d7,_0x38c320){return function(_0x39263c){if(_0x39263c){var _0x3c6c11=typeof _0x38c320[_0x7020('0x5')]===_0x7020('0x6')&&typeof _0x38c320[_0x7020('0x7')]===_0x7020('0x6');var _0x4fa164=_0x39263c['count'];var _0x11a2e8=_0x3c6c11?0x0:_0x38c320[_0x7020('0x5')];var _0xd4432=_0x3c6c11?_0x39263c['count']:_0x38c320[_0x7020('0x5')]+_0x38c320[_0x7020('0x7')];var _0x4e16da;if(_0xd4432>=_0x4fa164){_0xd4432=_0x4fa164;_0x4e16da=0xc8;}else{_0x4e16da=0xce;}_0x5074d7[_0x7020('0x4')](_0x4e16da);return _0x5074d7[_0x7020('0x8')](_0x7020('0x9'),_0x11a2e8+'-'+_0xd4432+'/'+_0x4fa164)['json'](_0x39263c);}return null;};}function saveUpdates(_0x2d7d79,_0x598198){return function(_0xd41aed){if(_0xd41aed){return _0xd41aed[_0x7020('0xa')](_0x2d7d79)[_0x7020('0xb')](function(_0x5e47f5){return _0x5e47f5;});}return null;};}function handleEntityNotFound(_0x9403e5,_0x5f5872){return function(_0x3b8d60){if(!_0x3b8d60){_0x9403e5[_0x7020('0xc')](0x194);}return _0x3b8d60;};}function handleError(_0x12da12,_0x176190){_0x176190=_0x176190||0x1f4;return function(_0x17260e){logger[_0x7020('0xd')](_0x17260e['stack']);if(_0x17260e[_0x7020('0xe')]){delete _0x17260e['name'];}_0x12da12[_0x7020('0x4')](_0x176190)[_0x7020('0xf')](_0x17260e);};}exports[_0x7020('0x10')]=function(_0x1e3a06,_0x4fe6f1){var _0x3d5d25={},_0x3ac2f6={},_0x33daae={'count':0x0,'rows':[]};var _0x254b8b=_[_0x7020('0x11')](db[_0x7020('0x12')]['rawAttributes'],function(_0x5aa31f){return{'name':_0x5aa31f[_0x7020('0x13')],'type':_0x5aa31f[_0x7020('0x14')][_0x7020('0x15')]};});_0x3ac2f6[_0x7020('0x16')]=_['map'](_0x254b8b,_0x7020('0xe'));_0x3ac2f6[_0x7020('0x17')]=_[_0x7020('0x18')](_0x1e3a06[_0x7020('0x17')]);_0x3ac2f6['filters']=_[_0x7020('0x19')](_0x3ac2f6[_0x7020('0x16')],_0x3ac2f6[_0x7020('0x17')]);_0x3ac2f6[_0x7020('0x1a')]=_[_0x7020('0x1b')](_0x3ac2f6[_0x7020('0x1a')],[_0x7020('0x1c'),_0x7020('0x1d'),'$gt',_0x7020('0x1e'),_0x7020('0x1f'),_0x7020('0x20'),'$ne',_0x7020('0x21'),'$not','$between','$notBetween',_0x7020('0x22'),'$notIn',_0x7020('0x23'),'$notLike',_0x7020('0x24'),_0x7020('0x25'),_0x7020('0x23'),_0x7020('0x26'),_0x7020('0x27'),_0x7020('0x28'),_0x7020('0x29')]);_0x3d5d25[_0x7020('0x2a')]=_[_0x7020('0x19')](_0x3ac2f6[_0x7020('0x16')],qs[_0x7020('0x2b')](_0x1e3a06[_0x7020('0x17')][_0x7020('0x2b')]));_0x3d5d25['attributes']=_0x3d5d25[_0x7020('0x2a')][_0x7020('0x2c')]?_0x3d5d25[_0x7020('0x2a')]:_0x3ac2f6[_0x7020('0x16')];if(!_0x1e3a06[_0x7020('0x17')][_0x7020('0x2d')](_0x7020('0x2e'))){_0x3d5d25[_0x7020('0x7')]=qs[_0x7020('0x7')](_0x1e3a06[_0x7020('0x17')][_0x7020('0x7')]);_0x3d5d25[_0x7020('0x5')]=qs[_0x7020('0x5')](_0x1e3a06[_0x7020('0x17')]['offset']);}_0x3d5d25[_0x7020('0x2f')]=qs[_0x7020('0x30')](_0x1e3a06[_0x7020('0x17')][_0x7020('0x30')]);_0x3d5d25[_0x7020('0x31')]=qs[_0x7020('0x1a')](_[_0x7020('0x32')](_0x1e3a06[_0x7020('0x17')],_0x3ac2f6[_0x7020('0x1a')]),_0x254b8b);if(_0x1e3a06[_0x7020('0x17')][_0x7020('0x33')]){_0x3d5d25[_0x7020('0x31')]=_[_0x7020('0x34')](_0x3d5d25[_0x7020('0x31')],{'$or':_['map'](_0x254b8b,function(_0x20ec6f){if(_0x20ec6f[_0x7020('0x14')]!==_0x7020('0x35')){var _0x5d227b={};_0x5d227b[_0x20ec6f[_0x7020('0xe')]]={'$like':'%'+_0x1e3a06[_0x7020('0x17')][_0x7020('0x33')]+'%'};return _0x5d227b;}})});}_0x3d5d25=_[_0x7020('0x34')]({},_0x3d5d25,_0x1e3a06[_0x7020('0x36')]);var _0x24160e={'where':_0x3d5d25['where']};return db[_0x7020('0x12')]['count'](_0x24160e)['then'](function(_0x47a147){_0x33daae[_0x7020('0x37')]=_0x47a147;if(_0x1e3a06[_0x7020('0x17')][_0x7020('0x38')]){_0x3d5d25[_0x7020('0x39')]=[{'all':!![]}];}return db[_0x7020('0x12')]['findAll'](_0x3d5d25);})['then'](function(_0x2eaee9){_0x33daae[_0x7020('0x3a')]=_0x2eaee9;return _0x33daae;})[_0x7020('0xb')](respondWithFilteredResult(_0x4fe6f1,_0x3d5d25))[_0x7020('0x3b')](handleError(_0x4fe6f1,null));};exports['show']=function(_0x4076e9,_0x514f28){var _0x35ebee={'raw':!![],'where':{'id':_0x4076e9[_0x7020('0x3c')]['id']}},_0x1aaa5e={};_0x1aaa5e['model']=_['keys'](db[_0x7020('0x12')]['rawAttributes']);_0x1aaa5e[_0x7020('0x17')]=_[_0x7020('0x18')](_0x4076e9['query']);_0x1aaa5e[_0x7020('0x1a')]=_[_0x7020('0x19')](_0x1aaa5e[_0x7020('0x16')],_0x1aaa5e['query']);_0x35ebee[_0x7020('0x2a')]=_['intersection'](_0x1aaa5e[_0x7020('0x16')],qs[_0x7020('0x2b')](_0x4076e9[_0x7020('0x17')]['fields']));_0x35ebee[_0x7020('0x2a')]=_0x35ebee[_0x7020('0x2a')][_0x7020('0x2c')]?_0x35ebee[_0x7020('0x2a')]:_0x1aaa5e[_0x7020('0x16')];if(_0x4076e9['query'][_0x7020('0x38')]){_0x35ebee[_0x7020('0x39')]=[{'all':!![]}];}_0x35ebee=_[_0x7020('0x34')]({},_0x35ebee,_0x4076e9[_0x7020('0x36')]);return db['CmHopper'][_0x7020('0x3d')](_0x35ebee)['then'](handleEntityNotFound(_0x514f28,null))['then'](respondWithResult(_0x514f28,null))['catch'](handleError(_0x514f28,null));};exports[_0x7020('0x3e')]=function(_0x569e94,_0x237613){return db[_0x7020('0x12')][_0x7020('0x3e')](_0x569e94['body'],{})[_0x7020('0xb')](respondWithResult(_0x237613,0xc9))['catch'](handleError(_0x237613,null));};exports[_0x7020('0xa')]=function(_0x1f0f9a,_0x19c9d4){if(_0x1f0f9a[_0x7020('0x3f')]['id']){delete _0x1f0f9a[_0x7020('0x3f')]['id'];}return db[_0x7020('0x12')][_0x7020('0x3d')]({'where':{'id':_0x1f0f9a[_0x7020('0x3c')]['id']}})[_0x7020('0xb')](handleEntityNotFound(_0x19c9d4,null))[_0x7020('0xb')](saveUpdates(_0x1f0f9a[_0x7020('0x3f')],null))[_0x7020('0xb')](respondWithResult(_0x19c9d4,null))[_0x7020('0x3b')](handleError(_0x19c9d4,null));};exports[_0x7020('0x40')]=function(_0x3dcf52,_0x241ff1){return db[_0x7020('0x12')][_0x7020('0x40')]()['then'](respondWithResult(_0x241ff1,null))[_0x7020('0x3b')](handleError(_0x241ff1,null));};exports[_0x7020('0x41')]=function(_0x1b8198,_0x2a3344){var _0x41f642;var _0x55a36a=_0x1b8198['params']['id'];return db[_0x7020('0x12')]['find']({'where':{'id':_0x1b8198[_0x7020('0x3c')]['id']}})[_0x7020('0xb')](handleEntityNotFound(_0x2a3344,null))[_0x7020('0xb')](function(_0x470400){if(_0x470400){return _0x470400['destroy']()['then'](function(_0xfbd73a){return _0xfbd73a;});}})[_0x7020('0xb')](function(_0x3690ee){_0x41f642=_0x3690ee;if(_0x3690ee){if(_0x3690ee[_0x7020('0x42')]||_0x3690ee[_0x7020('0x43')]){return db[_0x3690ee[_0x7020('0x42')]?_0x7020('0x44'):_0x7020('0x45')][_0x7020('0x3d')]({'where':{'id':_0x3690ee[_0x7020('0x42')]?_0x3690ee[_0x7020('0x42')]:_0x3690ee[_0x7020('0x43')]},'attributes':['id','name'],'raw':!![]});}}})['then'](function(_0x5a6557){var _0x445459={};if(_0x5a6557){_['merge'](_0x445459,_[_0x7020('0x46')](_0x41f642[_0x7020('0x47')],[_0x7020('0x48'),_0x7020('0x49'),'id']));_0x445459[_0x7020('0x4a')]=0x15;_0x445459[_0x7020('0x4b')]=_0x7020('0x4c');_0x445459['campaign']=_0x5a6557[_0x7020('0xe')];_0x445459['membername']=_0x1b8198[_0x7020('0x4d')][_0x7020('0xe')];_0x445459[_0x7020('0x4e')]=_0x1b8198[_0x7020('0x4d')]['id'];_0x445459[_0x7020('0x4c')]=!![];_0x445459[_0x7020('0x4f')]=moment()[_0x7020('0x50')]('YYYY-MM-DD\x20HH:mm:ss');_0x445459[_0x7020('0x51')]=_0x41f642[_0x7020('0x52')];_0x445459[_0x7020('0x53')]=_0x41f642[_0x7020('0x42')]?'queue':'ivr';return db['CmContact'][_0x7020('0x3d')]({'where':{'id':_0x445459[_0x7020('0x54')]},'attributes':[_0x7020('0x55'),_0x7020('0x56')]})[_0x7020('0xb')](function(_0x42bdb2){if(!_['isNil'](_0x2a3344)&&!_[_0x7020('0x57')](_0x42bdb2[_0x7020('0x55')])){_0x445459[_0x7020('0x58')]=_0x42bdb2[_0x7020('0x55')];if(!_[_0x7020('0x57')](_0x42bdb2[_0x7020('0x56')])){_0x445459[_0x7020('0x58')]+='\x20'+_0x42bdb2[_0x7020('0x56')];}}})[_0x7020('0x59')](function(){return db['CmHopperFinal'][_0x7020('0x3e')](_0x445459);});}})['then'](function(_0x1f1053){return db['CmHopperAdditionalPhone']['destroy']({'where':{'CmHopperId':_0x55a36a}});})[_0x7020('0xb')](function(){return _0x2a3344[_0x7020('0x4')](0xcc)[_0x7020('0x5a')]();})['catch'](handleError(_0x2a3344,null));};exports[_0x7020('0x5b')]=function(_0x3410f3,_0x4107da){var _0x1ae0e8=[];return db[_0x7020('0x5c')][_0x7020('0x40')]()[_0x7020('0xb')](function(_0x251243){_0x1ae0e8=_[_0x7020('0x18')](_0x251243);return _0x3410f3['user'][_0x7020('0x5d')]({'where':{'type':_0x7020('0x5e'),'dialActive':!![],'dialMethod':_0x7020('0x5f')},'attributes':['id',_0x7020('0x60'),_0x7020('0x61')],'raw':!![]});})['then'](function(_0x416839){if(_0x416839&&_0x416839[_0x7020('0x2c')]){return db['sequelize'][_0x7020('0x62')](function(_0x36bf12){var _0x316233={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x7020('0x11')](_0x416839,'id')},'$or':[{'UserId':null},{'UserId':_0x3410f3[_0x7020('0x4d')]['id']}]};var _0x145ca3={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x416839)[_0x7020('0x33')]([_0x7020('0x61'),0x0])[_0x7020('0x11')]('id')[_0x7020('0x63')]()},'$or':[{'UserId':null},{'UserId':_0x3410f3[_0x7020('0x4d')]['id']}]};var _0xa19606={'$or':[_0x316233,_0x145ca3]};var _0xbaea43=[];if(_0x3410f3['body']['direction']&&_0x3410f3['body'][_0x7020('0x64')]===_0x7020('0x65')){if(!_[_0x7020('0x66')](_0x3410f3['body'][_0x7020('0x67')])){_0xa19606['id']={'$in':_0x3410f3[_0x7020('0x3f')][_0x7020('0x67')]};}_0xbaea43=[[_0x7020('0x68'),_0x7020('0x69')],[_0x7020('0x6a'),_0x416839[0x0][_0x7020('0x60')]===_0x7020('0x69')?_0x7020('0x6b'):'ASC'],db['sequelize'][_0x7020('0x6c')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id','DESC']];}else{if(!_[_0x7020('0x66')](_0x3410f3['body']['hopperIds'])){_0xa19606['id']={'$notIn':_0x3410f3[_0x7020('0x3f')][_0x7020('0x67')]};}_0xbaea43=[[_0x7020('0x68'),_0x7020('0x6b')],[_0x7020('0x6a'),_0x416839[0x0]['dialOrderByScheduledAt']],db['sequelize']['literal'](_0x7020('0x6d')),['id',_0x7020('0x69')]];}return db[_0x7020('0x12')][_0x7020('0x6e')]({'attributes':['id',_0x7020('0x6f'),'phone','recallme'],'where':_0xa19606,'order':_0xbaea43,'transaction':_0x36bf12,'lock':_0x36bf12[_0x7020('0x70')]['UPDATE'],'include':[{'model':db[_0x7020('0x5c')],'as':_0x7020('0x71'),'attributes':_0x1ae0e8,'include':[{'model':db[_0x7020('0x72')],'as':'Company','attributes':['id',_0x7020('0xe')]}]},{'model':db['CmList'],'as':_0x7020('0x73'),'attributes':['id','name']},{'model':db['VoiceQueue'],'as':_0x7020('0x74'),'attributes':['id',_0x7020('0xe'),_0x7020('0x75')]}]})[_0x7020('0xb')](function(_0x22656a){if(_0x22656a){return _0x22656a[_0x7020('0xa')]({'UserId':_0x3410f3[_0x7020('0x4d')]['id']},{'transaction':_0x36bf12});}});});}})[_0x7020('0xb')](handleEntityNotFound(_0x4107da,null))[_0x7020('0xb')](respondWithResult(_0x4107da,null))['catch'](handleError(_0x4107da,null));};exports['getPreviewRecall']=function(_0x7f044e,_0x488949,_0x3fb181){var _0x50c3e4=[];var _0x45c593=_0x7f044e[_0x7020('0x3c')]['id'];var _0x1ccded=_0x7f044e[_0x7020('0x4d')]['id'];return db[_0x7020('0x5c')][_0x7020('0x40')]()[_0x7020('0xb')](function(_0x2946eb){_0x50c3e4=_['keys'](_0x2946eb);return db[_0x7020('0x76')][_0x7020('0x62')](function(_0x458781){const _0x3c97bc={'id':_0x45c593};return db[_0x7020('0x12')][_0x7020('0x6e')]({'attributes':['id','scheduledat',_0x7020('0x77')],'where':_0x3c97bc,'transaction':_0x458781,'lock':_0x458781[_0x7020('0x70')][_0x7020('0x78')],'include':[{'model':db[_0x7020('0x5c')],'as':_0x7020('0x71'),'attributes':_0x50c3e4,'include':[{'model':db['CmCompany'],'as':_0x7020('0x79'),'attributes':['id',_0x7020('0xe')]}]},{'model':db[_0x7020('0x7a')],'as':_0x7020('0x73'),'attributes':['id','name']},{'model':db[_0x7020('0x44')],'as':_0x7020('0x74'),'attributes':['id','name',_0x7020('0x75')]}]})[_0x7020('0xb')](function(_0x58873d){if(_0x58873d){return _0x58873d['update']({'UserId':_0x1ccded},{'transaction':_0x458781});}});});})['then'](handleEntityNotFound(_0x488949,null))[_0x7020('0xb')](respondWithResult(_0x488949,null))[_0x7020('0x3b')](handleError(_0x488949,null));};exports[_0x7020('0x7b')]=function(_0x393ccc,_0x314d4d){return _0x393ccc[_0x7020('0x4d')][_0x7020('0x5d')]({'where':{'type':_0x7020('0x5e'),'dialActive':!![],'dialMethod':_0x7020('0x5f')},'attributes':['id'],'raw':!![]})['then'](function(_0x4a9048){if(_0x4a9048&&_0x4a9048[_0x7020('0x2c')]){return db[_0x7020('0x12')][_0x7020('0x37')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x7020('0x7c'))},'VoiceQueueId':{'$in':_[_0x7020('0x11')](_0x4a9048,'id')},'$or':[{'UserId':null},{'UserId':_0x393ccc['user']['id']}]}});}return 0x0;})['then'](function(_0x4e40bc){if(!_[_0x7020('0x57')](_0x4e40bc)&&_[_0x7020('0x7d')](_0x4e40bc)){return _0x314d4d['status'](0xc8)['json']({'contacts':_0x4e40bc});}else{logger[_0x7020('0xd')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x7020('0x7b'),0x194,'entity\x20not\x20found');_0x314d4d['sendStatus'](0x194);}})[_0x7020('0x3b')](handleError(_0x314d4d,null));};exports[_0x7020('0x7e')]=function(_0x2c72e4,_0x32aa8e){var _0x3f9f3a=shared[_0x7020('0x7f')];var _0x52adb6=[];_[_0x7020('0x11')](_0x3f9f3a,function(_0x4e2d05){_0x52adb6[_0x7020('0x80')]({'id':_0x4e2d05[_0x7020('0xe')],'name':_0x4e2d05[_0x7020('0xe')],'utcOffset':_0x4e2d05[_0x7020('0x81')]});});return _0x32aa8e[_0x7020('0x4')](0xc8)[_0x7020('0x82')]({'tz':_0x52adb6});};exports[_0x7020('0x83')]=function(_0x427d6d,_0x4fb3ad){var _0x2c79f4=shared[_0x7020('0x7f')];var _0x269b6f={};if(!_[_0x7020('0x57')](_0x2c79f4[_0x427d6d[_0x7020('0x3f')]['id']]))_0x269b6f=_0x2c79f4[_0x427d6d[_0x7020('0x3f')]['id']];return _0x4fb3ad[_0x7020('0x4')](0xc8)[_0x7020('0x82')](_0x269b6f);};