Built motion from commit (unavailable).|2.5.4
[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 _0xb86c=['campaign','membername','user','UserId','deletedat','format','calleridnum','queue','ivr','ContactId','firstName','isNil','lastName','calleridname','CmHopperFinal','CmContact','outbound','preview','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','dialOrderByScheduledAt','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','CmList','List','Queue','getVoiceQueues','isNumber','getOpenContacts','entity\x20not\x20found','getTimezones','push','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','desk.js','papaparse','ioredis','../../config/environment','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','error','stack','name','index','map','CmHopper','type','key','query','keys','filters','intersection','model','concat','$and','$gt','$gte','$lt','$lte','$ne','$eq','$notIn','$notLike','$like','$overlap','$contains','$any','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','include','show','params','rawAttributes','includeAll','find','catch','create','body','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','omit','dataValues','state','statedesc','deleted'];(function(_0x35578d,_0x3b97fd){var _0x4a1ce5=function(_0xb6d43d){while(--_0xb6d43d){_0x35578d['push'](_0x35578d['shift']());}};_0x4a1ce5(++_0x3b97fd);}(_0xb86c,0x1e0));var _0xcb86=function(_0xa8883,_0x1f107f){_0xa8883=_0xa8883-0x0;var _0x479426=_0xb86c[_0xa8883];return _0x479426;};'use strict';var pdf=require(_0xcb86('0x0'));var emlformat=require(_0xcb86('0x1'));var rimraf=require(_0xcb86('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcb86('0x3'));var rp=require(_0xcb86('0x4'));var moment=require(_0xcb86('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xcb86('0x6'));var util=require(_0xcb86('0x7'));var path=require(_0xcb86('0x8'));var sox=require(_0xcb86('0x9'));var csv=require(_0xcb86('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xcb86('0xb'));var squel=require(_0xcb86('0xc'));var crypto=require(_0xcb86('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xcb86('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xcb86('0xf'));var Redis=require(_0xcb86('0x10'));var shared=require(_0xcb86('0x11'));var authService=require(_0xcb86('0x12'));var qs=require(_0xcb86('0x13'));var as=require(_0xcb86('0x14'));var hardwareService=require(_0xcb86('0x15'));var logger=require('../../config/logger')(_0xcb86('0x16'));var utils=require(_0xcb86('0x17'));var config=require(_0xcb86('0x11'));var db=require(_0xcb86('0x18'))['db'];function respondWithStatusCode(_0x231d95,_0x399f9f){_0x399f9f=_0x399f9f||0xcc;return function(_0x977b4d){if(_0x977b4d){return _0x231d95[_0xcb86('0x19')](_0x399f9f);}return _0x231d95[_0xcb86('0x1a')](_0x399f9f)[_0xcb86('0x1b')]();};}function respondWithResult(_0x2a8c0a,_0x43bf8d){_0x43bf8d=_0x43bf8d||0xc8;return function(_0x3ffe0a){if(_0x3ffe0a){return _0x2a8c0a['status'](_0x43bf8d)[_0xcb86('0x1c')](_0x3ffe0a);}};}function respondWithFilteredResult(_0x23a3c1,_0x22a5db){return function(_0x3a8e1f){if(_0x3a8e1f){var _0x1830ea=_0x3a8e1f[_0xcb86('0x1d')],_0x4d2531=_0x22a5db[_0xcb86('0x1e')],_0x53b39f=_0x22a5db[_0xcb86('0x1e')]+_0x22a5db[_0xcb86('0x1f')],_0x3287db;if(_0x53b39f>=_0x1830ea){_0x53b39f=_0x1830ea;_0x3287db=0xc8;}else{_0x3287db=0xce;}_0x23a3c1['status'](_0x3287db);return _0x23a3c1[_0xcb86('0x20')](_0xcb86('0x21'),_0x4d2531+'-'+_0x53b39f+'/'+_0x1830ea)[_0xcb86('0x1c')](_0x3a8e1f);}return null;};}function patchUpdates(_0x10cc45){return function(_0x39bdb0){try{jsonpatch[_0xcb86('0x22')](_0x39bdb0,_0x10cc45,!![]);}catch(_0x37f02b){return BPromise[_0xcb86('0x23')](_0x37f02b);}return _0x39bdb0['save']();};}function saveUpdates(_0x1ad8ab,_0x5b2f31){return function(_0x1ec12d){if(_0x1ec12d){return _0x1ec12d[_0xcb86('0x24')](_0x1ad8ab)[_0xcb86('0x25')](function(_0x3854c5){return _0x3854c5;});}return null;};}function removeEntity(_0x42be02,_0x70cbdd){return function(_0x10906d){if(_0x10906d){return _0x10906d['destroy']()[_0xcb86('0x25')](function(){_0x42be02[_0xcb86('0x1a')](0xcc)[_0xcb86('0x1b')]();});}};}function handleEntityNotFound(_0x31f7e2,_0x3a1685){return function(_0x29a988){if(!_0x29a988){_0x31f7e2[_0xcb86('0x19')](0x194);}return _0x29a988;};}function handleError(_0x3ce30e,_0x2e8e65){_0x2e8e65=_0x2e8e65||0x1f4;return function(_0x608bcb){logger[_0xcb86('0x26')](_0x608bcb[_0xcb86('0x27')]);if(_0x608bcb[_0xcb86('0x28')]){delete _0x608bcb[_0xcb86('0x28')];}_0x3ce30e[_0xcb86('0x1a')](_0x2e8e65)['send'](_0x608bcb);};}exports[_0xcb86('0x29')]=function(_0x4a27ae,_0x9e4375){var _0x5237f2={},_0x3ad160={},_0xccad5b={'count':0x0,'rows':[]};var _0x3d4d77=_[_0xcb86('0x2a')](db[_0xcb86('0x2b')]['rawAttributes'],function(_0x20079e){return{'name':_0x20079e['fieldName'],'type':_0x20079e[_0xcb86('0x2c')][_0xcb86('0x2d')]};});_0x3ad160['model']=_[_0xcb86('0x2a')](_0x3d4d77,'name');_0x3ad160[_0xcb86('0x2e')]=_[_0xcb86('0x2f')](_0x4a27ae['query']);_0x3ad160[_0xcb86('0x30')]=_[_0xcb86('0x31')](_0x3ad160[_0xcb86('0x32')],_0x3ad160[_0xcb86('0x2e')]);_0x3ad160[_0xcb86('0x30')]=_[_0xcb86('0x33')](_0x3ad160[_0xcb86('0x30')],[_0xcb86('0x34'),'$or',_0xcb86('0x35'),_0xcb86('0x36'),_0xcb86('0x37'),_0xcb86('0x38'),_0xcb86('0x39'),_0xcb86('0x3a'),'$not','$between','$notBetween','$in',_0xcb86('0x3b'),'$like',_0xcb86('0x3c'),'$iLike','$notILike',_0xcb86('0x3d'),_0xcb86('0x3e'),_0xcb86('0x3f'),'$contained',_0xcb86('0x40')]);_0x5237f2[_0xcb86('0x41')]=_['intersection'](_0x3ad160[_0xcb86('0x32')],qs[_0xcb86('0x42')](_0x4a27ae[_0xcb86('0x2e')][_0xcb86('0x42')]));_0x5237f2[_0xcb86('0x41')]=_0x5237f2['attributes'][_0xcb86('0x43')]?_0x5237f2[_0xcb86('0x41')]:_0x3ad160[_0xcb86('0x32')];if(!_0x4a27ae[_0xcb86('0x2e')][_0xcb86('0x44')](_0xcb86('0x45'))){_0x5237f2['limit']=qs['limit'](_0x4a27ae[_0xcb86('0x2e')]['limit']);_0x5237f2[_0xcb86('0x1e')]=qs[_0xcb86('0x1e')](_0x4a27ae[_0xcb86('0x2e')]['offset']);}_0x5237f2[_0xcb86('0x46')]=qs[_0xcb86('0x47')](_0x4a27ae[_0xcb86('0x2e')][_0xcb86('0x47')]);_0x5237f2[_0xcb86('0x48')]=qs[_0xcb86('0x30')](_[_0xcb86('0x49')](_0x4a27ae[_0xcb86('0x2e')],_0x3ad160[_0xcb86('0x30')]),_0x3d4d77);if(_0x4a27ae[_0xcb86('0x2e')][_0xcb86('0x4a')]){_0x5237f2['where']=_['merge'](_0x5237f2[_0xcb86('0x48')],{'$or':_[_0xcb86('0x2a')](_0x3d4d77,function(_0x41fa0d){if(_0x41fa0d[_0xcb86('0x2c')]!=='VIRTUAL'){var _0x208395={};_0x208395[_0x41fa0d['name']]={'$like':'%'+_0x4a27ae[_0xcb86('0x2e')][_0xcb86('0x4a')]+'%'};return _0x208395;}})});}_0x5237f2=_[_0xcb86('0x4b')]({},_0x5237f2,_0x4a27ae[_0xcb86('0x4c')]);var _0x53aed7={'where':_0x5237f2[_0xcb86('0x48')]};return db[_0xcb86('0x2b')][_0xcb86('0x1d')](_0x53aed7)[_0xcb86('0x25')](function(_0x27cd22){_0xccad5b[_0xcb86('0x1d')]=_0x27cd22;if(_0x4a27ae[_0xcb86('0x2e')]['includeAll']){_0x5237f2[_0xcb86('0x4d')]=[{'all':!![]}];}return db[_0xcb86('0x2b')]['findAll'](_0x5237f2);})[_0xcb86('0x25')](function(_0x4177ab){_0xccad5b['rows']=_0x4177ab;return _0xccad5b;})['then'](respondWithFilteredResult(_0x9e4375,_0x5237f2))['catch'](handleError(_0x9e4375,null));};exports[_0xcb86('0x4e')]=function(_0x19f5d0,_0x5d18e4){var _0x369d85={'raw':!![],'where':{'id':_0x19f5d0[_0xcb86('0x4f')]['id']}},_0x3df27c={};_0x3df27c[_0xcb86('0x32')]=_[_0xcb86('0x2f')](db[_0xcb86('0x2b')][_0xcb86('0x50')]);_0x3df27c[_0xcb86('0x2e')]=_['keys'](_0x19f5d0[_0xcb86('0x2e')]);_0x3df27c[_0xcb86('0x30')]=_[_0xcb86('0x31')](_0x3df27c['model'],_0x3df27c[_0xcb86('0x2e')]);_0x369d85[_0xcb86('0x41')]=_[_0xcb86('0x31')](_0x3df27c['model'],qs['fields'](_0x19f5d0['query'][_0xcb86('0x42')]));_0x369d85['attributes']=_0x369d85[_0xcb86('0x41')][_0xcb86('0x43')]?_0x369d85[_0xcb86('0x41')]:_0x3df27c[_0xcb86('0x32')];if(_0x19f5d0['query'][_0xcb86('0x51')]){_0x369d85['include']=[{'all':!![]}];}_0x369d85=_[_0xcb86('0x4b')]({},_0x369d85,_0x19f5d0[_0xcb86('0x4c')]);return db[_0xcb86('0x2b')][_0xcb86('0x52')](_0x369d85)[_0xcb86('0x25')](handleEntityNotFound(_0x5d18e4,null))[_0xcb86('0x25')](respondWithResult(_0x5d18e4,null))[_0xcb86('0x53')](handleError(_0x5d18e4,null));};exports[_0xcb86('0x54')]=function(_0x4a423d,_0x438de6){return db[_0xcb86('0x2b')][_0xcb86('0x54')](_0x4a423d[_0xcb86('0x55')],{})[_0xcb86('0x25')](respondWithResult(_0x438de6,0xc9))[_0xcb86('0x53')](handleError(_0x438de6,null));};exports[_0xcb86('0x24')]=function(_0x374701,_0x46e6eb){if(_0x374701['body']['id']){delete _0x374701[_0xcb86('0x55')]['id'];}return db['CmHopper'][_0xcb86('0x52')]({'where':{'id':_0x374701[_0xcb86('0x4f')]['id']}})[_0xcb86('0x25')](handleEntityNotFound(_0x46e6eb,null))[_0xcb86('0x25')](saveUpdates(_0x374701[_0xcb86('0x55')],null))[_0xcb86('0x25')](respondWithResult(_0x46e6eb,null))[_0xcb86('0x53')](handleError(_0x46e6eb,null));};exports[_0xcb86('0x56')]=function(_0x1abfed,_0x50f93d){return db[_0xcb86('0x2b')]['describe']()[_0xcb86('0x25')](respondWithResult(_0x50f93d,null))['catch'](handleError(_0x50f93d,null));};exports[_0xcb86('0x57')]=function(_0x4ce963,_0x52b0ab){var _0x3851dc;return db['CmHopper']['find']({'where':{'id':_0x4ce963[_0xcb86('0x4f')]['id']}})[_0xcb86('0x25')](handleEntityNotFound(_0x52b0ab,null))[_0xcb86('0x25')](function(_0x465d99){if(_0x465d99){return _0x465d99[_0xcb86('0x57')]()[_0xcb86('0x25')](function(_0x34b871){return _0x34b871;});}})[_0xcb86('0x25')](function(_0x378a0c){_0x3851dc=_0x378a0c;if(_0x378a0c){if(_0x378a0c[_0xcb86('0x58')]||_0x378a0c[_0xcb86('0x59')]){return db[_0x378a0c[_0xcb86('0x58')]?_0xcb86('0x5a'):'Campaign'][_0xcb86('0x52')]({'where':{'id':_0x378a0c[_0xcb86('0x58')]?_0x378a0c[_0xcb86('0x58')]:_0x378a0c[_0xcb86('0x59')]},'attributes':['id',_0xcb86('0x28')],'raw':!![]});}}})[_0xcb86('0x25')](function(_0x408164){var _0xf9403={};if(_0x408164){_[_0xcb86('0x4b')](_0xf9403,_[_0xcb86('0x5b')](_0x3851dc[_0xcb86('0x5c')],['createdAt','updatedAt','id']));_0xf9403[_0xcb86('0x5d')]=0x15;_0xf9403[_0xcb86('0x5e')]=_0xcb86('0x5f');_0xf9403[_0xcb86('0x60')]=_0x408164[_0xcb86('0x28')];_0xf9403[_0xcb86('0x61')]=_0x4ce963[_0xcb86('0x62')]['name'];_0xf9403[_0xcb86('0x63')]=_0x4ce963[_0xcb86('0x62')]['id'];_0xf9403[_0xcb86('0x5f')]=!![];_0xf9403[_0xcb86('0x64')]=moment()[_0xcb86('0x65')]('YYYY-MM-DD\x20HH:mm:ss');_0xf9403[_0xcb86('0x66')]=_0x3851dc['phone'];_0xf9403['campaigntype']=_0x3851dc[_0xcb86('0x58')]?_0xcb86('0x67'):_0xcb86('0x68');return db['CmContact']['find']({'where':{'id':_0xf9403[_0xcb86('0x69')]},'attributes':[_0xcb86('0x6a'),'lastName']})[_0xcb86('0x25')](function(_0xa18f5c){if(!_[_0xcb86('0x6b')](_0x52b0ab)&&!_[_0xcb86('0x6b')](_0xa18f5c[_0xcb86('0x6a')])){_0xf9403['calleridname']=_0xa18f5c[_0xcb86('0x6a')];if(!_[_0xcb86('0x6b')](_0xa18f5c[_0xcb86('0x6c')])){_0xf9403[_0xcb86('0x6d')]+='\x20'+_0xa18f5c[_0xcb86('0x6c')];}}})['finally'](function(){return db[_0xcb86('0x6e')][_0xcb86('0x54')](_0xf9403);});}})[_0xcb86('0x25')](function(){return _0x52b0ab[_0xcb86('0x1a')](0xcc)[_0xcb86('0x1b')]();})['catch'](handleError(_0x52b0ab,null));};exports['getPreview']=function(_0x596917,_0x5280d0,_0x4bcf4c){var _0x3ac3d7=[];return db[_0xcb86('0x6f')][_0xcb86('0x56')]()['then'](function(_0x43fb30){_0x3ac3d7=_[_0xcb86('0x2f')](_0x43fb30);return _0x596917[_0xcb86('0x62')]['getVoiceQueues']({'where':{'type':_0xcb86('0x70'),'dialActive':!![],'dialMethod':_0xcb86('0x71')},'attributes':['id','dialOrderByScheduledAt'],'raw':!![]});})[_0xcb86('0x25')](function(_0xabb869){if(_0xabb869&&_0xabb869[_0xcb86('0x43')]){return db[_0xcb86('0x72')][_0xcb86('0x73')](function(_0x468ae5){var _0x5f42ca={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xcb86('0x65')](_0xcb86('0x74'))},'VoiceQueueId':{'$in':_[_0xcb86('0x2a')](_0xabb869,'id')},'$or':[{'UserId':null},{'UserId':_0x596917[_0xcb86('0x62')]['id']}]};var _0x38ecea=[];if(_0x596917[_0xcb86('0x55')][_0xcb86('0x75')]&&_0x596917['body'][_0xcb86('0x75')]===_0xcb86('0x76')){if(!_[_0xcb86('0x77')](_0x596917[_0xcb86('0x55')][_0xcb86('0x78')])){_0x5f42ca['id']={'$in':_0x596917['body'][_0xcb86('0x78')]};}_0x38ecea=[[_0xcb86('0x79'),_0xcb86('0x7a')],[_0xcb86('0x7b'),_0xabb869[0x0][_0xcb86('0x7c')]===_0xcb86('0x7a')?'DESC':'ASC'],db[_0xcb86('0x72')][_0xcb86('0x7d')](_0xcb86('0x7e')),['id',_0xcb86('0x7f')]];}else{if(!_[_0xcb86('0x77')](_0x596917[_0xcb86('0x55')][_0xcb86('0x78')])){_0x5f42ca['id']={'$notIn':_0x596917[_0xcb86('0x55')][_0xcb86('0x78')]};}_0x38ecea=[[_0xcb86('0x79'),_0xcb86('0x7f')],['scheduledAt',_0xabb869[0x0][_0xcb86('0x7c')]],db[_0xcb86('0x72')][_0xcb86('0x7d')](_0xcb86('0x80')),['id',_0xcb86('0x7a')]];}return db['CmHopper'][_0xcb86('0x81')]({'attributes':['id',_0xcb86('0x82')],'where':_0x5f42ca,'order':_0x38ecea,'transaction':_0x468ae5,'lock':_0x468ae5[_0xcb86('0x83')][_0xcb86('0x84')],'include':[{'model':db['CmContact'],'as':_0xcb86('0x85'),'attributes':_0x3ac3d7,'include':[{'model':db[_0xcb86('0x86')],'as':'Company','attributes':['id',_0xcb86('0x28')]}]},{'model':db[_0xcb86('0x87')],'as':_0xcb86('0x88'),'attributes':['id','name']},{'model':db['VoiceQueue'],'as':_0xcb86('0x89'),'attributes':['id',_0xcb86('0x28'),'dialActive']}]})['then'](function(_0x4d8bbb){if(_0x4d8bbb){return _0x4d8bbb[_0xcb86('0x24')]({'UserId':_0x596917[_0xcb86('0x62')]['id']},{'transaction':_0x468ae5});}});});}})['then'](handleEntityNotFound(_0x5280d0,null))[_0xcb86('0x25')](respondWithResult(_0x5280d0,null))[_0xcb86('0x53')](handleError(_0x5280d0,null));};exports['getOpenContacts']=function(_0x29ccec,_0x4ec707,_0x8323d1){return _0x29ccec['user'][_0xcb86('0x8a')]({'where':{'type':_0xcb86('0x70'),'dialActive':!![],'dialMethod':_0xcb86('0x71')},'attributes':['id'],'raw':!![]})['then'](function(_0x584881){if(_0x584881&&_0x584881[_0xcb86('0x43')]){return db[_0xcb86('0x2b')][_0xcb86('0x1d')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xcb86('0x65')](_0xcb86('0x74'))},'VoiceQueueId':{'$in':_[_0xcb86('0x2a')](_0x584881,'id')},'$or':[{'UserId':null},{'UserId':_0x29ccec[_0xcb86('0x62')]['id']}]}});}return 0x0;})[_0xcb86('0x25')](function(_0x59fdc3){if(!_[_0xcb86('0x6b')](_0x59fdc3)&&_[_0xcb86('0x8b')](_0x59fdc3)){return _0x4ec707[_0xcb86('0x1a')](0xc8)[_0xcb86('0x1c')]({'contacts':_0x59fdc3});}else{logger[_0xcb86('0x26')]('CmHopper,\x20%s,\x20%s,\x20%s',_0xcb86('0x8c'),0x194,_0xcb86('0x8d'));_0x4ec707['sendStatus'](0x194);}})['catch'](handleError(_0x4ec707,null));};exports[_0xcb86('0x8e')]=function(_0x568dc5,_0x32349f,_0x225777){var _0x5d33ff=shared['timezones'];var _0x154e97=[];_[_0xcb86('0x2a')](_0x5d33ff,function(_0x172177){_0x154e97[_0xcb86('0x8f')]({'id':_0x172177['name'],'name':_0x172177[_0xcb86('0x28')],'utcOffset':_0x172177['utcOffset']});});return _0x32349f['status'](0xc8)[_0xcb86('0x1c')]({'tz':_0x154e97});};exports['getTimezone']=function(_0x4c2cac,_0x32dd3d,_0x2d64a7){var _0x596efc=shared['timezones'];var _0x3e519d={};if(!_[_0xcb86('0x6b')](_0x596efc[_0x4c2cac[_0xcb86('0x55')]['id']]))_0x3e519d=_0x596efc[_0x4c2cac['body']['id']];return _0x32dd3d[_0xcb86('0x1a')](0xc8)[_0xcb86('0x1c')](_0x3e519d);};