Built motion from commit (unavailable).|2.5.26
[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 _0x0ccf=['../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','count','offset','limit','set','json','apply','reject','save','update','then','destroy','error','stack','name','send','map','CmHopper','rawAttributes','fieldName','type','key','model','query','keys','intersection','filters','concat','$gt','$gte','$lte','$not','$between','$notBetween','$in','$like','$notLike','$notILike','$overlap','$contains','$any','attributes','fields','length','hasOwnProperty','order','sort','where','filter','VIRTUAL','merge','options','rows','catch','show','params','includeAll','find','create','body','describe','VoiceQueueId','CampaignId','Campaign','omit','createdAt','updatedAt','state','statedesc','deleted','campaign','membername','user','UserId','format','YYYY-MM-DD\x20HH:mm:ss','campaigntype','queue','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','outbound','preview','dialOrderByScheduledAt','sequelize','transaction','direction','prev','hopperIds','priority','scheduledAt','ASC','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','Contact','CmCompany','Company','CmList','List','VoiceQueue','Queue','dialActive','getOpenContacts','getVoiceQueues','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x48361e,_0x5e5921){var _0x16f1dd=function(_0x4e736b){while(--_0x4e736b){_0x48361e['push'](_0x48361e['shift']());}};_0x16f1dd(++_0x5e5921);}(_0x0ccf,0x19d));var _0xf0cc=function(_0x209526,_0x40a1f0){_0x209526=_0x209526-0x0;var _0x40d077=_0x0ccf[_0x209526];return _0x40d077;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xf0cc('0x0'));var jsonpatch=require(_0xf0cc('0x1'));var rp=require(_0xf0cc('0x2'));var moment=require(_0xf0cc('0x3'));var BPromise=require(_0xf0cc('0x4'));var Mustache=require(_0xf0cc('0x5'));var util=require(_0xf0cc('0x6'));var path=require(_0xf0cc('0x7'));var sox=require(_0xf0cc('0x8'));var csv=require('to-csv');var ejs=require(_0xf0cc('0x9'));var fs=require('fs');var fs_extra=require(_0xf0cc('0xa'));var _=require(_0xf0cc('0xb'));var squel=require('squel');var crypto=require(_0xf0cc('0xc'));var jsforce=require(_0xf0cc('0xd'));var deskjs=require(_0xf0cc('0xe'));var toCsv=require(_0xf0cc('0xf'));var querystring=require(_0xf0cc('0x10'));var Papa=require('papaparse');var Redis=require(_0xf0cc('0x11'));var authService=require(_0xf0cc('0x12'));var qs=require(_0xf0cc('0x13'));var as=require(_0xf0cc('0x14'));var hardwareService=require(_0xf0cc('0x15'));var logger=require(_0xf0cc('0x16'))(_0xf0cc('0x17'));var utils=require(_0xf0cc('0x18'));var config=require(_0xf0cc('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xf0cc('0x1a'))['db'];function respondWithStatusCode(_0x5a2648,_0x3b1701){_0x3b1701=_0x3b1701||0xcc;return function(_0x218546){if(_0x218546){return _0x5a2648[_0xf0cc('0x1b')](_0x3b1701);}return _0x5a2648['status'](_0x3b1701)[_0xf0cc('0x1c')]();};}function respondWithResult(_0xfce2ac,_0x59e060){_0x59e060=_0x59e060||0xc8;return function(_0x434277){if(_0x434277){return _0xfce2ac[_0xf0cc('0x1d')](_0x59e060)['json'](_0x434277);}};}function respondWithFilteredResult(_0x5df66f,_0x2011cc){return function(_0x486deb){if(_0x486deb){var _0x27dfec=_0x486deb[_0xf0cc('0x1e')],_0x3c3acc=_0x2011cc[_0xf0cc('0x1f')],_0x28bb79=_0x2011cc[_0xf0cc('0x1f')]+_0x2011cc[_0xf0cc('0x20')],_0x38445e;if(_0x28bb79>=_0x27dfec){_0x28bb79=_0x27dfec;_0x38445e=0xc8;}else{_0x38445e=0xce;}_0x5df66f[_0xf0cc('0x1d')](_0x38445e);return _0x5df66f[_0xf0cc('0x21')]('Content-Range',_0x3c3acc+'-'+_0x28bb79+'/'+_0x27dfec)[_0xf0cc('0x22')](_0x486deb);}return null;};}function patchUpdates(_0x235ec9){return function(_0x4f44a3){try{jsonpatch[_0xf0cc('0x23')](_0x4f44a3,_0x235ec9,!![]);}catch(_0x480e40){return BPromise[_0xf0cc('0x24')](_0x480e40);}return _0x4f44a3[_0xf0cc('0x25')]();};}function saveUpdates(_0x8847f1,_0xd4bbfd){return function(_0x30e4c1){if(_0x30e4c1){return _0x30e4c1[_0xf0cc('0x26')](_0x8847f1)[_0xf0cc('0x27')](function(_0x3a8a0d){return _0x3a8a0d;});}return null;};}function removeEntity(_0x4b5ffa,_0x439993){return function(_0x2aad4e){if(_0x2aad4e){return _0x2aad4e[_0xf0cc('0x28')]()[_0xf0cc('0x27')](function(){_0x4b5ffa[_0xf0cc('0x1d')](0xcc)[_0xf0cc('0x1c')]();});}};}function handleEntityNotFound(_0x32cf9c,_0x311186){return function(_0xd7dcc4){if(!_0xd7dcc4){_0x32cf9c[_0xf0cc('0x1b')](0x194);}return _0xd7dcc4;};}function handleError(_0x228147,_0x150e1f){_0x150e1f=_0x150e1f||0x1f4;return function(_0x270850){logger[_0xf0cc('0x29')](_0x270850[_0xf0cc('0x2a')]);if(_0x270850[_0xf0cc('0x2b')]){delete _0x270850[_0xf0cc('0x2b')];}_0x228147[_0xf0cc('0x1d')](_0x150e1f)[_0xf0cc('0x2c')](_0x270850);};}exports['index']=function(_0x41cc3b,_0x163e8f){var _0x50f694={},_0xf13c3e={},_0x4199b2={'count':0x0,'rows':[]};var _0x2fc97c=_[_0xf0cc('0x2d')](db[_0xf0cc('0x2e')][_0xf0cc('0x2f')],function(_0x1cf367){return{'name':_0x1cf367[_0xf0cc('0x30')],'type':_0x1cf367[_0xf0cc('0x31')][_0xf0cc('0x32')]};});_0xf13c3e[_0xf0cc('0x33')]=_[_0xf0cc('0x2d')](_0x2fc97c,_0xf0cc('0x2b'));_0xf13c3e[_0xf0cc('0x34')]=_[_0xf0cc('0x35')](_0x41cc3b[_0xf0cc('0x34')]);_0xf13c3e['filters']=_[_0xf0cc('0x36')](_0xf13c3e['model'],_0xf13c3e[_0xf0cc('0x34')]);_0xf13c3e[_0xf0cc('0x37')]=_[_0xf0cc('0x38')](_0xf13c3e[_0xf0cc('0x37')],['$and','$or',_0xf0cc('0x39'),_0xf0cc('0x3a'),'$lt',_0xf0cc('0x3b'),'$ne','$eq',_0xf0cc('0x3c'),_0xf0cc('0x3d'),_0xf0cc('0x3e'),_0xf0cc('0x3f'),'$notIn',_0xf0cc('0x40'),_0xf0cc('0x41'),'$iLike',_0xf0cc('0x42'),'$like',_0xf0cc('0x43'),_0xf0cc('0x44'),'$contained',_0xf0cc('0x45')]);_0x50f694[_0xf0cc('0x46')]=_['intersection'](_0xf13c3e['model'],qs[_0xf0cc('0x47')](_0x41cc3b[_0xf0cc('0x34')]['fields']));_0x50f694[_0xf0cc('0x46')]=_0x50f694[_0xf0cc('0x46')][_0xf0cc('0x48')]?_0x50f694['attributes']:_0xf13c3e['model'];if(!_0x41cc3b['query'][_0xf0cc('0x49')]('nolimit')){_0x50f694[_0xf0cc('0x20')]=qs[_0xf0cc('0x20')](_0x41cc3b['query']['limit']);_0x50f694[_0xf0cc('0x1f')]=qs[_0xf0cc('0x1f')](_0x41cc3b[_0xf0cc('0x34')][_0xf0cc('0x1f')]);}_0x50f694[_0xf0cc('0x4a')]=qs[_0xf0cc('0x4b')](_0x41cc3b[_0xf0cc('0x34')][_0xf0cc('0x4b')]);_0x50f694[_0xf0cc('0x4c')]=qs[_0xf0cc('0x37')](_['pick'](_0x41cc3b[_0xf0cc('0x34')],_0xf13c3e[_0xf0cc('0x37')]),_0x2fc97c);if(_0x41cc3b[_0xf0cc('0x34')][_0xf0cc('0x4d')]){_0x50f694[_0xf0cc('0x4c')]=_['merge'](_0x50f694[_0xf0cc('0x4c')],{'$or':_[_0xf0cc('0x2d')](_0x2fc97c,function(_0x218469){if(_0x218469[_0xf0cc('0x31')]!==_0xf0cc('0x4e')){var _0x4d4525={};_0x4d4525[_0x218469[_0xf0cc('0x2b')]]={'$like':'%'+_0x41cc3b[_0xf0cc('0x34')][_0xf0cc('0x4d')]+'%'};return _0x4d4525;}})});}_0x50f694=_[_0xf0cc('0x4f')]({},_0x50f694,_0x41cc3b[_0xf0cc('0x50')]);var _0x1e2f57={'where':_0x50f694[_0xf0cc('0x4c')]};return db['CmHopper'][_0xf0cc('0x1e')](_0x1e2f57)[_0xf0cc('0x27')](function(_0x946a15){_0x4199b2[_0xf0cc('0x1e')]=_0x946a15;if(_0x41cc3b[_0xf0cc('0x34')]['includeAll']){_0x50f694['include']=[{'all':!![]}];}return db[_0xf0cc('0x2e')]['findAll'](_0x50f694);})[_0xf0cc('0x27')](function(_0x4a32cf){_0x4199b2[_0xf0cc('0x51')]=_0x4a32cf;return _0x4199b2;})['then'](respondWithFilteredResult(_0x163e8f,_0x50f694))[_0xf0cc('0x52')](handleError(_0x163e8f,null));};exports[_0xf0cc('0x53')]=function(_0x215dbc,_0x145585){var _0x196fd={'raw':!![],'where':{'id':_0x215dbc[_0xf0cc('0x54')]['id']}},_0x1f9a04={};_0x1f9a04[_0xf0cc('0x33')]=_[_0xf0cc('0x35')](db['CmHopper'][_0xf0cc('0x2f')]);_0x1f9a04[_0xf0cc('0x34')]=_[_0xf0cc('0x35')](_0x215dbc['query']);_0x1f9a04[_0xf0cc('0x37')]=_[_0xf0cc('0x36')](_0x1f9a04[_0xf0cc('0x33')],_0x1f9a04['query']);_0x196fd[_0xf0cc('0x46')]=_[_0xf0cc('0x36')](_0x1f9a04[_0xf0cc('0x33')],qs['fields'](_0x215dbc[_0xf0cc('0x34')][_0xf0cc('0x47')]));_0x196fd[_0xf0cc('0x46')]=_0x196fd[_0xf0cc('0x46')]['length']?_0x196fd['attributes']:_0x1f9a04[_0xf0cc('0x33')];if(_0x215dbc['query'][_0xf0cc('0x55')]){_0x196fd['include']=[{'all':!![]}];}_0x196fd=_[_0xf0cc('0x4f')]({},_0x196fd,_0x215dbc['options']);return db[_0xf0cc('0x2e')][_0xf0cc('0x56')](_0x196fd)['then'](handleEntityNotFound(_0x145585,null))[_0xf0cc('0x27')](respondWithResult(_0x145585,null))[_0xf0cc('0x52')](handleError(_0x145585,null));};exports[_0xf0cc('0x57')]=function(_0x1e06db,_0x5194d5){return db[_0xf0cc('0x2e')][_0xf0cc('0x57')](_0x1e06db[_0xf0cc('0x58')],{})['then'](respondWithResult(_0x5194d5,0xc9))['catch'](handleError(_0x5194d5,null));};exports[_0xf0cc('0x26')]=function(_0x270275,_0x1c5ca1){if(_0x270275[_0xf0cc('0x58')]['id']){delete _0x270275[_0xf0cc('0x58')]['id'];}return db[_0xf0cc('0x2e')][_0xf0cc('0x56')]({'where':{'id':_0x270275['params']['id']}})[_0xf0cc('0x27')](handleEntityNotFound(_0x1c5ca1,null))[_0xf0cc('0x27')](saveUpdates(_0x270275[_0xf0cc('0x58')],null))[_0xf0cc('0x27')](respondWithResult(_0x1c5ca1,null))[_0xf0cc('0x52')](handleError(_0x1c5ca1,null));};exports[_0xf0cc('0x59')]=function(_0x3b5612,_0x4d76ca){return db[_0xf0cc('0x2e')][_0xf0cc('0x59')]()[_0xf0cc('0x27')](respondWithResult(_0x4d76ca,null))[_0xf0cc('0x52')](handleError(_0x4d76ca,null));};exports[_0xf0cc('0x28')]=function(_0x1ae186,_0x56fad5){var _0x5bfa63;return db[_0xf0cc('0x2e')][_0xf0cc('0x56')]({'where':{'id':_0x1ae186['params']['id']}})['then'](handleEntityNotFound(_0x56fad5,null))[_0xf0cc('0x27')](function(_0x45cea6){if(_0x45cea6){return _0x45cea6['destroy']()['then'](function(_0x3dd5aa){return _0x3dd5aa;});}})[_0xf0cc('0x27')](function(_0xd8450b){_0x5bfa63=_0xd8450b;if(_0xd8450b){if(_0xd8450b[_0xf0cc('0x5a')]||_0xd8450b[_0xf0cc('0x5b')]){return db[_0xd8450b[_0xf0cc('0x5a')]?'VoiceQueue':_0xf0cc('0x5c')][_0xf0cc('0x56')]({'where':{'id':_0xd8450b[_0xf0cc('0x5a')]?_0xd8450b[_0xf0cc('0x5a')]:_0xd8450b['CampaignId']},'attributes':['id',_0xf0cc('0x2b')],'raw':!![]});}}})[_0xf0cc('0x27')](function(_0x2f7a65){var _0x4bf35b={};if(_0x2f7a65){_[_0xf0cc('0x4f')](_0x4bf35b,_[_0xf0cc('0x5d')](_0x5bfa63['dataValues'],[_0xf0cc('0x5e'),_0xf0cc('0x5f'),'id']));_0x4bf35b[_0xf0cc('0x60')]=0x15;_0x4bf35b[_0xf0cc('0x61')]=_0xf0cc('0x62');_0x4bf35b[_0xf0cc('0x63')]=_0x2f7a65[_0xf0cc('0x2b')];_0x4bf35b[_0xf0cc('0x64')]=_0x1ae186[_0xf0cc('0x65')][_0xf0cc('0x2b')];_0x4bf35b[_0xf0cc('0x66')]=_0x1ae186[_0xf0cc('0x65')]['id'];_0x4bf35b[_0xf0cc('0x62')]=!![];_0x4bf35b['deletedat']=moment()[_0xf0cc('0x67')](_0xf0cc('0x68'));_0x4bf35b['calleridnum']=_0x5bfa63['phone'];_0x4bf35b[_0xf0cc('0x69')]=_0x5bfa63['VoiceQueueId']?_0xf0cc('0x6a'):'ivr';return db[_0xf0cc('0x6b')][_0xf0cc('0x56')]({'where':{'id':_0x4bf35b[_0xf0cc('0x6c')]},'attributes':[_0xf0cc('0x6d'),_0xf0cc('0x6e')]})['then'](function(_0x23a13f){if(!_[_0xf0cc('0x6f')](_0x56fad5)&&!_[_0xf0cc('0x6f')](_0x23a13f['firstName'])){_0x4bf35b[_0xf0cc('0x70')]=_0x23a13f['firstName'];if(!_[_0xf0cc('0x6f')](_0x23a13f[_0xf0cc('0x6e')])){_0x4bf35b[_0xf0cc('0x70')]+='\x20'+_0x23a13f[_0xf0cc('0x6e')];}}})[_0xf0cc('0x71')](function(){return db[_0xf0cc('0x72')]['create'](_0x4bf35b);});}})['then'](function(){return _0x56fad5[_0xf0cc('0x1d')](0xcc)[_0xf0cc('0x1c')]();})['catch'](handleError(_0x56fad5,null));};exports[_0xf0cc('0x73')]=function(_0x43af11,_0x4c477e,_0x58be73){var _0x24981c=[];return db['CmContact'][_0xf0cc('0x59')]()[_0xf0cc('0x27')](function(_0x3285d0){_0x24981c=_[_0xf0cc('0x35')](_0x3285d0);return _0x43af11['user']['getVoiceQueues']({'where':{'type':_0xf0cc('0x74'),'dialActive':!![],'dialMethod':_0xf0cc('0x75')},'attributes':['id',_0xf0cc('0x76')],'raw':!![]});})[_0xf0cc('0x27')](function(_0x42d459){if(_0x42d459&&_0x42d459[_0xf0cc('0x48')]){return db[_0xf0cc('0x77')][_0xf0cc('0x78')](function(_0x1664ea){var _0x47b03f={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xf0cc('0x67')](_0xf0cc('0x68'))},'VoiceQueueId':{'$in':_[_0xf0cc('0x2d')](_0x42d459,'id')},'$or':[{'UserId':null},{'UserId':_0x43af11['user']['id']}]};var _0x3c0718=[];if(_0x43af11[_0xf0cc('0x58')][_0xf0cc('0x79')]&&_0x43af11[_0xf0cc('0x58')][_0xf0cc('0x79')]===_0xf0cc('0x7a')){if(!_['isEmpty'](_0x43af11['body'][_0xf0cc('0x7b')])){_0x47b03f['id']={'$in':_0x43af11[_0xf0cc('0x58')][_0xf0cc('0x7b')]};}_0x3c0718=[[_0xf0cc('0x7c'),'ASC'],[_0xf0cc('0x7d'),_0x42d459[0x0]['dialOrderByScheduledAt']===_0xf0cc('0x7e')?_0xf0cc('0x7f'):_0xf0cc('0x7e')],db[_0xf0cc('0x77')][_0xf0cc('0x80')](_0xf0cc('0x81')),['id','DESC']];}else{if(!_['isEmpty'](_0x43af11[_0xf0cc('0x58')][_0xf0cc('0x7b')])){_0x47b03f['id']={'$notIn':_0x43af11[_0xf0cc('0x58')][_0xf0cc('0x7b')]};}_0x3c0718=[[_0xf0cc('0x7c'),'DESC'],[_0xf0cc('0x7d'),_0x42d459[0x0][_0xf0cc('0x76')]],db[_0xf0cc('0x77')][_0xf0cc('0x80')](_0xf0cc('0x82')),['id','ASC']];}return db[_0xf0cc('0x2e')][_0xf0cc('0x83')]({'attributes':['id',_0xf0cc('0x84')],'where':_0x47b03f,'order':_0x3c0718,'transaction':_0x1664ea,'lock':_0x1664ea['LOCK']['UPDATE'],'include':[{'model':db[_0xf0cc('0x6b')],'as':_0xf0cc('0x85'),'attributes':_0x24981c,'include':[{'model':db[_0xf0cc('0x86')],'as':_0xf0cc('0x87'),'attributes':['id',_0xf0cc('0x2b')]}]},{'model':db[_0xf0cc('0x88')],'as':_0xf0cc('0x89'),'attributes':['id',_0xf0cc('0x2b')]},{'model':db[_0xf0cc('0x8a')],'as':_0xf0cc('0x8b'),'attributes':['id',_0xf0cc('0x2b'),_0xf0cc('0x8c')]}]})[_0xf0cc('0x27')](function(_0x2df09a){if(_0x2df09a){return _0x2df09a[_0xf0cc('0x26')]({'UserId':_0x43af11[_0xf0cc('0x65')]['id']},{'transaction':_0x1664ea});}});});}})[_0xf0cc('0x27')](handleEntityNotFound(_0x4c477e,null))['then'](respondWithResult(_0x4c477e,null))[_0xf0cc('0x52')](handleError(_0x4c477e,null));};exports[_0xf0cc('0x8d')]=function(_0x1e7de1,_0x8e32c6,_0x25f0cd){return _0x1e7de1[_0xf0cc('0x65')][_0xf0cc('0x8e')]({'where':{'type':_0xf0cc('0x74'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})[_0xf0cc('0x27')](function(_0x25a04e){if(_0x25a04e&&_0x25a04e['length']){return db[_0xf0cc('0x2e')][_0xf0cc('0x1e')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xf0cc('0x67')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0xf0cc('0x2d')](_0x25a04e,'id')},'$or':[{'UserId':null},{'UserId':_0x1e7de1['user']['id']}]}});}return 0x0;})[_0xf0cc('0x27')](function(_0x10c597){if(!_[_0xf0cc('0x6f')](_0x10c597)&&_[_0xf0cc('0x8f')](_0x10c597)){return _0x8e32c6[_0xf0cc('0x1d')](0xc8)[_0xf0cc('0x22')]({'contacts':_0x10c597});}else{logger[_0xf0cc('0x29')](_0xf0cc('0x90'),_0xf0cc('0x8d'),0x194,'entity\x20not\x20found');_0x8e32c6[_0xf0cc('0x1b')](0x194);}})['catch'](handleError(_0x8e32c6,null));};