Built motion from commit b0a9a629.|2.6.33
[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 _0x202c=['update','then','error','name','send','index','rawAttributes','fieldName','type','key','keys','query','model','filters','concat','$and','$or','$lt','$lte','$ne','$not','$between','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','CmHopper','includeAll','include','findAll','rows','catch','show','length','find','create','body','describe','destroy','params','CampaignId','VoiceQueueId','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','UserId','user','deletedat','YYYY-MM-DD\x20HH:mm:ss','calleridnum','campaigntype','ivr','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperAdditionalPhone','end','getPreview','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','dialPreviewAutoRecallMe','sequelize','transaction','map','prev','isEmpty','hopperIds','ASC','COALESCE(CmHopper.UserId,\x200)\x20ASC','scheduledAt','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','phone','recallme','LOCK','UPDATE','CmCompany','Company','List','Queue','CmContact','VoiceQueue','getOpenContacts','format','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','sendStatus','getTimezones','timezones','push','moment','../../config/logger','api','../../config/environment','status','undefined','limit','count','offset','Content-Range','json'];(function(_0x1442eb,_0x568fc8){var _0x4186e0=function(_0x3226ef){while(--_0x3226ef){_0x1442eb['push'](_0x1442eb['shift']());}};_0x4186e0(++_0x568fc8);}(_0x202c,0x178));var _0xc202=function(_0x4e35d2,_0x516864){_0x4e35d2=_0x4e35d2-0x0;var _0x384964=_0x202c[_0x4e35d2];return _0x384964;};'use strict';var moment=require(_0xc202('0x0'));var _=require('lodash');var qs=require('../../components/parsers/qs');var logger=require(_0xc202('0x1'))(_0xc202('0x2'));var shared=require(_0xc202('0x3'));var db=require('../../mysqldb')['db'];function respondWithResult(_0x215161,_0x155c3b){_0x155c3b=_0x155c3b||0xc8;return function(_0x1763f5){if(_0x1763f5){return _0x215161[_0xc202('0x4')](_0x155c3b)['json'](_0x1763f5);}};}function respondWithFilteredResult(_0x28e51c,_0x68d363){return function(_0x59563a){if(_0x59563a){var _0xc2b3eb=typeof _0x68d363['offset']===_0xc202('0x5')&&typeof _0x68d363[_0xc202('0x6')]===_0xc202('0x5');var _0x336fc8=_0x59563a[_0xc202('0x7')];var _0x3ea754=_0xc2b3eb?0x0:_0x68d363[_0xc202('0x8')];var _0xdfe8bf=_0xc2b3eb?_0x59563a[_0xc202('0x7')]:_0x68d363[_0xc202('0x8')]+_0x68d363[_0xc202('0x6')];var _0x870346;if(_0xdfe8bf>=_0x336fc8){_0xdfe8bf=_0x336fc8;_0x870346=0xc8;}else{_0x870346=0xce;}_0x28e51c[_0xc202('0x4')](_0x870346);return _0x28e51c['set'](_0xc202('0x9'),_0x3ea754+'-'+_0xdfe8bf+'/'+_0x336fc8)[_0xc202('0xa')](_0x59563a);}return null;};}function saveUpdates(_0x2805af,_0xbf3618){return function(_0x269dc0){if(_0x269dc0){return _0x269dc0[_0xc202('0xb')](_0x2805af)[_0xc202('0xc')](function(_0x53600c){return _0x53600c;});}return null;};}function handleEntityNotFound(_0xbd4353,_0x32b5d9){return function(_0x591cc0){if(!_0x591cc0){_0xbd4353['sendStatus'](0x194);}return _0x591cc0;};}function handleError(_0x5c10dd,_0x2dafa5){_0x2dafa5=_0x2dafa5||0x1f4;return function(_0x4a333c){logger[_0xc202('0xd')](_0x4a333c['stack']);if(_0x4a333c[_0xc202('0xe')]){delete _0x4a333c[_0xc202('0xe')];}_0x5c10dd[_0xc202('0x4')](_0x2dafa5)[_0xc202('0xf')](_0x4a333c);};}exports[_0xc202('0x10')]=function(_0x2419c5,_0x9620a0){var _0x591ecc={},_0x16ec7c={},_0x2c5557={'count':0x0,'rows':[]};var _0x3f322d=_['map'](db['CmHopper'][_0xc202('0x11')],function(_0x1af67a){return{'name':_0x1af67a[_0xc202('0x12')],'type':_0x1af67a[_0xc202('0x13')][_0xc202('0x14')]};});_0x16ec7c['model']=_['map'](_0x3f322d,_0xc202('0xe'));_0x16ec7c['query']=_[_0xc202('0x15')](_0x2419c5[_0xc202('0x16')]);_0x16ec7c['filters']=_['intersection'](_0x16ec7c[_0xc202('0x17')],_0x16ec7c['query']);_0x16ec7c[_0xc202('0x18')]=_[_0xc202('0x19')](_0x16ec7c[_0xc202('0x18')],[_0xc202('0x1a'),_0xc202('0x1b'),'$gt','$gte',_0xc202('0x1c'),_0xc202('0x1d'),_0xc202('0x1e'),'$eq',_0xc202('0x1f'),_0xc202('0x20'),'$notBetween','$in',_0xc202('0x21'),_0xc202('0x22'),_0xc202('0x23'),_0xc202('0x24'),_0xc202('0x25'),'$like',_0xc202('0x26'),_0xc202('0x27'),'$contained','$any']);_0x591ecc[_0xc202('0x28')]=_[_0xc202('0x29')](_0x16ec7c[_0xc202('0x17')],qs[_0xc202('0x2a')](_0x2419c5['query'][_0xc202('0x2a')]));_0x591ecc[_0xc202('0x28')]=_0x591ecc[_0xc202('0x28')]['length']?_0x591ecc[_0xc202('0x28')]:_0x16ec7c[_0xc202('0x17')];if(!_0x2419c5[_0xc202('0x16')][_0xc202('0x2b')](_0xc202('0x2c'))){_0x591ecc[_0xc202('0x6')]=qs[_0xc202('0x6')](_0x2419c5[_0xc202('0x16')][_0xc202('0x6')]);_0x591ecc[_0xc202('0x8')]=qs[_0xc202('0x8')](_0x2419c5[_0xc202('0x16')]['offset']);}_0x591ecc[_0xc202('0x2d')]=qs[_0xc202('0x2e')](_0x2419c5[_0xc202('0x16')]['sort']);_0x591ecc[_0xc202('0x2f')]=qs['filters'](_[_0xc202('0x30')](_0x2419c5[_0xc202('0x16')],_0x16ec7c[_0xc202('0x18')]),_0x3f322d);if(_0x2419c5[_0xc202('0x16')][_0xc202('0x31')]){_0x591ecc[_0xc202('0x2f')]=_['merge'](_0x591ecc[_0xc202('0x2f')],{'$or':_['map'](_0x3f322d,function(_0x3ac7e8){if(_0x3ac7e8['type']!==_0xc202('0x32')){var _0x147272={};_0x147272[_0x3ac7e8[_0xc202('0xe')]]={'$like':'%'+_0x2419c5['query'][_0xc202('0x31')]+'%'};return _0x147272;}})});}_0x591ecc=_[_0xc202('0x33')]({},_0x591ecc,_0x2419c5[_0xc202('0x34')]);var _0x444a8d={'where':_0x591ecc[_0xc202('0x2f')]};return db[_0xc202('0x35')]['count'](_0x444a8d)[_0xc202('0xc')](function(_0x1e57c3){_0x2c5557[_0xc202('0x7')]=_0x1e57c3;if(_0x2419c5['query'][_0xc202('0x36')]){_0x591ecc[_0xc202('0x37')]=[{'all':!![]}];}return db[_0xc202('0x35')][_0xc202('0x38')](_0x591ecc);})['then'](function(_0x57d5a4){_0x2c5557[_0xc202('0x39')]=_0x57d5a4;return _0x2c5557;})['then'](respondWithFilteredResult(_0x9620a0,_0x591ecc))[_0xc202('0x3a')](handleError(_0x9620a0,null));};exports[_0xc202('0x3b')]=function(_0x25fdd8,_0x200c27){var _0x9dbdb={'raw':!![],'where':{'id':_0x25fdd8['params']['id']}},_0x126c62={};_0x126c62[_0xc202('0x17')]=_[_0xc202('0x15')](db[_0xc202('0x35')][_0xc202('0x11')]);_0x126c62[_0xc202('0x16')]=_['keys'](_0x25fdd8[_0xc202('0x16')]);_0x126c62[_0xc202('0x18')]=_[_0xc202('0x29')](_0x126c62[_0xc202('0x17')],_0x126c62[_0xc202('0x16')]);_0x9dbdb['attributes']=_[_0xc202('0x29')](_0x126c62['model'],qs[_0xc202('0x2a')](_0x25fdd8['query'][_0xc202('0x2a')]));_0x9dbdb[_0xc202('0x28')]=_0x9dbdb[_0xc202('0x28')][_0xc202('0x3c')]?_0x9dbdb['attributes']:_0x126c62[_0xc202('0x17')];if(_0x25fdd8[_0xc202('0x16')][_0xc202('0x36')]){_0x9dbdb[_0xc202('0x37')]=[{'all':!![]}];}_0x9dbdb=_[_0xc202('0x33')]({},_0x9dbdb,_0x25fdd8[_0xc202('0x34')]);return db[_0xc202('0x35')][_0xc202('0x3d')](_0x9dbdb)[_0xc202('0xc')](handleEntityNotFound(_0x200c27,null))[_0xc202('0xc')](respondWithResult(_0x200c27,null))[_0xc202('0x3a')](handleError(_0x200c27,null));};exports[_0xc202('0x3e')]=function(_0x157c2e,_0x39607d){return db[_0xc202('0x35')][_0xc202('0x3e')](_0x157c2e[_0xc202('0x3f')],{})[_0xc202('0xc')](respondWithResult(_0x39607d,0xc9))[_0xc202('0x3a')](handleError(_0x39607d,null));};exports[_0xc202('0xb')]=function(_0x484013,_0x39f2c1){if(_0x484013[_0xc202('0x3f')]['id']){delete _0x484013[_0xc202('0x3f')]['id'];}return db['CmHopper']['find']({'where':{'id':_0x484013['params']['id']}})[_0xc202('0xc')](handleEntityNotFound(_0x39f2c1,null))[_0xc202('0xc')](saveUpdates(_0x484013[_0xc202('0x3f')],null))[_0xc202('0xc')](respondWithResult(_0x39f2c1,null))[_0xc202('0x3a')](handleError(_0x39f2c1,null));};exports[_0xc202('0x40')]=function(_0x157d89,_0x466ba4){return db[_0xc202('0x35')][_0xc202('0x40')]()[_0xc202('0xc')](respondWithResult(_0x466ba4,null))[_0xc202('0x3a')](handleError(_0x466ba4,null));};exports[_0xc202('0x41')]=function(_0x5220a2,_0x33e70c){var _0x163023;var _0x57855e=_0x5220a2[_0xc202('0x42')]['id'];return db[_0xc202('0x35')][_0xc202('0x3d')]({'where':{'id':_0x5220a2[_0xc202('0x42')]['id']}})[_0xc202('0xc')](handleEntityNotFound(_0x33e70c,null))['then'](function(_0x2250a6){if(_0x2250a6){return _0x2250a6['destroy']()[_0xc202('0xc')](function(_0x5f1b99){return _0x5f1b99;});}})[_0xc202('0xc')](function(_0x20ffe5){_0x163023=_0x20ffe5;if(_0x20ffe5){if(_0x20ffe5['VoiceQueueId']||_0x20ffe5[_0xc202('0x43')]){return db[_0x20ffe5[_0xc202('0x44')]?'VoiceQueue':'Campaign']['find']({'where':{'id':_0x20ffe5[_0xc202('0x44')]?_0x20ffe5['VoiceQueueId']:_0x20ffe5[_0xc202('0x43')]},'attributes':['id',_0xc202('0xe')],'raw':!![]});}}})[_0xc202('0xc')](function(_0x1f6233){var _0x3858b9={};if(_0x1f6233){_[_0xc202('0x33')](_0x3858b9,_[_0xc202('0x45')](_0x163023[_0xc202('0x46')],[_0xc202('0x47'),_0xc202('0x48'),'id']));_0x3858b9[_0xc202('0x49')]=0x15;_0x3858b9[_0xc202('0x4a')]=_0xc202('0x4b');_0x3858b9['campaign']=_0x1f6233[_0xc202('0xe')];_0x3858b9['membername']=_0x5220a2['user'][_0xc202('0xe')];_0x3858b9[_0xc202('0x4c')]=_0x5220a2[_0xc202('0x4d')]['id'];_0x3858b9['deleted']=!![];_0x3858b9[_0xc202('0x4e')]=moment()['format'](_0xc202('0x4f'));_0x3858b9[_0xc202('0x50')]=_0x163023['phone'];_0x3858b9[_0xc202('0x51')]=_0x163023[_0xc202('0x44')]?'queue':_0xc202('0x52');return db['CmContact'][_0xc202('0x3d')]({'where':{'id':_0x3858b9[_0xc202('0x53')]},'attributes':[_0xc202('0x54'),_0xc202('0x55')]})[_0xc202('0xc')](function(_0x2d475a){if(!_[_0xc202('0x56')](_0x33e70c)&&!_['isNil'](_0x2d475a[_0xc202('0x54')])){_0x3858b9[_0xc202('0x57')]=_0x2d475a['firstName'];if(!_[_0xc202('0x56')](_0x2d475a['lastName'])){_0x3858b9[_0xc202('0x57')]+='\x20'+_0x2d475a['lastName'];}}})[_0xc202('0x58')](function(){return db['CmHopperFinal'][_0xc202('0x3e')](_0x3858b9);});}})['then'](function(_0x5f212b){return db[_0xc202('0x59')][_0xc202('0x41')]({'where':{'CmHopperId':_0x57855e}});})[_0xc202('0xc')](function(){return _0x33e70c[_0xc202('0x4')](0xcc)[_0xc202('0x5a')]();})[_0xc202('0x3a')](handleError(_0x33e70c,null));};exports[_0xc202('0x5b')]=function(_0x2b0865,_0x409845){var _0x135797=[];return db['CmContact'][_0xc202('0x40')]()[_0xc202('0xc')](function(_0x58bc02){_0x135797=_[_0xc202('0x15')](_0x58bc02);return _0x2b0865[_0xc202('0x4d')][_0xc202('0x5c')]({'where':{'type':_0xc202('0x5d'),'dialActive':!![],'dialMethod':_0xc202('0x5e')},'attributes':['id',_0xc202('0x5f'),_0xc202('0x60')],'raw':!![]});})[_0xc202('0xc')](function(_0x502caf){if(_0x502caf&&_0x502caf[_0xc202('0x3c')]){return db[_0xc202('0x61')][_0xc202('0x62')](function(_0x3095d2){var _0x233e0a={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xc202('0x4f'))},'VoiceQueueId':{'$in':_[_0xc202('0x63')](_0x502caf,'id')},'$or':[{'UserId':null},{'UserId':_0x2b0865[_0xc202('0x4d')]['id']}]};var _0x5ae21d={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x502caf)[_0xc202('0x31')](['dialPreviewAutoRecallMe',0x0])['map']('id')['value']()},'$or':[{'UserId':null},{'UserId':_0x2b0865[_0xc202('0x4d')]['id']}]};var _0xd2d160={'$or':[_0x233e0a,_0x5ae21d]};var _0x189884=[];if(_0x2b0865[_0xc202('0x3f')]['direction']&&_0x2b0865[_0xc202('0x3f')]['direction']===_0xc202('0x64')){if(!_[_0xc202('0x65')](_0x2b0865['body'][_0xc202('0x66')])){_0xd2d160['id']={'$in':_0x2b0865[_0xc202('0x3f')][_0xc202('0x66')]};}_0x189884=[['priority','ASC'],['scheduledAt',_0x502caf[0x0][_0xc202('0x5f')]===_0xc202('0x67')?'DESC':_0xc202('0x67')],db[_0xc202('0x61')]['literal'](_0xc202('0x68')),['id','DESC']];}else{if(!_[_0xc202('0x65')](_0x2b0865[_0xc202('0x3f')][_0xc202('0x66')])){_0xd2d160['id']={'$notIn':_0x2b0865[_0xc202('0x3f')][_0xc202('0x66')]};}_0x189884=[['priority','DESC'],[_0xc202('0x69'),_0x502caf[0x0][_0xc202('0x5f')]],db[_0xc202('0x61')][_0xc202('0x6a')](_0xc202('0x6b')),['id','ASC']];}return db['CmHopper'][_0xc202('0x6c')]({'attributes':['id',_0xc202('0x6d'),_0xc202('0x6e'),_0xc202('0x6f')],'where':_0xd2d160,'order':_0x189884,'transaction':_0x3095d2,'lock':_0x3095d2[_0xc202('0x70')][_0xc202('0x71')],'include':[{'model':db['CmContact'],'as':'Contact','attributes':_0x135797,'include':[{'model':db[_0xc202('0x72')],'as':_0xc202('0x73'),'attributes':['id',_0xc202('0xe')]}]},{'model':db['CmList'],'as':_0xc202('0x74'),'attributes':['id',_0xc202('0xe')]},{'model':db['VoiceQueue'],'as':_0xc202('0x75'),'attributes':['id',_0xc202('0xe'),'dialActive']}]})[_0xc202('0xc')](function(_0x382dea){if(_0x382dea){return _0x382dea[_0xc202('0xb')]({'UserId':_0x2b0865[_0xc202('0x4d')]['id']},{'transaction':_0x3095d2});}});});}})[_0xc202('0xc')](handleEntityNotFound(_0x409845,null))['then'](respondWithResult(_0x409845,null))[_0xc202('0x3a')](handleError(_0x409845,null));};exports['getPreviewRecall']=function(_0x3cfbaa,_0x17ff38,_0x585984){var _0x2d149a=[];var _0x5b8a32=_0x3cfbaa[_0xc202('0x42')]['id'];var _0x411043=_0x3cfbaa[_0xc202('0x4d')]['id'];return db[_0xc202('0x76')]['describe']()[_0xc202('0xc')](function(_0x234770){_0x2d149a=_[_0xc202('0x15')](_0x234770);return db[_0xc202('0x61')][_0xc202('0x62')](function(_0x3ba0c4){const _0x5f2b84={'id':_0x5b8a32};return db[_0xc202('0x35')][_0xc202('0x6c')]({'attributes':['id','scheduledat',_0xc202('0x6f')],'where':_0x5f2b84,'transaction':_0x3ba0c4,'lock':_0x3ba0c4[_0xc202('0x70')]['UPDATE'],'include':[{'model':db['CmContact'],'as':'Contact','attributes':_0x2d149a,'include':[{'model':db[_0xc202('0x72')],'as':_0xc202('0x73'),'attributes':['id',_0xc202('0xe')]}]},{'model':db['CmList'],'as':_0xc202('0x74'),'attributes':['id',_0xc202('0xe')]},{'model':db[_0xc202('0x77')],'as':_0xc202('0x75'),'attributes':['id',_0xc202('0xe'),'dialActive']}]})[_0xc202('0xc')](function(_0x1bf945){if(_0x1bf945){return _0x1bf945[_0xc202('0xb')]({'UserId':_0x411043},{'transaction':_0x3ba0c4});}});});})[_0xc202('0xc')](handleEntityNotFound(_0x17ff38,null))[_0xc202('0xc')](respondWithResult(_0x17ff38,null))[_0xc202('0x3a')](handleError(_0x17ff38,null));};exports[_0xc202('0x78')]=function(_0x27147e,_0x906dc2){return _0x27147e[_0xc202('0x4d')][_0xc202('0x5c')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0xc202('0x5e')},'attributes':['id'],'raw':!![]})[_0xc202('0xc')](function(_0x48a098){if(_0x48a098&&_0x48a098[_0xc202('0x3c')]){return db[_0xc202('0x35')][_0xc202('0x7')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xc202('0x79')](_0xc202('0x4f'))},'VoiceQueueId':{'$in':_['map'](_0x48a098,'id')},'$or':[{'UserId':null},{'UserId':_0x27147e[_0xc202('0x4d')]['id']}]}});}return 0x0;})['then'](function(_0x41908c){if(!_[_0xc202('0x56')](_0x41908c)&&_[_0xc202('0x7a')](_0x41908c)){return _0x906dc2[_0xc202('0x4')](0xc8)['json']({'contacts':_0x41908c});}else{logger[_0xc202('0xd')](_0xc202('0x7b'),_0xc202('0x78'),0x194,_0xc202('0x7c'));_0x906dc2[_0xc202('0x7d')](0x194);}})[_0xc202('0x3a')](handleError(_0x906dc2,null));};exports[_0xc202('0x7e')]=function(_0x414557,_0x80109){var _0x1bf8b8=shared[_0xc202('0x7f')];var _0x48521a=[];_['map'](_0x1bf8b8,function(_0x41ef84){_0x48521a[_0xc202('0x80')]({'id':_0x41ef84[_0xc202('0xe')],'name':_0x41ef84[_0xc202('0xe')],'utcOffset':_0x41ef84['utcOffset']});});return _0x80109[_0xc202('0x4')](0xc8)['json']({'tz':_0x48521a});};exports['getTimezone']=function(_0x30f49c,_0x151976){var _0x53e43a=shared['timezones'];var _0x4f6c06={};if(!_[_0xc202('0x56')](_0x53e43a[_0x30f49c[_0xc202('0x3f')]['id']]))_0x4f6c06=_0x53e43a[_0x30f49c['body']['id']];return _0x151976[_0xc202('0x4')](0xc8)[_0xc202('0xa')](_0x4f6c06);};