e8f1c1cea28ace0a3517776603ba450f69a8dbee
[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 _0x944c=['params','keys','intersection','includeAll','find','create','body','describe','VoiceQueueId','CampaignId','Campaign','omit','dataValues','updatedAt','state','campaign','membername','UserId','user','deleted','deletedat','format','calleridnum','phone','campaigntype','queue','ivr','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','getVoiceQueues','outbound','dialOrderByScheduledAt','sequelize','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','findOne','LOCK','UPDATE','CmContact','Contact','CmCompany','Company','List','Queue','dialActive','getOpenContacts','preview','isNumber','error','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','limit','set','Content-Range','json','reject','save','update','then','destroy','stack','name','index','map','rawAttributes','fieldName','type','model','query','filters','concat','$and','$gt','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$like','$notLike','$iLike','$notILike','$overlap','$any','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','CmHopper','count','include','rows','catch','show'];(function(_0x275c1b,_0x13947f){var _0x467b53=function(_0x513054){while(--_0x513054){_0x275c1b['push'](_0x275c1b['shift']());}};_0x467b53(++_0x13947f);}(_0x944c,0x168));var _0xc944=function(_0x4bcb3c,_0x192122){_0x4bcb3c=_0x4bcb3c-0x0;var _0xfe09bb=_0x944c[_0x4bcb3c];return _0xfe09bb;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xc944('0x0'));var rimraf=require(_0xc944('0x1'));var zipdir=require(_0xc944('0x2'));var jsonpatch=require(_0xc944('0x3'));var rp=require(_0xc944('0x4'));var moment=require(_0xc944('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc944('0x6'));var util=require(_0xc944('0x7'));var path=require(_0xc944('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xc944('0x9'));var squel=require(_0xc944('0xa'));var crypto=require(_0xc944('0xb'));var jsforce=require(_0xc944('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xc944('0xd'));var querystring=require(_0xc944('0xe'));var Papa=require(_0xc944('0xf'));var Redis=require(_0xc944('0x10'));var authService=require(_0xc944('0x11'));var qs=require(_0xc944('0x12'));var as=require(_0xc944('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc944('0x14'));var utils=require(_0xc944('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xc944('0x16'));var db=require(_0xc944('0x17'))['db'];function respondWithStatusCode(_0x1a4121,_0x5a8caa){_0x5a8caa=_0x5a8caa||0xcc;return function(_0x33450e){if(_0x33450e){return _0x1a4121[_0xc944('0x18')](_0x5a8caa);}return _0x1a4121['status'](_0x5a8caa)[_0xc944('0x19')]();};}function respondWithResult(_0xeef876,_0x8fbb12){_0x8fbb12=_0x8fbb12||0xc8;return function(_0x8e40ee){if(_0x8e40ee){return _0xeef876[_0xc944('0x1a')](_0x8fbb12)['json'](_0x8e40ee);}};}function respondWithFilteredResult(_0x5926dc,_0x57f390){return function(_0x3dcf68){if(_0x3dcf68){var _0x5e2307=_0x3dcf68['count'],_0x15b173=_0x57f390[_0xc944('0x1b')],_0x21bdd2=_0x57f390[_0xc944('0x1b')]+_0x57f390[_0xc944('0x1c')],_0x2403b2;if(_0x21bdd2>=_0x5e2307){_0x21bdd2=_0x5e2307;_0x2403b2=0xc8;}else{_0x2403b2=0xce;}_0x5926dc['status'](_0x2403b2);return _0x5926dc[_0xc944('0x1d')](_0xc944('0x1e'),_0x15b173+'-'+_0x21bdd2+'/'+_0x5e2307)[_0xc944('0x1f')](_0x3dcf68);}return null;};}function patchUpdates(_0x30c70b){return function(_0x127287){try{jsonpatch['apply'](_0x127287,_0x30c70b,!![]);}catch(_0x436100){return BPromise[_0xc944('0x20')](_0x436100);}return _0x127287[_0xc944('0x21')]();};}function saveUpdates(_0x180892,_0x7fa08b){return function(_0x57e27c){if(_0x57e27c){return _0x57e27c[_0xc944('0x22')](_0x180892)[_0xc944('0x23')](function(_0x183b71){return _0x183b71;});}return null;};}function removeEntity(_0x24db9a,_0x2049c8){return function(_0x252de8){if(_0x252de8){return _0x252de8[_0xc944('0x24')]()[_0xc944('0x23')](function(){_0x24db9a[_0xc944('0x1a')](0xcc)[_0xc944('0x19')]();});}};}function handleEntityNotFound(_0x157191,_0x288a94){return function(_0xc47711){if(!_0xc47711){_0x157191[_0xc944('0x18')](0x194);}return _0xc47711;};}function handleError(_0x389e26,_0x8948e3){_0x8948e3=_0x8948e3||0x1f4;return function(_0x5d497a){logger['error'](_0x5d497a[_0xc944('0x25')]);if(_0x5d497a[_0xc944('0x26')]){delete _0x5d497a[_0xc944('0x26')];}_0x389e26[_0xc944('0x1a')](_0x8948e3)['send'](_0x5d497a);};}exports[_0xc944('0x27')]=function(_0x510dad,_0x367215){var _0x461106={},_0x436a26={},_0x10ef7a={'count':0x0,'rows':[]};var _0x3c7a01=_[_0xc944('0x28')](db['CmHopper'][_0xc944('0x29')],function(_0x221401){return{'name':_0x221401[_0xc944('0x2a')],'type':_0x221401[_0xc944('0x2b')]['key']};});_0x436a26[_0xc944('0x2c')]=_[_0xc944('0x28')](_0x3c7a01,'name');_0x436a26['query']=_['keys'](_0x510dad[_0xc944('0x2d')]);_0x436a26[_0xc944('0x2e')]=_['intersection'](_0x436a26[_0xc944('0x2c')],_0x436a26[_0xc944('0x2d')]);_0x436a26['filters']=_[_0xc944('0x2f')](_0x436a26[_0xc944('0x2e')],[_0xc944('0x30'),'$or',_0xc944('0x31'),_0xc944('0x32'),_0xc944('0x33'),_0xc944('0x34'),_0xc944('0x35'),_0xc944('0x36'),_0xc944('0x37'),_0xc944('0x38'),_0xc944('0x39'),'$in','$notIn',_0xc944('0x3a'),_0xc944('0x3b'),_0xc944('0x3c'),_0xc944('0x3d'),'$like',_0xc944('0x3e'),'$contains','$contained',_0xc944('0x3f')]);_0x461106[_0xc944('0x40')]=_['intersection'](_0x436a26[_0xc944('0x2c')],qs[_0xc944('0x41')](_0x510dad[_0xc944('0x2d')][_0xc944('0x41')]));_0x461106[_0xc944('0x40')]=_0x461106[_0xc944('0x40')][_0xc944('0x42')]?_0x461106[_0xc944('0x40')]:_0x436a26[_0xc944('0x2c')];if(!_0x510dad[_0xc944('0x2d')][_0xc944('0x43')](_0xc944('0x44'))){_0x461106[_0xc944('0x1c')]=qs['limit'](_0x510dad[_0xc944('0x2d')][_0xc944('0x1c')]);_0x461106[_0xc944('0x1b')]=qs['offset'](_0x510dad[_0xc944('0x2d')]['offset']);}_0x461106[_0xc944('0x45')]=qs[_0xc944('0x46')](_0x510dad[_0xc944('0x2d')]['sort']);_0x461106[_0xc944('0x47')]=qs[_0xc944('0x2e')](_['pick'](_0x510dad['query'],_0x436a26[_0xc944('0x2e')]),_0x3c7a01);if(_0x510dad[_0xc944('0x2d')][_0xc944('0x48')]){_0x461106[_0xc944('0x47')]=_[_0xc944('0x49')](_0x461106[_0xc944('0x47')],{'$or':_[_0xc944('0x28')](_0x3c7a01,function(_0x2e7419){if(_0x2e7419['type']!=='VIRTUAL'){var _0x35543c={};_0x35543c[_0x2e7419[_0xc944('0x26')]]={'$like':'%'+_0x510dad['query'][_0xc944('0x48')]+'%'};return _0x35543c;}})});}_0x461106=_[_0xc944('0x49')]({},_0x461106,_0x510dad[_0xc944('0x4a')]);var _0x40faba={'where':_0x461106['where']};return db[_0xc944('0x4b')][_0xc944('0x4c')](_0x40faba)[_0xc944('0x23')](function(_0x318963){_0x10ef7a['count']=_0x318963;if(_0x510dad[_0xc944('0x2d')]['includeAll']){_0x461106[_0xc944('0x4d')]=[{'all':!![]}];}return db['CmHopper']['findAll'](_0x461106);})['then'](function(_0x133fa9){_0x10ef7a[_0xc944('0x4e')]=_0x133fa9;return _0x10ef7a;})['then'](respondWithFilteredResult(_0x367215,_0x461106))[_0xc944('0x4f')](handleError(_0x367215,null));};exports[_0xc944('0x50')]=function(_0x443476,_0x1608b4){var _0x4593fc={'raw':!![],'where':{'id':_0x443476[_0xc944('0x51')]['id']}},_0x46d720={};_0x46d720[_0xc944('0x2c')]=_[_0xc944('0x52')](db[_0xc944('0x4b')][_0xc944('0x29')]);_0x46d720[_0xc944('0x2d')]=_[_0xc944('0x52')](_0x443476['query']);_0x46d720[_0xc944('0x2e')]=_[_0xc944('0x53')](_0x46d720['model'],_0x46d720['query']);_0x4593fc[_0xc944('0x40')]=_[_0xc944('0x53')](_0x46d720[_0xc944('0x2c')],qs['fields'](_0x443476[_0xc944('0x2d')][_0xc944('0x41')]));_0x4593fc[_0xc944('0x40')]=_0x4593fc['attributes'][_0xc944('0x42')]?_0x4593fc[_0xc944('0x40')]:_0x46d720[_0xc944('0x2c')];if(_0x443476['query'][_0xc944('0x54')]){_0x4593fc['include']=[{'all':!![]}];}_0x4593fc=_[_0xc944('0x49')]({},_0x4593fc,_0x443476[_0xc944('0x4a')]);return db[_0xc944('0x4b')][_0xc944('0x55')](_0x4593fc)[_0xc944('0x23')](handleEntityNotFound(_0x1608b4,null))[_0xc944('0x23')](respondWithResult(_0x1608b4,null))[_0xc944('0x4f')](handleError(_0x1608b4,null));};exports[_0xc944('0x56')]=function(_0x1004c8,_0x4f95fb){return db[_0xc944('0x4b')]['create'](_0x1004c8[_0xc944('0x57')],{})[_0xc944('0x23')](respondWithResult(_0x4f95fb,0xc9))['catch'](handleError(_0x4f95fb,null));};exports[_0xc944('0x22')]=function(_0x43ab95,_0x49101c){if(_0x43ab95[_0xc944('0x57')]['id']){delete _0x43ab95[_0xc944('0x57')]['id'];}return db[_0xc944('0x4b')][_0xc944('0x55')]({'where':{'id':_0x43ab95[_0xc944('0x51')]['id']}})[_0xc944('0x23')](handleEntityNotFound(_0x49101c,null))[_0xc944('0x23')](saveUpdates(_0x43ab95['body'],null))['then'](respondWithResult(_0x49101c,null))[_0xc944('0x4f')](handleError(_0x49101c,null));};exports[_0xc944('0x58')]=function(_0x13e9ce,_0x416a5f){return db[_0xc944('0x4b')][_0xc944('0x58')]()['then'](respondWithResult(_0x416a5f,null))[_0xc944('0x4f')](handleError(_0x416a5f,null));};exports['destroy']=function(_0x40b804,_0x406e4f){var _0x3cbdc2;return db[_0xc944('0x4b')][_0xc944('0x55')]({'where':{'id':_0x40b804[_0xc944('0x51')]['id']}})['then'](handleEntityNotFound(_0x406e4f,null))['then'](function(_0x29aa58){if(_0x29aa58){return _0x29aa58[_0xc944('0x24')]()['then'](function(_0x80d307){return _0x80d307;});}})[_0xc944('0x23')](function(_0x1f2095){_0x3cbdc2=_0x1f2095;if(_0x1f2095){if(_0x1f2095[_0xc944('0x59')]||_0x1f2095[_0xc944('0x5a')]){return db[_0x1f2095[_0xc944('0x59')]?'VoiceQueue':_0xc944('0x5b')][_0xc944('0x55')]({'where':{'id':_0x1f2095[_0xc944('0x59')]?_0x1f2095[_0xc944('0x59')]:_0x1f2095[_0xc944('0x5a')]},'attributes':['id','name'],'raw':!![]});}}})['then'](function(_0x1dc62d){var _0x32b822={};if(_0x1dc62d){_['merge'](_0x32b822,_[_0xc944('0x5c')](_0x3cbdc2[_0xc944('0x5d')],['createdAt',_0xc944('0x5e'),'id']));_0x32b822[_0xc944('0x5f')]=0x15;_0x32b822['statedesc']='deleted';_0x32b822[_0xc944('0x60')]=_0x1dc62d[_0xc944('0x26')];_0x32b822[_0xc944('0x61')]=_0x40b804['user'][_0xc944('0x26')];_0x32b822[_0xc944('0x62')]=_0x40b804[_0xc944('0x63')]['id'];_0x32b822[_0xc944('0x64')]=!![];_0x32b822[_0xc944('0x65')]=moment()[_0xc944('0x66')]('YYYY-MM-DD\x20HH:mm:ss');_0x32b822[_0xc944('0x67')]=_0x3cbdc2[_0xc944('0x68')];_0x32b822[_0xc944('0x69')]=_0x3cbdc2['VoiceQueueId']?_0xc944('0x6a'):_0xc944('0x6b');return db['CmContact'][_0xc944('0x55')]({'where':{'id':_0x32b822[_0xc944('0x6c')]},'attributes':[_0xc944('0x6d'),_0xc944('0x6e')]})[_0xc944('0x23')](function(_0x3fd991){if(!_[_0xc944('0x6f')](_0x406e4f)&&!_[_0xc944('0x6f')](_0x3fd991[_0xc944('0x6d')])){_0x32b822[_0xc944('0x70')]=_0x3fd991['firstName'];if(!_[_0xc944('0x6f')](_0x3fd991[_0xc944('0x6e')])){_0x32b822[_0xc944('0x70')]+='\x20'+_0x3fd991['lastName'];}}})[_0xc944('0x71')](function(){return db[_0xc944('0x72')][_0xc944('0x56')](_0x32b822);});}})[_0xc944('0x23')](function(){return _0x406e4f[_0xc944('0x1a')](0xcc)[_0xc944('0x19')]();})['catch'](handleError(_0x406e4f,null));};exports[_0xc944('0x73')]=function(_0x10f648,_0x5462db,_0x3fc3c1){var _0x28e3dc=[];return db['CmContact'][_0xc944('0x58')]()[_0xc944('0x23')](function(_0x1419ba){_0x28e3dc=_[_0xc944('0x52')](_0x1419ba);return _0x10f648[_0xc944('0x63')][_0xc944('0x74')]({'where':{'type':_0xc944('0x75'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0xc944('0x76')],'raw':!![]});})[_0xc944('0x23')](function(_0x1f8bef){if(_0x1f8bef&&_0x1f8bef[_0xc944('0x42')]){return db[_0xc944('0x77')]['transaction'](function(_0x564985){var _0x56aaa7={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xc944('0x78'))},'VoiceQueueId':{'$in':_[_0xc944('0x28')](_0x1f8bef,'id')},'$or':[{'UserId':null},{'UserId':_0x10f648[_0xc944('0x63')]['id']}]};var _0x139783=[];if(_0x10f648[_0xc944('0x57')][_0xc944('0x79')]&&_0x10f648[_0xc944('0x57')][_0xc944('0x79')]===_0xc944('0x7a')){if(!_[_0xc944('0x7b')](_0x10f648[_0xc944('0x57')]['hopperIds'])){_0x56aaa7['id']={'$in':_0x10f648['body'][_0xc944('0x7c')]};}_0x139783=[[_0xc944('0x7d'),_0xc944('0x7e')],[_0xc944('0x7f'),_0x1f8bef[0x0]['dialOrderByScheduledAt']===_0xc944('0x7e')?_0xc944('0x80'):_0xc944('0x7e')],db[_0xc944('0x77')][_0xc944('0x81')](_0xc944('0x82')),['id',_0xc944('0x80')]];}else{if(!_[_0xc944('0x7b')](_0x10f648['body'][_0xc944('0x7c')])){_0x56aaa7['id']={'$notIn':_0x10f648['body'][_0xc944('0x7c')]};}_0x139783=[[_0xc944('0x7d'),'DESC'],[_0xc944('0x7f'),_0x1f8bef[0x0][_0xc944('0x76')]],db['sequelize']['literal']('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id','ASC']];}return db['CmHopper'][_0xc944('0x83')]({'attributes':['id','scheduledat'],'where':_0x56aaa7,'order':_0x139783,'transaction':_0x564985,'lock':_0x564985[_0xc944('0x84')][_0xc944('0x85')],'include':[{'model':db[_0xc944('0x86')],'as':_0xc944('0x87'),'attributes':_0x28e3dc,'include':[{'model':db[_0xc944('0x88')],'as':_0xc944('0x89'),'attributes':['id',_0xc944('0x26')]}]},{'model':db['CmList'],'as':_0xc944('0x8a'),'attributes':['id',_0xc944('0x26')]},{'model':db['VoiceQueue'],'as':_0xc944('0x8b'),'attributes':['id','name',_0xc944('0x8c')]}]})[_0xc944('0x23')](function(_0x2cc85c){if(_0x2cc85c){return _0x2cc85c['update']({'UserId':_0x10f648[_0xc944('0x63')]['id']},{'transaction':_0x564985});}});});}})['then'](handleEntityNotFound(_0x5462db,null))[_0xc944('0x23')](respondWithResult(_0x5462db,null))[_0xc944('0x4f')](handleError(_0x5462db,null));};exports[_0xc944('0x8d')]=function(_0x3094f5,_0x56e879,_0x54cb42){return _0x3094f5[_0xc944('0x63')][_0xc944('0x74')]({'where':{'type':_0xc944('0x75'),'dialActive':!![],'dialMethod':_0xc944('0x8e')},'attributes':['id'],'raw':!![]})['then'](function(_0x1ec554){if(_0x1ec554&&_0x1ec554['length']){return db[_0xc944('0x4b')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xc944('0x78'))},'VoiceQueueId':{'$in':_['map'](_0x1ec554,'id')},'$or':[{'UserId':null},{'UserId':_0x3094f5[_0xc944('0x63')]['id']}]}});}return 0x0;})[_0xc944('0x23')](function(_0x48400d){if(!_[_0xc944('0x6f')](_0x48400d)&&_[_0xc944('0x8f')](_0x48400d)){return _0x56e879[_0xc944('0x1a')](0xc8)[_0xc944('0x1f')]({'contacts':_0x48400d});}else{logger[_0xc944('0x90')](_0xc944('0x91'),_0xc944('0x8d'),0x194,_0xc944('0x92'));_0x56e879[_0xc944('0x18')](0x194);}})[_0xc944('0x4f')](handleError(_0x56e879,null));};