Built motion from commit d301b742.|2.6.29
[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 _0xb66c=['$iLike','$notILike','$overlap','$contains','$contained','$any','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','create','body','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','find','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','user','UserId','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','ivr','CmContact','ContactId','lastName','isNil','firstName','calleridname','CmHopperFinal','CmHopperAdditionalPhone','end','keys','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','dialPreviewAutoRecallMe','sequelize','transaction','value','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','recallme','LOCK','UPDATE','Contact','CmCompany','Company','CmList','List','Queue','dialActive','getPreviewRecall','error','CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts','sendStatus','getTimezones','timezones','push','utcOffset','getTimezone','moment','../../components/parsers/qs','api','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','count','Content-Range','update','then','name','send','map','CmHopper','rawAttributes','model','query','filters','intersection','concat','$and','$gte','$lt','$lte','$eq','$not','$between','$notBetween','$notIn','$like','$notLike'];(function(_0x1f9d16,_0x5f1fd2){var _0x17f913=function(_0x1e90a7){while(--_0x1e90a7){_0x1f9d16['push'](_0x1f9d16['shift']());}};_0x17f913(++_0x5f1fd2);}(_0xb66c,0x175));var _0xcb66=function(_0x264e2e,_0x2fec7b){_0x264e2e=_0x264e2e-0x0;var _0x2c43a5=_0xb66c[_0x264e2e];return _0x2c43a5;};'use strict';var moment=require(_0xcb66('0x0'));var _=require('lodash');var qs=require(_0xcb66('0x1'));var logger=require('../../config/logger')(_0xcb66('0x2'));var shared=require(_0xcb66('0x3'));var db=require(_0xcb66('0x4'))['db'];function respondWithResult(_0x5f487c,_0x35d439){_0x35d439=_0x35d439||0xc8;return function(_0x386241){if(_0x386241){return _0x5f487c[_0xcb66('0x5')](_0x35d439)[_0xcb66('0x6')](_0x386241);}};}function respondWithFilteredResult(_0x5d766d,_0x518163){return function(_0x19adf5){if(_0x19adf5){var _0x1b6852=typeof _0x518163[_0xcb66('0x7')]===_0xcb66('0x8')&&typeof _0x518163[_0xcb66('0x9')]==='undefined';var _0x2c62ad=_0x19adf5[_0xcb66('0xa')];var _0x174969=_0x1b6852?0x0:_0x518163[_0xcb66('0x7')];var _0x3c4ce1=_0x1b6852?_0x19adf5['count']:_0x518163[_0xcb66('0x7')]+_0x518163[_0xcb66('0x9')];var _0xf12828;if(_0x3c4ce1>=_0x2c62ad){_0x3c4ce1=_0x2c62ad;_0xf12828=0xc8;}else{_0xf12828=0xce;}_0x5d766d[_0xcb66('0x5')](_0xf12828);return _0x5d766d['set'](_0xcb66('0xb'),_0x174969+'-'+_0x3c4ce1+'/'+_0x2c62ad)[_0xcb66('0x6')](_0x19adf5);}return null;};}function saveUpdates(_0x4105d2,_0x2339bb){return function(_0x582523){if(_0x582523){return _0x582523[_0xcb66('0xc')](_0x4105d2)[_0xcb66('0xd')](function(_0x36c846){return _0x36c846;});}return null;};}function handleEntityNotFound(_0x401bc9,_0x58fb9e){return function(_0x19072b){if(!_0x19072b){_0x401bc9['sendStatus'](0x194);}return _0x19072b;};}function handleError(_0x6af5b5,_0x52b058){_0x52b058=_0x52b058||0x1f4;return function(_0x27442d){logger['error'](_0x27442d['stack']);if(_0x27442d[_0xcb66('0xe')]){delete _0x27442d[_0xcb66('0xe')];}_0x6af5b5[_0xcb66('0x5')](_0x52b058)[_0xcb66('0xf')](_0x27442d);};}exports['index']=function(_0x3a6e26,_0x42ad03){var _0x8a0f3f={},_0x58bca0={},_0x2e4126={'count':0x0,'rows':[]};var _0x496d12=_[_0xcb66('0x10')](db[_0xcb66('0x11')][_0xcb66('0x12')],function(_0x1ccb71){return{'name':_0x1ccb71['fieldName'],'type':_0x1ccb71['type']['key']};});_0x58bca0[_0xcb66('0x13')]=_['map'](_0x496d12,'name');_0x58bca0[_0xcb66('0x14')]=_['keys'](_0x3a6e26[_0xcb66('0x14')]);_0x58bca0[_0xcb66('0x15')]=_[_0xcb66('0x16')](_0x58bca0[_0xcb66('0x13')],_0x58bca0[_0xcb66('0x14')]);_0x58bca0[_0xcb66('0x15')]=_[_0xcb66('0x17')](_0x58bca0['filters'],[_0xcb66('0x18'),'$or','$gt',_0xcb66('0x19'),_0xcb66('0x1a'),_0xcb66('0x1b'),'$ne',_0xcb66('0x1c'),_0xcb66('0x1d'),_0xcb66('0x1e'),_0xcb66('0x1f'),'$in',_0xcb66('0x20'),_0xcb66('0x21'),_0xcb66('0x22'),_0xcb66('0x23'),_0xcb66('0x24'),_0xcb66('0x21'),_0xcb66('0x25'),_0xcb66('0x26'),_0xcb66('0x27'),_0xcb66('0x28')]);_0x8a0f3f['attributes']=_[_0xcb66('0x16')](_0x58bca0['model'],qs['fields'](_0x3a6e26['query'][_0xcb66('0x29')]));_0x8a0f3f['attributes']=_0x8a0f3f[_0xcb66('0x2a')][_0xcb66('0x2b')]?_0x8a0f3f[_0xcb66('0x2a')]:_0x58bca0['model'];if(!_0x3a6e26[_0xcb66('0x14')][_0xcb66('0x2c')](_0xcb66('0x2d'))){_0x8a0f3f[_0xcb66('0x9')]=qs[_0xcb66('0x9')](_0x3a6e26[_0xcb66('0x14')][_0xcb66('0x9')]);_0x8a0f3f[_0xcb66('0x7')]=qs[_0xcb66('0x7')](_0x3a6e26[_0xcb66('0x14')]['offset']);}_0x8a0f3f[_0xcb66('0x2e')]=qs[_0xcb66('0x2f')](_0x3a6e26[_0xcb66('0x14')][_0xcb66('0x2f')]);_0x8a0f3f[_0xcb66('0x30')]=qs[_0xcb66('0x15')](_[_0xcb66('0x31')](_0x3a6e26['query'],_0x58bca0[_0xcb66('0x15')]),_0x496d12);if(_0x3a6e26[_0xcb66('0x14')][_0xcb66('0x32')]){_0x8a0f3f[_0xcb66('0x30')]=_['merge'](_0x8a0f3f[_0xcb66('0x30')],{'$or':_[_0xcb66('0x10')](_0x496d12,function(_0x907fff){if(_0x907fff[_0xcb66('0x33')]!==_0xcb66('0x34')){var _0x1d9957={};_0x1d9957[_0x907fff[_0xcb66('0xe')]]={'$like':'%'+_0x3a6e26[_0xcb66('0x14')][_0xcb66('0x32')]+'%'};return _0x1d9957;}})});}_0x8a0f3f=_[_0xcb66('0x35')]({},_0x8a0f3f,_0x3a6e26[_0xcb66('0x36')]);var _0x17b087={'where':_0x8a0f3f['where']};return db['CmHopper']['count'](_0x17b087)[_0xcb66('0xd')](function(_0x4182f9){_0x2e4126[_0xcb66('0xa')]=_0x4182f9;if(_0x3a6e26[_0xcb66('0x14')][_0xcb66('0x37')]){_0x8a0f3f[_0xcb66('0x38')]=[{'all':!![]}];}return db['CmHopper'][_0xcb66('0x39')](_0x8a0f3f);})['then'](function(_0x4b25f0){_0x2e4126['rows']=_0x4b25f0;return _0x2e4126;})[_0xcb66('0xd')](respondWithFilteredResult(_0x42ad03,_0x8a0f3f))[_0xcb66('0x3a')](handleError(_0x42ad03,null));};exports[_0xcb66('0x3b')]=function(_0x9db922,_0x11d2ac){var _0x3e71a7={'raw':!![],'where':{'id':_0x9db922[_0xcb66('0x3c')]['id']}},_0x3422b6={};_0x3422b6[_0xcb66('0x13')]=_['keys'](db[_0xcb66('0x11')][_0xcb66('0x12')]);_0x3422b6[_0xcb66('0x14')]=_['keys'](_0x9db922[_0xcb66('0x14')]);_0x3422b6[_0xcb66('0x15')]=_['intersection'](_0x3422b6['model'],_0x3422b6[_0xcb66('0x14')]);_0x3e71a7['attributes']=_['intersection'](_0x3422b6[_0xcb66('0x13')],qs[_0xcb66('0x29')](_0x9db922[_0xcb66('0x14')][_0xcb66('0x29')]));_0x3e71a7[_0xcb66('0x2a')]=_0x3e71a7[_0xcb66('0x2a')][_0xcb66('0x2b')]?_0x3e71a7[_0xcb66('0x2a')]:_0x3422b6[_0xcb66('0x13')];if(_0x9db922['query']['includeAll']){_0x3e71a7['include']=[{'all':!![]}];}_0x3e71a7=_[_0xcb66('0x35')]({},_0x3e71a7,_0x9db922['options']);return db[_0xcb66('0x11')]['find'](_0x3e71a7)[_0xcb66('0xd')](handleEntityNotFound(_0x11d2ac,null))[_0xcb66('0xd')](respondWithResult(_0x11d2ac,null))[_0xcb66('0x3a')](handleError(_0x11d2ac,null));};exports[_0xcb66('0x3d')]=function(_0x3115e2,_0xbc92e){return db['CmHopper']['create'](_0x3115e2[_0xcb66('0x3e')],{})[_0xcb66('0xd')](respondWithResult(_0xbc92e,0xc9))[_0xcb66('0x3a')](handleError(_0xbc92e,null));};exports[_0xcb66('0xc')]=function(_0xf2c532,_0x1c149b){if(_0xf2c532[_0xcb66('0x3e')]['id']){delete _0xf2c532[_0xcb66('0x3e')]['id'];}return db[_0xcb66('0x11')]['find']({'where':{'id':_0xf2c532[_0xcb66('0x3c')]['id']}})[_0xcb66('0xd')](handleEntityNotFound(_0x1c149b,null))[_0xcb66('0xd')](saveUpdates(_0xf2c532[_0xcb66('0x3e')],null))['then'](respondWithResult(_0x1c149b,null))[_0xcb66('0x3a')](handleError(_0x1c149b,null));};exports[_0xcb66('0x3f')]=function(_0x1aab4e,_0x5a1083){return db[_0xcb66('0x11')][_0xcb66('0x3f')]()[_0xcb66('0xd')](respondWithResult(_0x5a1083,null))[_0xcb66('0x3a')](handleError(_0x5a1083,null));};exports['destroy']=function(_0x43e0e0,_0xb0854f){var _0x3b839b;var _0x4b1d46=_0x43e0e0['params']['id'];return db[_0xcb66('0x11')]['find']({'where':{'id':_0x43e0e0[_0xcb66('0x3c')]['id']}})['then'](handleEntityNotFound(_0xb0854f,null))[_0xcb66('0xd')](function(_0x416448){if(_0x416448){return _0x416448[_0xcb66('0x40')]()['then'](function(_0x2071d5){return _0x2071d5;});}})['then'](function(_0x228504){_0x3b839b=_0x228504;if(_0x228504){if(_0x228504[_0xcb66('0x41')]||_0x228504[_0xcb66('0x42')]){return db[_0x228504[_0xcb66('0x41')]?_0xcb66('0x43'):'Campaign'][_0xcb66('0x44')]({'where':{'id':_0x228504['VoiceQueueId']?_0x228504[_0xcb66('0x41')]:_0x228504[_0xcb66('0x42')]},'attributes':['id',_0xcb66('0xe')],'raw':!![]});}}})['then'](function(_0x48d7a3){var _0x52ff91={};if(_0x48d7a3){_[_0xcb66('0x35')](_0x52ff91,_[_0xcb66('0x45')](_0x3b839b[_0xcb66('0x46')],[_0xcb66('0x47'),_0xcb66('0x48'),'id']));_0x52ff91[_0xcb66('0x49')]=0x15;_0x52ff91[_0xcb66('0x4a')]=_0xcb66('0x4b');_0x52ff91[_0xcb66('0x4c')]=_0x48d7a3[_0xcb66('0xe')];_0x52ff91['membername']=_0x43e0e0[_0xcb66('0x4d')][_0xcb66('0xe')];_0x52ff91[_0xcb66('0x4e')]=_0x43e0e0[_0xcb66('0x4d')]['id'];_0x52ff91['deleted']=!![];_0x52ff91['deletedat']=moment()[_0xcb66('0x4f')](_0xcb66('0x50'));_0x52ff91[_0xcb66('0x51')]=_0x3b839b[_0xcb66('0x52')];_0x52ff91[_0xcb66('0x53')]=_0x3b839b[_0xcb66('0x41')]?'queue':_0xcb66('0x54');return db[_0xcb66('0x55')][_0xcb66('0x44')]({'where':{'id':_0x52ff91[_0xcb66('0x56')]},'attributes':['firstName',_0xcb66('0x57')]})['then'](function(_0xd37bbd){if(!_['isNil'](_0xb0854f)&&!_[_0xcb66('0x58')](_0xd37bbd[_0xcb66('0x59')])){_0x52ff91[_0xcb66('0x5a')]=_0xd37bbd['firstName'];if(!_['isNil'](_0xd37bbd[_0xcb66('0x57')])){_0x52ff91[_0xcb66('0x5a')]+='\x20'+_0xd37bbd['lastName'];}}})['finally'](function(){return db[_0xcb66('0x5b')]['create'](_0x52ff91);});}})[_0xcb66('0xd')](function(_0x56e524){return db[_0xcb66('0x5c')][_0xcb66('0x40')]({'where':{'CmHopperId':_0x4b1d46}});})[_0xcb66('0xd')](function(){return _0xb0854f['status'](0xcc)[_0xcb66('0x5d')]();})[_0xcb66('0x3a')](handleError(_0xb0854f,null));};exports['getPreview']=function(_0x244003,_0x27e83c){var _0x417c7e=[];return db[_0xcb66('0x55')][_0xcb66('0x3f')]()[_0xcb66('0xd')](function(_0x5352aa){_0x417c7e=_[_0xcb66('0x5e')](_0x5352aa);return _0x244003[_0xcb66('0x4d')][_0xcb66('0x5f')]({'where':{'type':_0xcb66('0x60'),'dialActive':!![],'dialMethod':_0xcb66('0x61')},'attributes':['id',_0xcb66('0x62'),_0xcb66('0x63')],'raw':!![]});})[_0xcb66('0xd')](function(_0x1e2287){if(_0x1e2287&&_0x1e2287['length']){return db[_0xcb66('0x64')][_0xcb66('0x65')](function(_0x25e648){var _0x3ab8b3={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xcb66('0x4f')](_0xcb66('0x50'))},'VoiceQueueId':{'$in':_['map'](_0x1e2287,'id')},'$or':[{'UserId':null},{'UserId':_0x244003[_0xcb66('0x4d')]['id']}]};var _0x40d4f3={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x1e2287)['filter']([_0xcb66('0x63'),0x0])[_0xcb66('0x10')]('id')[_0xcb66('0x66')]()},'$or':[{'UserId':null},{'UserId':_0x244003[_0xcb66('0x4d')]['id']}]};var _0x5b6e1f={'$or':[_0x3ab8b3,_0x40d4f3]};var _0x3dbc42=[];if(_0x244003[_0xcb66('0x3e')][_0xcb66('0x67')]&&_0x244003[_0xcb66('0x3e')][_0xcb66('0x67')]===_0xcb66('0x68')){if(!_[_0xcb66('0x69')](_0x244003[_0xcb66('0x3e')][_0xcb66('0x6a')])){_0x5b6e1f['id']={'$in':_0x244003[_0xcb66('0x3e')]['hopperIds']};}_0x3dbc42=[[_0xcb66('0x6b'),_0xcb66('0x6c')],[_0xcb66('0x6d'),_0x1e2287[0x0][_0xcb66('0x62')]==='ASC'?_0xcb66('0x6e'):_0xcb66('0x6c')],db[_0xcb66('0x64')][_0xcb66('0x6f')](_0xcb66('0x70')),['id',_0xcb66('0x6e')]];}else{if(!_[_0xcb66('0x69')](_0x244003['body']['hopperIds'])){_0x5b6e1f['id']={'$notIn':_0x244003[_0xcb66('0x3e')][_0xcb66('0x6a')]};}_0x3dbc42=[[_0xcb66('0x6b'),_0xcb66('0x6e')],[_0xcb66('0x6d'),_0x1e2287[0x0][_0xcb66('0x62')]],db['sequelize'][_0xcb66('0x6f')](_0xcb66('0x71')),['id',_0xcb66('0x6c')]];}return db[_0xcb66('0x11')][_0xcb66('0x72')]({'attributes':['id',_0xcb66('0x73'),'phone',_0xcb66('0x74')],'where':_0x5b6e1f,'order':_0x3dbc42,'transaction':_0x25e648,'lock':_0x25e648[_0xcb66('0x75')][_0xcb66('0x76')],'include':[{'model':db[_0xcb66('0x55')],'as':_0xcb66('0x77'),'attributes':_0x417c7e,'include':[{'model':db[_0xcb66('0x78')],'as':_0xcb66('0x79'),'attributes':['id',_0xcb66('0xe')]}]},{'model':db[_0xcb66('0x7a')],'as':_0xcb66('0x7b'),'attributes':['id',_0xcb66('0xe')]},{'model':db[_0xcb66('0x43')],'as':_0xcb66('0x7c'),'attributes':['id',_0xcb66('0xe'),_0xcb66('0x7d')]}]})[_0xcb66('0xd')](function(_0x3b0f10){if(_0x3b0f10){return _0x3b0f10[_0xcb66('0xc')]({'UserId':_0x244003[_0xcb66('0x4d')]['id']},{'transaction':_0x25e648});}});});}})['then'](handleEntityNotFound(_0x27e83c,null))[_0xcb66('0xd')](respondWithResult(_0x27e83c,null))['catch'](handleError(_0x27e83c,null));};exports[_0xcb66('0x7e')]=function(_0x51311b,_0x279264,_0x2912c9){var _0x42a71a=[];var _0x1a4cdb=_0x51311b[_0xcb66('0x3c')]['id'];var _0x283600=_0x51311b[_0xcb66('0x4d')]['id'];return db[_0xcb66('0x55')][_0xcb66('0x3f')]()[_0xcb66('0xd')](function(_0xf7c710){_0x42a71a=_[_0xcb66('0x5e')](_0xf7c710);return db[_0xcb66('0x64')]['transaction'](function(_0x91725a){const _0x45b25e={'id':_0x1a4cdb};return db[_0xcb66('0x11')]['findOne']({'attributes':['id',_0xcb66('0x73'),_0xcb66('0x74')],'where':_0x45b25e,'transaction':_0x91725a,'lock':_0x91725a[_0xcb66('0x75')]['UPDATE'],'include':[{'model':db[_0xcb66('0x55')],'as':_0xcb66('0x77'),'attributes':_0x42a71a,'include':[{'model':db[_0xcb66('0x78')],'as':_0xcb66('0x79'),'attributes':['id',_0xcb66('0xe')]}]},{'model':db[_0xcb66('0x7a')],'as':'List','attributes':['id',_0xcb66('0xe')]},{'model':db['VoiceQueue'],'as':_0xcb66('0x7c'),'attributes':['id','name',_0xcb66('0x7d')]}]})['then'](function(_0x3b4c30){if(_0x3b4c30){return _0x3b4c30[_0xcb66('0xc')]({'UserId':_0x283600},{'transaction':_0x91725a});}});});})[_0xcb66('0xd')](handleEntityNotFound(_0x279264,null))['then'](respondWithResult(_0x279264,null))[_0xcb66('0x3a')](handleError(_0x279264,null));};exports['getOpenContacts']=function(_0x112f25,_0x21d871){return _0x112f25[_0xcb66('0x4d')][_0xcb66('0x5f')]({'where':{'type':_0xcb66('0x60'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})[_0xcb66('0xd')](function(_0xfa72ee){if(_0xfa72ee&&_0xfa72ee[_0xcb66('0x2b')]){return db[_0xcb66('0x11')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xcb66('0x4f')](_0xcb66('0x50'))},'VoiceQueueId':{'$in':_['map'](_0xfa72ee,'id')},'$or':[{'UserId':null},{'UserId':_0x112f25[_0xcb66('0x4d')]['id']}]}});}return 0x0;})[_0xcb66('0xd')](function(_0x16f9a3){if(!_[_0xcb66('0x58')](_0x16f9a3)&&_['isNumber'](_0x16f9a3)){return _0x21d871[_0xcb66('0x5')](0xc8)[_0xcb66('0x6')]({'contacts':_0x16f9a3});}else{logger[_0xcb66('0x7f')](_0xcb66('0x80'),_0xcb66('0x81'),0x194,'entity\x20not\x20found');_0x21d871[_0xcb66('0x82')](0x194);}})[_0xcb66('0x3a')](handleError(_0x21d871,null));};exports[_0xcb66('0x83')]=function(_0x1105d5,_0xb3a1e){var _0xf7b62b=shared[_0xcb66('0x84')];var _0x5b0db8=[];_['map'](_0xf7b62b,function(_0x56b8d5){_0x5b0db8[_0xcb66('0x85')]({'id':_0x56b8d5[_0xcb66('0xe')],'name':_0x56b8d5['name'],'utcOffset':_0x56b8d5[_0xcb66('0x86')]});});return _0xb3a1e['status'](0xc8)[_0xcb66('0x6')]({'tz':_0x5b0db8});};exports[_0xcb66('0x87')]=function(_0x220fea,_0x28987a){var _0x4d45b2=shared[_0xcb66('0x84')];var _0x2c08fc={};if(!_[_0xcb66('0x58')](_0x4d45b2[_0x220fea[_0xcb66('0x3e')]['id']]))_0x2c08fc=_0x4d45b2[_0x220fea[_0xcb66('0x3e')]['id']];return _0x28987a['status'](0xc8)['json'](_0x2c08fc);};