Built motion from commit (unavailable).|2.5.13
[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 _0xb299=['reject','save','update','then','destroy','error','name','index','map','rawAttributes','fieldName','type','model','query','keys','filters','$or','$gte','$lt','$lte','$ne','$eq','$not','$between','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$any','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','offset','order','sort','where','pick','filter','merge','options','CmHopper','includeAll','include','rows','catch','show','params','find','create','body','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','membername','user','deletedat','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','getPreview','preview','dialOrderByScheduledAt','sequelize','transaction','format','direction','prev','isEmpty','hopperIds','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','Contact','CmCompany','Company','CmList','List','Queue','dialActive','getOpenContacts','getVoiceQueues','outbound','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','set','Content-Range','apply'];(function(_0x2cf1f1,_0x1e3486){var _0x4067ed=function(_0x636b29){while(--_0x636b29){_0x2cf1f1['push'](_0x2cf1f1['shift']());}};_0x4067ed(++_0x1e3486);}(_0xb299,0x19b));var _0x9b29=function(_0x14ace1,_0x1106af){_0x14ace1=_0x14ace1-0x0;var _0x3c4c7a=_0xb299[_0x14ace1];return _0x3c4c7a;};'use strict';var pdf=require(_0x9b29('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x9b29('0x1'));var zipdir=require(_0x9b29('0x2'));var jsonpatch=require(_0x9b29('0x3'));var rp=require(_0x9b29('0x4'));var moment=require(_0x9b29('0x5'));var BPromise=require(_0x9b29('0x6'));var Mustache=require(_0x9b29('0x7'));var util=require('util');var path=require(_0x9b29('0x8'));var sox=require(_0x9b29('0x9'));var csv=require(_0x9b29('0xa'));var ejs=require(_0x9b29('0xb'));var fs=require('fs');var _=require(_0x9b29('0xc'));var squel=require(_0x9b29('0xd'));var crypto=require(_0x9b29('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x9b29('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x9b29('0x10'));var Redis=require(_0x9b29('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x9b29('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9b29('0x13'));var logger=require(_0x9b29('0x14'))(_0x9b29('0x15'));var utils=require('../../config/utils');var config=require(_0x9b29('0x16'));var licenseUtil=require(_0x9b29('0x17'));var db=require(_0x9b29('0x18'))['db'];function respondWithStatusCode(_0x36939a,_0x35da05){_0x35da05=_0x35da05||0xcc;return function(_0x353308){if(_0x353308){return _0x36939a[_0x9b29('0x19')](_0x35da05);}return _0x36939a[_0x9b29('0x1a')](_0x35da05)[_0x9b29('0x1b')]();};}function respondWithResult(_0x15d7d3,_0x370f86){_0x370f86=_0x370f86||0xc8;return function(_0x292a5f){if(_0x292a5f){return _0x15d7d3[_0x9b29('0x1a')](_0x370f86)[_0x9b29('0x1c')](_0x292a5f);}};}function respondWithFilteredResult(_0x7f35a9,_0x2e5976){return function(_0x4773c3){if(_0x4773c3){var _0x45b857=_0x4773c3[_0x9b29('0x1d')],_0x31d9a1=_0x2e5976['offset'],_0x1e76d9=_0x2e5976['offset']+_0x2e5976['limit'],_0x28dc39;if(_0x1e76d9>=_0x45b857){_0x1e76d9=_0x45b857;_0x28dc39=0xc8;}else{_0x28dc39=0xce;}_0x7f35a9[_0x9b29('0x1a')](_0x28dc39);return _0x7f35a9[_0x9b29('0x1e')](_0x9b29('0x1f'),_0x31d9a1+'-'+_0x1e76d9+'/'+_0x45b857)[_0x9b29('0x1c')](_0x4773c3);}return null;};}function patchUpdates(_0x151b34){return function(_0x13ca36){try{jsonpatch[_0x9b29('0x20')](_0x13ca36,_0x151b34,!![]);}catch(_0x3bb73e){return BPromise[_0x9b29('0x21')](_0x3bb73e);}return _0x13ca36[_0x9b29('0x22')]();};}function saveUpdates(_0x4981d8,_0x598d3f){return function(_0xdebf3e){if(_0xdebf3e){return _0xdebf3e[_0x9b29('0x23')](_0x4981d8)[_0x9b29('0x24')](function(_0x140e3c){return _0x140e3c;});}return null;};}function removeEntity(_0x403317,_0x389f27){return function(_0x90a182){if(_0x90a182){return _0x90a182[_0x9b29('0x25')]()[_0x9b29('0x24')](function(){_0x403317[_0x9b29('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d6743,_0x1861a4){return function(_0xeebf6c){if(!_0xeebf6c){_0x1d6743['sendStatus'](0x194);}return _0xeebf6c;};}function handleError(_0xc6860c,_0x4c1341){_0x4c1341=_0x4c1341||0x1f4;return function(_0x981030){logger[_0x9b29('0x26')](_0x981030['stack']);if(_0x981030['name']){delete _0x981030[_0x9b29('0x27')];}_0xc6860c[_0x9b29('0x1a')](_0x4c1341)['send'](_0x981030);};}exports[_0x9b29('0x28')]=function(_0x1dd1ee,_0x4a1983){var _0x4113de={},_0xcf3c56={},_0x257c48={'count':0x0,'rows':[]};var _0x29810d=_[_0x9b29('0x29')](db['CmHopper'][_0x9b29('0x2a')],function(_0x3cee24){return{'name':_0x3cee24[_0x9b29('0x2b')],'type':_0x3cee24[_0x9b29('0x2c')]['key']};});_0xcf3c56[_0x9b29('0x2d')]=_[_0x9b29('0x29')](_0x29810d,_0x9b29('0x27'));_0xcf3c56[_0x9b29('0x2e')]=_[_0x9b29('0x2f')](_0x1dd1ee[_0x9b29('0x2e')]);_0xcf3c56[_0x9b29('0x30')]=_['intersection'](_0xcf3c56[_0x9b29('0x2d')],_0xcf3c56[_0x9b29('0x2e')]);_0xcf3c56['filters']=_['concat'](_0xcf3c56['filters'],['$and',_0x9b29('0x31'),'$gt',_0x9b29('0x32'),_0x9b29('0x33'),_0x9b29('0x34'),_0x9b29('0x35'),_0x9b29('0x36'),_0x9b29('0x37'),_0x9b29('0x38'),'$notBetween','$in',_0x9b29('0x39'),_0x9b29('0x3a'),_0x9b29('0x3b'),_0x9b29('0x3c'),_0x9b29('0x3d'),'$like',_0x9b29('0x3e'),'$contains','$contained',_0x9b29('0x3f')]);_0x4113de[_0x9b29('0x40')]=_[_0x9b29('0x41')](_0xcf3c56[_0x9b29('0x2d')],qs[_0x9b29('0x42')](_0x1dd1ee[_0x9b29('0x2e')][_0x9b29('0x42')]));_0x4113de[_0x9b29('0x40')]=_0x4113de['attributes'][_0x9b29('0x43')]?_0x4113de[_0x9b29('0x40')]:_0xcf3c56[_0x9b29('0x2d')];if(!_0x1dd1ee[_0x9b29('0x2e')][_0x9b29('0x44')](_0x9b29('0x45'))){_0x4113de[_0x9b29('0x46')]=qs[_0x9b29('0x46')](_0x1dd1ee[_0x9b29('0x2e')][_0x9b29('0x46')]);_0x4113de[_0x9b29('0x47')]=qs[_0x9b29('0x47')](_0x1dd1ee[_0x9b29('0x2e')]['offset']);}_0x4113de[_0x9b29('0x48')]=qs[_0x9b29('0x49')](_0x1dd1ee[_0x9b29('0x2e')]['sort']);_0x4113de[_0x9b29('0x4a')]=qs[_0x9b29('0x30')](_[_0x9b29('0x4b')](_0x1dd1ee['query'],_0xcf3c56[_0x9b29('0x30')]),_0x29810d);if(_0x1dd1ee['query'][_0x9b29('0x4c')]){_0x4113de[_0x9b29('0x4a')]=_['merge'](_0x4113de['where'],{'$or':_[_0x9b29('0x29')](_0x29810d,function(_0x593c04){if(_0x593c04[_0x9b29('0x2c')]!=='VIRTUAL'){var _0xe468b7={};_0xe468b7[_0x593c04[_0x9b29('0x27')]]={'$like':'%'+_0x1dd1ee['query'][_0x9b29('0x4c')]+'%'};return _0xe468b7;}})});}_0x4113de=_[_0x9b29('0x4d')]({},_0x4113de,_0x1dd1ee[_0x9b29('0x4e')]);var _0x2d6be6={'where':_0x4113de['where']};return db[_0x9b29('0x4f')][_0x9b29('0x1d')](_0x2d6be6)[_0x9b29('0x24')](function(_0x3d9c9d){_0x257c48['count']=_0x3d9c9d;if(_0x1dd1ee['query'][_0x9b29('0x50')]){_0x4113de[_0x9b29('0x51')]=[{'all':!![]}];}return db[_0x9b29('0x4f')]['findAll'](_0x4113de);})[_0x9b29('0x24')](function(_0x3be8ef){_0x257c48[_0x9b29('0x52')]=_0x3be8ef;return _0x257c48;})['then'](respondWithFilteredResult(_0x4a1983,_0x4113de))[_0x9b29('0x53')](handleError(_0x4a1983,null));};exports[_0x9b29('0x54')]=function(_0x3c792a,_0x3dff41){var _0x424453={'raw':!![],'where':{'id':_0x3c792a[_0x9b29('0x55')]['id']}},_0x5d8c31={};_0x5d8c31[_0x9b29('0x2d')]=_[_0x9b29('0x2f')](db['CmHopper'][_0x9b29('0x2a')]);_0x5d8c31[_0x9b29('0x2e')]=_[_0x9b29('0x2f')](_0x3c792a['query']);_0x5d8c31[_0x9b29('0x30')]=_[_0x9b29('0x41')](_0x5d8c31[_0x9b29('0x2d')],_0x5d8c31['query']);_0x424453['attributes']=_['intersection'](_0x5d8c31[_0x9b29('0x2d')],qs[_0x9b29('0x42')](_0x3c792a[_0x9b29('0x2e')][_0x9b29('0x42')]));_0x424453[_0x9b29('0x40')]=_0x424453['attributes']['length']?_0x424453[_0x9b29('0x40')]:_0x5d8c31[_0x9b29('0x2d')];if(_0x3c792a[_0x9b29('0x2e')]['includeAll']){_0x424453[_0x9b29('0x51')]=[{'all':!![]}];}_0x424453=_['merge']({},_0x424453,_0x3c792a['options']);return db[_0x9b29('0x4f')][_0x9b29('0x56')](_0x424453)[_0x9b29('0x24')](handleEntityNotFound(_0x3dff41,null))[_0x9b29('0x24')](respondWithResult(_0x3dff41,null))[_0x9b29('0x53')](handleError(_0x3dff41,null));};exports['create']=function(_0x5d47c3,_0x49d312){return db['CmHopper'][_0x9b29('0x57')](_0x5d47c3[_0x9b29('0x58')],{})[_0x9b29('0x24')](respondWithResult(_0x49d312,0xc9))[_0x9b29('0x53')](handleError(_0x49d312,null));};exports[_0x9b29('0x23')]=function(_0x14eb27,_0x4ede51){if(_0x14eb27[_0x9b29('0x58')]['id']){delete _0x14eb27[_0x9b29('0x58')]['id'];}return db[_0x9b29('0x4f')]['find']({'where':{'id':_0x14eb27[_0x9b29('0x55')]['id']}})[_0x9b29('0x24')](handleEntityNotFound(_0x4ede51,null))[_0x9b29('0x24')](saveUpdates(_0x14eb27[_0x9b29('0x58')],null))[_0x9b29('0x24')](respondWithResult(_0x4ede51,null))[_0x9b29('0x53')](handleError(_0x4ede51,null));};exports[_0x9b29('0x59')]=function(_0x19f94d,_0x31bc00){return db['CmHopper'][_0x9b29('0x59')]()[_0x9b29('0x24')](respondWithResult(_0x31bc00,null))[_0x9b29('0x53')](handleError(_0x31bc00,null));};exports[_0x9b29('0x25')]=function(_0xfe2b83,_0x2220dc){var _0x1e3e5f;return db[_0x9b29('0x4f')][_0x9b29('0x56')]({'where':{'id':_0xfe2b83[_0x9b29('0x55')]['id']}})[_0x9b29('0x24')](handleEntityNotFound(_0x2220dc,null))[_0x9b29('0x24')](function(_0x21d516){if(_0x21d516){return _0x21d516['destroy']()['then'](function(_0x2e25af){return _0x2e25af;});}})[_0x9b29('0x24')](function(_0x518d20){_0x1e3e5f=_0x518d20;if(_0x518d20){if(_0x518d20[_0x9b29('0x5a')]||_0x518d20[_0x9b29('0x5b')]){return db[_0x518d20[_0x9b29('0x5a')]?_0x9b29('0x5c'):_0x9b29('0x5d')][_0x9b29('0x56')]({'where':{'id':_0x518d20[_0x9b29('0x5a')]?_0x518d20[_0x9b29('0x5a')]:_0x518d20['CampaignId']},'attributes':['id','name'],'raw':!![]});}}})[_0x9b29('0x24')](function(_0x3a6515){var _0x3c9e63={};if(_0x3a6515){_[_0x9b29('0x4d')](_0x3c9e63,_['omit'](_0x1e3e5f[_0x9b29('0x5e')],[_0x9b29('0x5f'),_0x9b29('0x60'),'id']));_0x3c9e63[_0x9b29('0x61')]=0x15;_0x3c9e63[_0x9b29('0x62')]=_0x9b29('0x63');_0x3c9e63[_0x9b29('0x64')]=_0x3a6515[_0x9b29('0x27')];_0x3c9e63[_0x9b29('0x65')]=_0xfe2b83[_0x9b29('0x66')][_0x9b29('0x27')];_0x3c9e63['UserId']=_0xfe2b83[_0x9b29('0x66')]['id'];_0x3c9e63['deleted']=!![];_0x3c9e63[_0x9b29('0x67')]=moment()['format'](_0x9b29('0x68'));_0x3c9e63[_0x9b29('0x69')]=_0x1e3e5f[_0x9b29('0x6a')];_0x3c9e63[_0x9b29('0x6b')]=_0x1e3e5f[_0x9b29('0x5a')]?_0x9b29('0x6c'):_0x9b29('0x6d');return db[_0x9b29('0x6e')]['find']({'where':{'id':_0x3c9e63[_0x9b29('0x6f')]},'attributes':[_0x9b29('0x70'),_0x9b29('0x71')]})[_0x9b29('0x24')](function(_0x5a68b5){if(!_[_0x9b29('0x72')](_0x2220dc)&&!_[_0x9b29('0x72')](_0x5a68b5[_0x9b29('0x70')])){_0x3c9e63[_0x9b29('0x73')]=_0x5a68b5[_0x9b29('0x70')];if(!_[_0x9b29('0x72')](_0x5a68b5[_0x9b29('0x71')])){_0x3c9e63[_0x9b29('0x73')]+='\x20'+_0x5a68b5[_0x9b29('0x71')];}}})[_0x9b29('0x74')](function(){return db['CmHopperFinal'][_0x9b29('0x57')](_0x3c9e63);});}})[_0x9b29('0x24')](function(){return _0x2220dc['status'](0xcc)[_0x9b29('0x1b')]();})['catch'](handleError(_0x2220dc,null));};exports[_0x9b29('0x75')]=function(_0x19d36c,_0xcb9a7f,_0x395c22){var _0x3df3c9=[];return db[_0x9b29('0x6e')][_0x9b29('0x59')]()[_0x9b29('0x24')](function(_0x4a1750){_0x3df3c9=_[_0x9b29('0x2f')](_0x4a1750);return _0x19d36c[_0x9b29('0x66')]['getVoiceQueues']({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x9b29('0x76')},'attributes':['id',_0x9b29('0x77')],'raw':!![]});})[_0x9b29('0x24')](function(_0x55567a){if(_0x55567a&&_0x55567a['length']){return db[_0x9b29('0x78')][_0x9b29('0x79')](function(_0x2ab8ec){var _0x18eb23={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x9b29('0x7a')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x9b29('0x29')](_0x55567a,'id')},'$or':[{'UserId':null},{'UserId':_0x19d36c['user']['id']}]};var _0x48aa19=[];if(_0x19d36c[_0x9b29('0x58')]['direction']&&_0x19d36c[_0x9b29('0x58')][_0x9b29('0x7b')]===_0x9b29('0x7c')){if(!_[_0x9b29('0x7d')](_0x19d36c[_0x9b29('0x58')][_0x9b29('0x7e')])){_0x18eb23['id']={'$in':_0x19d36c[_0x9b29('0x58')][_0x9b29('0x7e')]};}_0x48aa19=[['priority',_0x9b29('0x7f')],[_0x9b29('0x80'),_0x55567a[0x0]['dialOrderByScheduledAt']===_0x9b29('0x7f')?_0x9b29('0x81'):_0x9b29('0x7f')],db[_0x9b29('0x78')][_0x9b29('0x82')](_0x9b29('0x83')),['id',_0x9b29('0x81')]];}else{if(!_[_0x9b29('0x7d')](_0x19d36c[_0x9b29('0x58')][_0x9b29('0x7e')])){_0x18eb23['id']={'$notIn':_0x19d36c[_0x9b29('0x58')][_0x9b29('0x7e')]};}_0x48aa19=[['priority','DESC'],[_0x9b29('0x80'),_0x55567a[0x0]['dialOrderByScheduledAt']],db[_0x9b29('0x78')]['literal'](_0x9b29('0x84')),['id','ASC']];}return db[_0x9b29('0x4f')][_0x9b29('0x85')]({'attributes':['id',_0x9b29('0x86')],'where':_0x18eb23,'order':_0x48aa19,'transaction':_0x2ab8ec,'lock':_0x2ab8ec[_0x9b29('0x87')]['UPDATE'],'include':[{'model':db[_0x9b29('0x6e')],'as':_0x9b29('0x88'),'attributes':_0x3df3c9,'include':[{'model':db[_0x9b29('0x89')],'as':_0x9b29('0x8a'),'attributes':['id',_0x9b29('0x27')]}]},{'model':db[_0x9b29('0x8b')],'as':_0x9b29('0x8c'),'attributes':['id',_0x9b29('0x27')]},{'model':db[_0x9b29('0x5c')],'as':_0x9b29('0x8d'),'attributes':['id','name',_0x9b29('0x8e')]}]})['then'](function(_0x2ad3e0){if(_0x2ad3e0){return _0x2ad3e0['update']({'UserId':_0x19d36c['user']['id']},{'transaction':_0x2ab8ec});}});});}})[_0x9b29('0x24')](handleEntityNotFound(_0xcb9a7f,null))[_0x9b29('0x24')](respondWithResult(_0xcb9a7f,null))[_0x9b29('0x53')](handleError(_0xcb9a7f,null));};exports[_0x9b29('0x8f')]=function(_0x4cf1e7,_0x1e1cb1,_0x43cdf2){return _0x4cf1e7[_0x9b29('0x66')][_0x9b29('0x90')]({'where':{'type':_0x9b29('0x91'),'dialActive':!![],'dialMethod':_0x9b29('0x76')},'attributes':['id'],'raw':!![]})['then'](function(_0x15fe4a){if(_0x15fe4a&&_0x15fe4a[_0x9b29('0x43')]){return db[_0x9b29('0x4f')][_0x9b29('0x1d')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x9b29('0x68'))},'VoiceQueueId':{'$in':_[_0x9b29('0x29')](_0x15fe4a,'id')},'$or':[{'UserId':null},{'UserId':_0x4cf1e7['user']['id']}]}});}return 0x0;})['then'](function(_0x9b56bc){if(!_[_0x9b29('0x72')](_0x9b56bc)&&_[_0x9b29('0x92')](_0x9b56bc)){return _0x1e1cb1[_0x9b29('0x1a')](0xc8)[_0x9b29('0x1c')]({'contacts':_0x9b56bc});}else{logger['error'](_0x9b29('0x93'),_0x9b29('0x8f'),0x194,'entity\x20not\x20found');_0x1e1cb1['sendStatus'](0x194);}})[_0x9b29('0x53')](handleError(_0x1e1cb1,null));};