Built motion from commit 00bf23f6.|2.6.16
[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 _0xde64=['where','pick','filter','merge','VIRTUAL','options','count','include','findAll','rows','catch','show','includeAll','find','create','body','params','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','state','statedesc','deleted','campaign','membername','user','deletedat','format','calleridnum','phone','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','CmHopperAdditionalPhone','end','getPreview','getVoiceQueues','outbound','dialOrderByScheduledAt','dialPreviewAutoRecallMe','length','YYYY-MM-DD\x20HH:mm:ss','value','direction','prev','isEmpty','hopperIds','ASC','scheduledAt','DESC','sequelize','literal','priority','findOne','scheduledat','recallme','LOCK','UPDATE','Contact','CmCompany','CmList','List','Queue','dialActive','getPreviewRecall','transaction','Company','preview','isNumber','error','CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts','entity\x20not\x20found','getTimezones','push','utcOffset','getTimezone','timezones','moment','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','json','offset','undefined','limit','status','set','update','then','sendStatus','name','send','index','map','CmHopper','rawAttributes','fieldName','type','key','query','keys','intersection','filters','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$contained','$any','attributes','model','fields','nolimit','order','sort'];(function(_0x4cf0b7,_0x560029){var _0x545f10=function(_0x993533){while(--_0x993533){_0x4cf0b7['push'](_0x4cf0b7['shift']());}};_0x545f10(++_0x560029);}(_0xde64,0x17c));var _0x4de6=function(_0x7ed5c,_0x2291af){_0x7ed5c=_0x7ed5c-0x0;var _0x3ca005=_0xde64[_0x7ed5c];return _0x3ca005;};'use strict';var moment=require(_0x4de6('0x0'));var _=require(_0x4de6('0x1'));var qs=require(_0x4de6('0x2'));var logger=require(_0x4de6('0x3'))(_0x4de6('0x4'));var shared=require(_0x4de6('0x5'));var db=require('../../mysqldb')['db'];function respondWithResult(_0x3c4b91,_0x3bd290){_0x3bd290=_0x3bd290||0xc8;return function(_0x5a5c5a){if(_0x5a5c5a){return _0x3c4b91['status'](_0x3bd290)[_0x4de6('0x6')](_0x5a5c5a);}};}function respondWithFilteredResult(_0x45867b,_0x4da17f){return function(_0x568496){if(_0x568496){var _0x24edef=typeof _0x4da17f[_0x4de6('0x7')]===_0x4de6('0x8')&&typeof _0x4da17f[_0x4de6('0x9')]===_0x4de6('0x8');var _0x202cdc=_0x568496['count'];var _0x267c1a=_0x24edef?0x0:_0x4da17f[_0x4de6('0x7')];var _0x1dbeed=_0x24edef?_0x568496['count']:_0x4da17f[_0x4de6('0x7')]+_0x4da17f[_0x4de6('0x9')];var _0x2e205b;if(_0x1dbeed>=_0x202cdc){_0x1dbeed=_0x202cdc;_0x2e205b=0xc8;}else{_0x2e205b=0xce;}_0x45867b[_0x4de6('0xa')](_0x2e205b);return _0x45867b[_0x4de6('0xb')]('Content-Range',_0x267c1a+'-'+_0x1dbeed+'/'+_0x202cdc)[_0x4de6('0x6')](_0x568496);}return null;};}function saveUpdates(_0x3baa31,_0xb8e256){return function(_0x509002){if(_0x509002){return _0x509002[_0x4de6('0xc')](_0x3baa31)[_0x4de6('0xd')](function(_0x27c108){return _0x27c108;});}return null;};}function handleEntityNotFound(_0x2bd121,_0x58b0c1){return function(_0x1ccfee){if(!_0x1ccfee){_0x2bd121[_0x4de6('0xe')](0x194);}return _0x1ccfee;};}function handleError(_0x43d59b,_0x4dd3b5){_0x4dd3b5=_0x4dd3b5||0x1f4;return function(_0x33fd67){logger['error'](_0x33fd67['stack']);if(_0x33fd67[_0x4de6('0xf')]){delete _0x33fd67[_0x4de6('0xf')];}_0x43d59b[_0x4de6('0xa')](_0x4dd3b5)[_0x4de6('0x10')](_0x33fd67);};}exports[_0x4de6('0x11')]=function(_0x279278,_0x324202){var _0x5aacb4={},_0x420f7c={},_0xea1610={'count':0x0,'rows':[]};var _0x2c7e57=_[_0x4de6('0x12')](db[_0x4de6('0x13')][_0x4de6('0x14')],function(_0x20855f){return{'name':_0x20855f[_0x4de6('0x15')],'type':_0x20855f[_0x4de6('0x16')][_0x4de6('0x17')]};});_0x420f7c['model']=_[_0x4de6('0x12')](_0x2c7e57,'name');_0x420f7c[_0x4de6('0x18')]=_[_0x4de6('0x19')](_0x279278[_0x4de6('0x18')]);_0x420f7c['filters']=_[_0x4de6('0x1a')](_0x420f7c['model'],_0x420f7c[_0x4de6('0x18')]);_0x420f7c[_0x4de6('0x1b')]=_[_0x4de6('0x1c')](_0x420f7c['filters'],[_0x4de6('0x1d'),_0x4de6('0x1e'),_0x4de6('0x1f'),_0x4de6('0x20'),_0x4de6('0x21'),_0x4de6('0x22'),_0x4de6('0x23'),'$eq',_0x4de6('0x24'),_0x4de6('0x25'),_0x4de6('0x26'),_0x4de6('0x27'),_0x4de6('0x28'),_0x4de6('0x29'),_0x4de6('0x2a'),_0x4de6('0x2b'),_0x4de6('0x2c'),'$like',_0x4de6('0x2d'),_0x4de6('0x2e'),_0x4de6('0x2f'),_0x4de6('0x30')]);_0x5aacb4[_0x4de6('0x31')]=_['intersection'](_0x420f7c[_0x4de6('0x32')],qs['fields'](_0x279278[_0x4de6('0x18')][_0x4de6('0x33')]));_0x5aacb4[_0x4de6('0x31')]=_0x5aacb4[_0x4de6('0x31')]['length']?_0x5aacb4['attributes']:_0x420f7c['model'];if(!_0x279278['query']['hasOwnProperty'](_0x4de6('0x34'))){_0x5aacb4[_0x4de6('0x9')]=qs[_0x4de6('0x9')](_0x279278[_0x4de6('0x18')][_0x4de6('0x9')]);_0x5aacb4[_0x4de6('0x7')]=qs[_0x4de6('0x7')](_0x279278[_0x4de6('0x18')][_0x4de6('0x7')]);}_0x5aacb4[_0x4de6('0x35')]=qs[_0x4de6('0x36')](_0x279278[_0x4de6('0x18')][_0x4de6('0x36')]);_0x5aacb4[_0x4de6('0x37')]=qs[_0x4de6('0x1b')](_[_0x4de6('0x38')](_0x279278[_0x4de6('0x18')],_0x420f7c[_0x4de6('0x1b')]),_0x2c7e57);if(_0x279278[_0x4de6('0x18')][_0x4de6('0x39')]){_0x5aacb4[_0x4de6('0x37')]=_[_0x4de6('0x3a')](_0x5aacb4[_0x4de6('0x37')],{'$or':_[_0x4de6('0x12')](_0x2c7e57,function(_0x1aab6e){if(_0x1aab6e[_0x4de6('0x16')]!==_0x4de6('0x3b')){var _0x12d20e={};_0x12d20e[_0x1aab6e[_0x4de6('0xf')]]={'$like':'%'+_0x279278['query'][_0x4de6('0x39')]+'%'};return _0x12d20e;}})});}_0x5aacb4=_[_0x4de6('0x3a')]({},_0x5aacb4,_0x279278[_0x4de6('0x3c')]);var _0x3bf31f={'where':_0x5aacb4['where']};return db[_0x4de6('0x13')][_0x4de6('0x3d')](_0x3bf31f)[_0x4de6('0xd')](function(_0x122493){_0xea1610['count']=_0x122493;if(_0x279278[_0x4de6('0x18')]['includeAll']){_0x5aacb4[_0x4de6('0x3e')]=[{'all':!![]}];}return db[_0x4de6('0x13')][_0x4de6('0x3f')](_0x5aacb4);})[_0x4de6('0xd')](function(_0x37feb0){_0xea1610[_0x4de6('0x40')]=_0x37feb0;return _0xea1610;})[_0x4de6('0xd')](respondWithFilteredResult(_0x324202,_0x5aacb4))[_0x4de6('0x41')](handleError(_0x324202,null));};exports[_0x4de6('0x42')]=function(_0xdfa5ed,_0x85581b){var _0x1f0262={'raw':!![],'where':{'id':_0xdfa5ed['params']['id']}},_0x551440={};_0x551440[_0x4de6('0x32')]=_[_0x4de6('0x19')](db[_0x4de6('0x13')][_0x4de6('0x14')]);_0x551440['query']=_['keys'](_0xdfa5ed[_0x4de6('0x18')]);_0x551440['filters']=_[_0x4de6('0x1a')](_0x551440['model'],_0x551440[_0x4de6('0x18')]);_0x1f0262['attributes']=_[_0x4de6('0x1a')](_0x551440[_0x4de6('0x32')],qs[_0x4de6('0x33')](_0xdfa5ed[_0x4de6('0x18')]['fields']));_0x1f0262[_0x4de6('0x31')]=_0x1f0262[_0x4de6('0x31')]['length']?_0x1f0262['attributes']:_0x551440[_0x4de6('0x32')];if(_0xdfa5ed['query'][_0x4de6('0x43')]){_0x1f0262[_0x4de6('0x3e')]=[{'all':!![]}];}_0x1f0262=_[_0x4de6('0x3a')]({},_0x1f0262,_0xdfa5ed[_0x4de6('0x3c')]);return db[_0x4de6('0x13')][_0x4de6('0x44')](_0x1f0262)[_0x4de6('0xd')](handleEntityNotFound(_0x85581b,null))[_0x4de6('0xd')](respondWithResult(_0x85581b,null))[_0x4de6('0x41')](handleError(_0x85581b,null));};exports[_0x4de6('0x45')]=function(_0x2cb079,_0x90ad4f){return db['CmHopper']['create'](_0x2cb079['body'],{})[_0x4de6('0xd')](respondWithResult(_0x90ad4f,0xc9))[_0x4de6('0x41')](handleError(_0x90ad4f,null));};exports['update']=function(_0x57fb2f,_0x16a12d){if(_0x57fb2f['body']['id']){delete _0x57fb2f[_0x4de6('0x46')]['id'];}return db[_0x4de6('0x13')]['find']({'where':{'id':_0x57fb2f[_0x4de6('0x47')]['id']}})[_0x4de6('0xd')](handleEntityNotFound(_0x16a12d,null))[_0x4de6('0xd')](saveUpdates(_0x57fb2f[_0x4de6('0x46')],null))[_0x4de6('0xd')](respondWithResult(_0x16a12d,null))['catch'](handleError(_0x16a12d,null));};exports[_0x4de6('0x48')]=function(_0x388b78,_0x2e23ad){return db[_0x4de6('0x13')][_0x4de6('0x48')]()[_0x4de6('0xd')](respondWithResult(_0x2e23ad,null))[_0x4de6('0x41')](handleError(_0x2e23ad,null));};exports[_0x4de6('0x49')]=function(_0x698dcb,_0x3126f1){var _0x367c8f;var _0x35df53=_0x698dcb[_0x4de6('0x47')]['id'];return db[_0x4de6('0x13')][_0x4de6('0x44')]({'where':{'id':_0x698dcb[_0x4de6('0x47')]['id']}})[_0x4de6('0xd')](handleEntityNotFound(_0x3126f1,null))['then'](function(_0x5eab19){if(_0x5eab19){return _0x5eab19[_0x4de6('0x49')]()[_0x4de6('0xd')](function(_0x524807){return _0x524807;});}})[_0x4de6('0xd')](function(_0x191f93){_0x367c8f=_0x191f93;if(_0x191f93){if(_0x191f93[_0x4de6('0x4a')]||_0x191f93[_0x4de6('0x4b')]){return db[_0x191f93[_0x4de6('0x4a')]?_0x4de6('0x4c'):_0x4de6('0x4d')]['find']({'where':{'id':_0x191f93[_0x4de6('0x4a')]?_0x191f93['VoiceQueueId']:_0x191f93[_0x4de6('0x4b')]},'attributes':['id',_0x4de6('0xf')],'raw':!![]});}}})[_0x4de6('0xd')](function(_0xb8b798){var _0x3326ad={};if(_0xb8b798){_[_0x4de6('0x3a')](_0x3326ad,_[_0x4de6('0x4e')](_0x367c8f[_0x4de6('0x4f')],['createdAt','updatedAt','id']));_0x3326ad[_0x4de6('0x50')]=0x15;_0x3326ad[_0x4de6('0x51')]=_0x4de6('0x52');_0x3326ad[_0x4de6('0x53')]=_0xb8b798['name'];_0x3326ad[_0x4de6('0x54')]=_0x698dcb[_0x4de6('0x55')][_0x4de6('0xf')];_0x3326ad['UserId']=_0x698dcb[_0x4de6('0x55')]['id'];_0x3326ad['deleted']=!![];_0x3326ad[_0x4de6('0x56')]=moment()[_0x4de6('0x57')]('YYYY-MM-DD\x20HH:mm:ss');_0x3326ad[_0x4de6('0x58')]=_0x367c8f[_0x4de6('0x59')];_0x3326ad['campaigntype']=_0x367c8f[_0x4de6('0x4a')]?_0x4de6('0x5a'):_0x4de6('0x5b');return db[_0x4de6('0x5c')][_0x4de6('0x44')]({'where':{'id':_0x3326ad[_0x4de6('0x5d')]},'attributes':[_0x4de6('0x5e'),_0x4de6('0x5f')]})[_0x4de6('0xd')](function(_0x46b82f){if(!_[_0x4de6('0x60')](_0x3126f1)&&!_['isNil'](_0x46b82f[_0x4de6('0x5e')])){_0x3326ad[_0x4de6('0x61')]=_0x46b82f[_0x4de6('0x5e')];if(!_['isNil'](_0x46b82f[_0x4de6('0x5f')])){_0x3326ad[_0x4de6('0x61')]+='\x20'+_0x46b82f['lastName'];}}})[_0x4de6('0x62')](function(){return db[_0x4de6('0x63')][_0x4de6('0x45')](_0x3326ad);});}})[_0x4de6('0xd')](function(_0x49b8c2){return db[_0x4de6('0x64')][_0x4de6('0x49')]({'where':{'CmHopperId':_0x35df53}});})[_0x4de6('0xd')](function(){return _0x3126f1['status'](0xcc)[_0x4de6('0x65')]();})[_0x4de6('0x41')](handleError(_0x3126f1,null));};exports[_0x4de6('0x66')]=function(_0x34065e,_0x1e4dc2){var _0x358faa=[];return db[_0x4de6('0x5c')][_0x4de6('0x48')]()[_0x4de6('0xd')](function(_0x2e748a){_0x358faa=_[_0x4de6('0x19')](_0x2e748a);return _0x34065e[_0x4de6('0x55')][_0x4de6('0x67')]({'where':{'type':_0x4de6('0x68'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x4de6('0x69'),_0x4de6('0x6a')],'raw':!![]});})['then'](function(_0x2f68e2){if(_0x2f68e2&&_0x2f68e2[_0x4de6('0x6b')]){return db['sequelize']['transaction'](function(_0x5b4fe9){var _0x4ebcd3={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4de6('0x57')](_0x4de6('0x6c'))},'VoiceQueueId':{'$in':_[_0x4de6('0x12')](_0x2f68e2,'id')},'$or':[{'UserId':null},{'UserId':_0x34065e[_0x4de6('0x55')]['id']}]};var _0x3b3a3c={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x2f68e2)[_0x4de6('0x39')]([_0x4de6('0x6a'),0x0])[_0x4de6('0x12')]('id')[_0x4de6('0x6d')]()},'$or':[{'UserId':null},{'UserId':_0x34065e['user']['id']}]};var _0x5e400b={'$or':[_0x4ebcd3,_0x3b3a3c]};var _0x1dae3a=[];if(_0x34065e[_0x4de6('0x46')]['direction']&&_0x34065e[_0x4de6('0x46')][_0x4de6('0x6e')]===_0x4de6('0x6f')){if(!_[_0x4de6('0x70')](_0x34065e[_0x4de6('0x46')][_0x4de6('0x71')])){_0x5e400b['id']={'$in':_0x34065e[_0x4de6('0x46')][_0x4de6('0x71')]};}_0x1dae3a=[['priority',_0x4de6('0x72')],[_0x4de6('0x73'),_0x2f68e2[0x0]['dialOrderByScheduledAt']==='ASC'?_0x4de6('0x74'):_0x4de6('0x72')],db[_0x4de6('0x75')][_0x4de6('0x76')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0x4de6('0x74')]];}else{if(!_['isEmpty'](_0x34065e['body'][_0x4de6('0x71')])){_0x5e400b['id']={'$notIn':_0x34065e['body']['hopperIds']};}_0x1dae3a=[[_0x4de6('0x77'),_0x4de6('0x74')],['scheduledAt',_0x2f68e2[0x0][_0x4de6('0x69')]],db[_0x4de6('0x75')][_0x4de6('0x76')]('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id','ASC']];}return db['CmHopper'][_0x4de6('0x78')]({'attributes':['id',_0x4de6('0x79'),_0x4de6('0x59'),_0x4de6('0x7a')],'where':_0x5e400b,'order':_0x1dae3a,'transaction':_0x5b4fe9,'lock':_0x5b4fe9[_0x4de6('0x7b')][_0x4de6('0x7c')],'include':[{'model':db['CmContact'],'as':_0x4de6('0x7d'),'attributes':_0x358faa,'include':[{'model':db[_0x4de6('0x7e')],'as':'Company','attributes':['id','name']}]},{'model':db[_0x4de6('0x7f')],'as':_0x4de6('0x80'),'attributes':['id','name']},{'model':db[_0x4de6('0x4c')],'as':_0x4de6('0x81'),'attributes':['id',_0x4de6('0xf'),_0x4de6('0x82')]}]})['then'](function(_0x1b5b36){if(_0x1b5b36){return _0x1b5b36[_0x4de6('0xc')]({'UserId':_0x34065e['user']['id']},{'transaction':_0x5b4fe9});}});});}})[_0x4de6('0xd')](handleEntityNotFound(_0x1e4dc2,null))[_0x4de6('0xd')](respondWithResult(_0x1e4dc2,null))[_0x4de6('0x41')](handleError(_0x1e4dc2,null));};exports[_0x4de6('0x83')]=function(_0x7efb2,_0x3129cb,_0xeaf72e){var _0x5f3afe=[];var _0x318caa=_0x7efb2[_0x4de6('0x47')]['id'];var _0x43380a=_0x7efb2[_0x4de6('0x55')]['id'];return db[_0x4de6('0x5c')][_0x4de6('0x48')]()['then'](function(_0x1eca16){_0x5f3afe=_[_0x4de6('0x19')](_0x1eca16);return db[_0x4de6('0x75')][_0x4de6('0x84')](function(_0x17519a){const _0x1d504f={'id':_0x318caa};return db[_0x4de6('0x13')][_0x4de6('0x78')]({'attributes':['id',_0x4de6('0x79'),_0x4de6('0x7a')],'where':_0x1d504f,'transaction':_0x17519a,'lock':_0x17519a[_0x4de6('0x7b')][_0x4de6('0x7c')],'include':[{'model':db[_0x4de6('0x5c')],'as':_0x4de6('0x7d'),'attributes':_0x5f3afe,'include':[{'model':db[_0x4de6('0x7e')],'as':_0x4de6('0x85'),'attributes':['id',_0x4de6('0xf')]}]},{'model':db['CmList'],'as':_0x4de6('0x80'),'attributes':['id',_0x4de6('0xf')]},{'model':db[_0x4de6('0x4c')],'as':_0x4de6('0x81'),'attributes':['id','name',_0x4de6('0x82')]}]})['then'](function(_0x3d6e0d){if(_0x3d6e0d){return _0x3d6e0d[_0x4de6('0xc')]({'UserId':_0x43380a},{'transaction':_0x17519a});}});});})[_0x4de6('0xd')](handleEntityNotFound(_0x3129cb,null))[_0x4de6('0xd')](respondWithResult(_0x3129cb,null))[_0x4de6('0x41')](handleError(_0x3129cb,null));};exports['getOpenContacts']=function(_0x104b48,_0x58e78c){return _0x104b48[_0x4de6('0x55')][_0x4de6('0x67')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x4de6('0x86')},'attributes':['id'],'raw':!![]})['then'](function(_0x4d0cde){if(_0x4d0cde&&_0x4d0cde['length']){return db[_0x4de6('0x13')][_0x4de6('0x3d')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4de6('0x57')](_0x4de6('0x6c'))},'VoiceQueueId':{'$in':_[_0x4de6('0x12')](_0x4d0cde,'id')},'$or':[{'UserId':null},{'UserId':_0x104b48[_0x4de6('0x55')]['id']}]}});}return 0x0;})[_0x4de6('0xd')](function(_0x43bd4b){if(!_['isNil'](_0x43bd4b)&&_[_0x4de6('0x87')](_0x43bd4b)){return _0x58e78c[_0x4de6('0xa')](0xc8)[_0x4de6('0x6')]({'contacts':_0x43bd4b});}else{logger[_0x4de6('0x88')](_0x4de6('0x89'),_0x4de6('0x8a'),0x194,_0x4de6('0x8b'));_0x58e78c[_0x4de6('0xe')](0x194);}})[_0x4de6('0x41')](handleError(_0x58e78c,null));};exports[_0x4de6('0x8c')]=function(_0x261539,_0x1582be){var _0x4cfe36=shared['timezones'];var _0x2060da=[];_[_0x4de6('0x12')](_0x4cfe36,function(_0x117272){_0x2060da[_0x4de6('0x8d')]({'id':_0x117272[_0x4de6('0xf')],'name':_0x117272[_0x4de6('0xf')],'utcOffset':_0x117272[_0x4de6('0x8e')]});});return _0x1582be['status'](0xc8)['json']({'tz':_0x2060da});};exports[_0x4de6('0x8f')]=function(_0xd3fe83,_0x427a2b){var _0x556bd4=shared[_0x4de6('0x90')];var _0x874c1f={};if(!_[_0x4de6('0x60')](_0x556bd4[_0xd3fe83[_0x4de6('0x46')]['id']]))_0x874c1f=_0x556bd4[_0xd3fe83[_0x4de6('0x46')]['id']];return _0x427a2b[_0x4de6('0xa')](0xc8)[_0x4de6('0x6')](_0x874c1f);};