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 _0x1e48=['DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','LOCK','Contact','CmCompany','CmList','List','Queue','dialActive','CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts','entity\x20not\x20found','getTimezones','timezones','push','utcOffset','getTimezone','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../config/environment','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','then','destroy','error','name','send','map','CmHopper','rawAttributes','fieldName','type','key','model','query','keys','filters','$and','$or','$gt','$gte','$lte','$ne','$eq','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$overlap','$contains','$any','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','count','includeAll','include','findAll','show','params','length','options','find','catch','body','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','createdAt','state','statedesc','deleted','membername','user','UserId','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','CmHopperFinal','getPreview','getVoiceQueues','outbound','preview','sequelize','transaction','direction','prev','hopperIds','priority','scheduledAt','dialOrderByScheduledAt','ASC'];(function(_0x19cfe5,_0x4d1bcf){var _0x15b837=function(_0x2552e4){while(--_0x2552e4){_0x19cfe5['push'](_0x19cfe5['shift']());}};_0x15b837(++_0x4d1bcf);}(_0x1e48,0x139));var _0x81e4=function(_0x2577d9,_0x8f2f28){_0x2577d9=_0x2577d9-0x0;var _0x36fe58=_0x1e48[_0x2577d9];return _0x36fe58;};'use strict';var pdf=require(_0x81e4('0x0'));var emlformat=require(_0x81e4('0x1'));var rimraf=require(_0x81e4('0x2'));var zipdir=require(_0x81e4('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x81e4('0x4'));var moment=require(_0x81e4('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x81e4('0x6'));var path=require('path');var sox=require(_0x81e4('0x7'));var csv=require(_0x81e4('0x8'));var ejs=require(_0x81e4('0x9'));var fs=require('fs');var _=require(_0x81e4('0xa'));var squel=require(_0x81e4('0xb'));var crypto=require('crypto');var jsforce=require(_0x81e4('0xc'));var deskjs=require(_0x81e4('0xd'));var toCsv=require('to-csv');var querystring=require(_0x81e4('0xe'));var Papa=require(_0x81e4('0xf'));var Redis=require(_0x81e4('0x10'));var shared=require(_0x81e4('0x11'));var authService=require(_0x81e4('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x81e4('0x13'));var hardwareService=require(_0x81e4('0x14'));var logger=require(_0x81e4('0x15'))(_0x81e4('0x16'));var utils=require('../../config/utils');var config=require(_0x81e4('0x11'));var db=require(_0x81e4('0x17'))['db'];function respondWithStatusCode(_0x427c30,_0x2534bf){_0x2534bf=_0x2534bf||0xcc;return function(_0x54ae2a){if(_0x54ae2a){return _0x427c30[_0x81e4('0x18')](_0x2534bf);}return _0x427c30[_0x81e4('0x19')](_0x2534bf)[_0x81e4('0x1a')]();};}function respondWithResult(_0x513799,_0xe62da0){_0xe62da0=_0xe62da0||0xc8;return function(_0x12b644){if(_0x12b644){return _0x513799[_0x81e4('0x19')](_0xe62da0)[_0x81e4('0x1b')](_0x12b644);}};}function respondWithFilteredResult(_0x20cede,_0x54aaef){return function(_0x3799f2){if(_0x3799f2){var _0x5ae8a1=_0x3799f2['count'],_0x567c1f=_0x54aaef[_0x81e4('0x1c')],_0x2bbb8f=_0x54aaef[_0x81e4('0x1c')]+_0x54aaef[_0x81e4('0x1d')],_0x27df22;if(_0x2bbb8f>=_0x5ae8a1){_0x2bbb8f=_0x5ae8a1;_0x27df22=0xc8;}else{_0x27df22=0xce;}_0x20cede[_0x81e4('0x19')](_0x27df22);return _0x20cede['set'](_0x81e4('0x1e'),_0x567c1f+'-'+_0x2bbb8f+'/'+_0x5ae8a1)[_0x81e4('0x1b')](_0x3799f2);}return null;};}function patchUpdates(_0x353d2c){return function(_0x599931){try{jsonpatch[_0x81e4('0x1f')](_0x599931,_0x353d2c,!![]);}catch(_0x20edb2){return BPromise[_0x81e4('0x20')](_0x20edb2);}return _0x599931[_0x81e4('0x21')]();};}function saveUpdates(_0x28060c,_0x2f9685){return function(_0xade65){if(_0xade65){return _0xade65[_0x81e4('0x22')](_0x28060c)[_0x81e4('0x23')](function(_0x356e2f){return _0x356e2f;});}return null;};}function removeEntity(_0x2f0446,_0x2f2db9){return function(_0x2e2888){if(_0x2e2888){return _0x2e2888[_0x81e4('0x24')]()[_0x81e4('0x23')](function(){_0x2f0446[_0x81e4('0x19')](0xcc)[_0x81e4('0x1a')]();});}};}function handleEntityNotFound(_0x191670,_0x203a90){return function(_0x15ec26){if(!_0x15ec26){_0x191670[_0x81e4('0x18')](0x194);}return _0x15ec26;};}function handleError(_0x17f23e,_0x3d0522){_0x3d0522=_0x3d0522||0x1f4;return function(_0xb6acd5){logger[_0x81e4('0x25')](_0xb6acd5['stack']);if(_0xb6acd5[_0x81e4('0x26')]){delete _0xb6acd5['name'];}_0x17f23e['status'](_0x3d0522)[_0x81e4('0x27')](_0xb6acd5);};}exports['index']=function(_0x460a8f,_0x5f244d){var _0xc397f2={},_0x4f95d0={},_0x306a7b={'count':0x0,'rows':[]};var _0x576bfd=_[_0x81e4('0x28')](db[_0x81e4('0x29')][_0x81e4('0x2a')],function(_0x538759){return{'name':_0x538759[_0x81e4('0x2b')],'type':_0x538759[_0x81e4('0x2c')][_0x81e4('0x2d')]};});_0x4f95d0[_0x81e4('0x2e')]=_[_0x81e4('0x28')](_0x576bfd,_0x81e4('0x26'));_0x4f95d0[_0x81e4('0x2f')]=_[_0x81e4('0x30')](_0x460a8f[_0x81e4('0x2f')]);_0x4f95d0[_0x81e4('0x31')]=_['intersection'](_0x4f95d0[_0x81e4('0x2e')],_0x4f95d0[_0x81e4('0x2f')]);_0x4f95d0[_0x81e4('0x31')]=_['concat'](_0x4f95d0[_0x81e4('0x31')],[_0x81e4('0x32'),_0x81e4('0x33'),_0x81e4('0x34'),_0x81e4('0x35'),'$lt',_0x81e4('0x36'),_0x81e4('0x37'),_0x81e4('0x38'),'$not',_0x81e4('0x39'),_0x81e4('0x3a'),_0x81e4('0x3b'),_0x81e4('0x3c'),_0x81e4('0x3d'),_0x81e4('0x3e'),_0x81e4('0x3f'),'$notILike',_0x81e4('0x3d'),_0x81e4('0x40'),_0x81e4('0x41'),'$contained',_0x81e4('0x42')]);_0xc397f2[_0x81e4('0x43')]=_[_0x81e4('0x44')](_0x4f95d0[_0x81e4('0x2e')],qs[_0x81e4('0x45')](_0x460a8f[_0x81e4('0x2f')][_0x81e4('0x45')]));_0xc397f2[_0x81e4('0x43')]=_0xc397f2[_0x81e4('0x43')]['length']?_0xc397f2[_0x81e4('0x43')]:_0x4f95d0[_0x81e4('0x2e')];if(!_0x460a8f[_0x81e4('0x2f')][_0x81e4('0x46')](_0x81e4('0x47'))){_0xc397f2[_0x81e4('0x1d')]=qs['limit'](_0x460a8f[_0x81e4('0x2f')][_0x81e4('0x1d')]);_0xc397f2[_0x81e4('0x1c')]=qs[_0x81e4('0x1c')](_0x460a8f[_0x81e4('0x2f')][_0x81e4('0x1c')]);}_0xc397f2[_0x81e4('0x48')]=qs['sort'](_0x460a8f['query'][_0x81e4('0x49')]);_0xc397f2[_0x81e4('0x4a')]=qs['filters'](_[_0x81e4('0x4b')](_0x460a8f[_0x81e4('0x2f')],_0x4f95d0['filters']),_0x576bfd);if(_0x460a8f['query']['filter']){_0xc397f2[_0x81e4('0x4a')]=_[_0x81e4('0x4c')](_0xc397f2['where'],{'$or':_['map'](_0x576bfd,function(_0x996612){if(_0x996612['type']!==_0x81e4('0x4d')){var _0x34b525={};_0x34b525[_0x996612[_0x81e4('0x26')]]={'$like':'%'+_0x460a8f['query'][_0x81e4('0x4e')]+'%'};return _0x34b525;}})});}_0xc397f2=_[_0x81e4('0x4c')]({},_0xc397f2,_0x460a8f['options']);var _0x407cc8={'where':_0xc397f2[_0x81e4('0x4a')]};return db[_0x81e4('0x29')]['count'](_0x407cc8)[_0x81e4('0x23')](function(_0x1ba2e5){_0x306a7b[_0x81e4('0x4f')]=_0x1ba2e5;if(_0x460a8f[_0x81e4('0x2f')][_0x81e4('0x50')]){_0xc397f2[_0x81e4('0x51')]=[{'all':!![]}];}return db[_0x81e4('0x29')][_0x81e4('0x52')](_0xc397f2);})[_0x81e4('0x23')](function(_0x395a1e){_0x306a7b['rows']=_0x395a1e;return _0x306a7b;})['then'](respondWithFilteredResult(_0x5f244d,_0xc397f2))['catch'](handleError(_0x5f244d,null));};exports[_0x81e4('0x53')]=function(_0x2d9b8b,_0x593aad){var _0x1a6776={'raw':!![],'where':{'id':_0x2d9b8b[_0x81e4('0x54')]['id']}},_0xb990ac={};_0xb990ac[_0x81e4('0x2e')]=_[_0x81e4('0x30')](db['CmHopper']['rawAttributes']);_0xb990ac[_0x81e4('0x2f')]=_['keys'](_0x2d9b8b['query']);_0xb990ac[_0x81e4('0x31')]=_[_0x81e4('0x44')](_0xb990ac['model'],_0xb990ac['query']);_0x1a6776[_0x81e4('0x43')]=_['intersection'](_0xb990ac[_0x81e4('0x2e')],qs['fields'](_0x2d9b8b[_0x81e4('0x2f')][_0x81e4('0x45')]));_0x1a6776['attributes']=_0x1a6776[_0x81e4('0x43')][_0x81e4('0x55')]?_0x1a6776[_0x81e4('0x43')]:_0xb990ac[_0x81e4('0x2e')];if(_0x2d9b8b[_0x81e4('0x2f')]['includeAll']){_0x1a6776[_0x81e4('0x51')]=[{'all':!![]}];}_0x1a6776=_[_0x81e4('0x4c')]({},_0x1a6776,_0x2d9b8b[_0x81e4('0x56')]);return db[_0x81e4('0x29')][_0x81e4('0x57')](_0x1a6776)['then'](handleEntityNotFound(_0x593aad,null))[_0x81e4('0x23')](respondWithResult(_0x593aad,null))[_0x81e4('0x58')](handleError(_0x593aad,null));};exports['create']=function(_0x3fcd09,_0x1cba91){return db[_0x81e4('0x29')]['create'](_0x3fcd09['body'],{})[_0x81e4('0x23')](respondWithResult(_0x1cba91,0xc9))['catch'](handleError(_0x1cba91,null));};exports[_0x81e4('0x22')]=function(_0x3f3e45,_0x23a786){if(_0x3f3e45[_0x81e4('0x59')]['id']){delete _0x3f3e45[_0x81e4('0x59')]['id'];}return db[_0x81e4('0x29')][_0x81e4('0x57')]({'where':{'id':_0x3f3e45[_0x81e4('0x54')]['id']}})[_0x81e4('0x23')](handleEntityNotFound(_0x23a786,null))['then'](saveUpdates(_0x3f3e45[_0x81e4('0x59')],null))[_0x81e4('0x23')](respondWithResult(_0x23a786,null))['catch'](handleError(_0x23a786,null));};exports[_0x81e4('0x5a')]=function(_0x561cb3,_0xefd250){return db['CmHopper']['describe']()[_0x81e4('0x23')](respondWithResult(_0xefd250,null))[_0x81e4('0x58')](handleError(_0xefd250,null));};exports[_0x81e4('0x24')]=function(_0x2cbc41,_0x4aa2cf){var _0x4bc8fe;return db['CmHopper'][_0x81e4('0x57')]({'where':{'id':_0x2cbc41[_0x81e4('0x54')]['id']}})[_0x81e4('0x23')](handleEntityNotFound(_0x4aa2cf,null))[_0x81e4('0x23')](function(_0x386a6f){if(_0x386a6f){return _0x386a6f[_0x81e4('0x24')]()[_0x81e4('0x23')](function(_0x147042){return _0x147042;});}})[_0x81e4('0x23')](function(_0x423fd6){_0x4bc8fe=_0x423fd6;if(_0x423fd6){if(_0x423fd6[_0x81e4('0x5b')]||_0x423fd6[_0x81e4('0x5c')]){return db[_0x423fd6['VoiceQueueId']?_0x81e4('0x5d'):_0x81e4('0x5e')]['find']({'where':{'id':_0x423fd6[_0x81e4('0x5b')]?_0x423fd6[_0x81e4('0x5b')]:_0x423fd6[_0x81e4('0x5c')]},'attributes':['id',_0x81e4('0x26')],'raw':!![]});}}})[_0x81e4('0x23')](function(_0x5790d4){var _0x3f47d4={};if(_0x5790d4){_[_0x81e4('0x4c')](_0x3f47d4,_['omit'](_0x4bc8fe['dataValues'],[_0x81e4('0x5f'),'updatedAt','id']));_0x3f47d4[_0x81e4('0x60')]=0x15;_0x3f47d4[_0x81e4('0x61')]=_0x81e4('0x62');_0x3f47d4['campaign']=_0x5790d4[_0x81e4('0x26')];_0x3f47d4[_0x81e4('0x63')]=_0x2cbc41[_0x81e4('0x64')][_0x81e4('0x26')];_0x3f47d4[_0x81e4('0x65')]=_0x2cbc41['user']['id'];_0x3f47d4[_0x81e4('0x62')]=!![];_0x3f47d4['deletedat']=moment()[_0x81e4('0x66')](_0x81e4('0x67'));_0x3f47d4[_0x81e4('0x68')]=_0x4bc8fe[_0x81e4('0x69')];_0x3f47d4[_0x81e4('0x6a')]=_0x4bc8fe[_0x81e4('0x5b')]?'queue':_0x81e4('0x6b');return db[_0x81e4('0x6c')][_0x81e4('0x57')]({'where':{'id':_0x3f47d4[_0x81e4('0x6d')]},'attributes':[_0x81e4('0x6e'),_0x81e4('0x6f')]})[_0x81e4('0x23')](function(_0x161920){if(!_[_0x81e4('0x70')](_0x4aa2cf)&&!_['isNil'](_0x161920[_0x81e4('0x6e')])){_0x3f47d4[_0x81e4('0x71')]=_0x161920[_0x81e4('0x6e')];if(!_[_0x81e4('0x70')](_0x161920['lastName'])){_0x3f47d4[_0x81e4('0x71')]+='\x20'+_0x161920[_0x81e4('0x6f')];}}})['finally'](function(){return db[_0x81e4('0x72')]['create'](_0x3f47d4);});}})[_0x81e4('0x23')](function(){return _0x4aa2cf[_0x81e4('0x19')](0xcc)[_0x81e4('0x1a')]();})[_0x81e4('0x58')](handleError(_0x4aa2cf,null));};exports[_0x81e4('0x73')]=function(_0x49d2f8,_0x3a8e85,_0xdf6f44){var _0x3b7193=[];return db[_0x81e4('0x6c')][_0x81e4('0x5a')]()[_0x81e4('0x23')](function(_0x37d5f7){_0x3b7193=_[_0x81e4('0x30')](_0x37d5f7);return _0x49d2f8[_0x81e4('0x64')][_0x81e4('0x74')]({'where':{'type':_0x81e4('0x75'),'dialActive':!![],'dialMethod':_0x81e4('0x76')},'attributes':['id','dialOrderByScheduledAt'],'raw':!![]});})[_0x81e4('0x23')](function(_0x4e0d30){if(_0x4e0d30&&_0x4e0d30['length']){return db[_0x81e4('0x77')][_0x81e4('0x78')](function(_0x508262){var _0x516a3e={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x81e4('0x66')](_0x81e4('0x67'))},'VoiceQueueId':{'$in':_[_0x81e4('0x28')](_0x4e0d30,'id')},'$or':[{'UserId':null},{'UserId':_0x49d2f8[_0x81e4('0x64')]['id']}]};var _0x121ef3=[];if(_0x49d2f8[_0x81e4('0x59')][_0x81e4('0x79')]&&_0x49d2f8[_0x81e4('0x59')][_0x81e4('0x79')]===_0x81e4('0x7a')){if(!_['isEmpty'](_0x49d2f8[_0x81e4('0x59')]['hopperIds'])){_0x516a3e['id']={'$in':_0x49d2f8[_0x81e4('0x59')][_0x81e4('0x7b')]};}_0x121ef3=[[_0x81e4('0x7c'),'ASC'],[_0x81e4('0x7d'),_0x4e0d30[0x0][_0x81e4('0x7e')]===_0x81e4('0x7f')?_0x81e4('0x80'):'ASC'],db[_0x81e4('0x77')][_0x81e4('0x81')](_0x81e4('0x82')),['id',_0x81e4('0x80')]];}else{if(!_['isEmpty'](_0x49d2f8[_0x81e4('0x59')]['hopperIds'])){_0x516a3e['id']={'$notIn':_0x49d2f8['body'][_0x81e4('0x7b')]};}_0x121ef3=[['priority','DESC'],[_0x81e4('0x7d'),_0x4e0d30[0x0]['dialOrderByScheduledAt']],db[_0x81e4('0x77')]['literal'](_0x81e4('0x83')),['id',_0x81e4('0x7f')]];}return db[_0x81e4('0x29')]['findOne']({'attributes':['id','scheduledat'],'where':_0x516a3e,'order':_0x121ef3,'transaction':_0x508262,'lock':_0x508262[_0x81e4('0x84')]['UPDATE'],'include':[{'model':db[_0x81e4('0x6c')],'as':_0x81e4('0x85'),'attributes':_0x3b7193,'include':[{'model':db[_0x81e4('0x86')],'as':'Company','attributes':['id',_0x81e4('0x26')]}]},{'model':db[_0x81e4('0x87')],'as':_0x81e4('0x88'),'attributes':['id',_0x81e4('0x26')]},{'model':db['VoiceQueue'],'as':_0x81e4('0x89'),'attributes':['id',_0x81e4('0x26'),_0x81e4('0x8a')]}]})[_0x81e4('0x23')](function(_0x38fbd3){if(_0x38fbd3){return _0x38fbd3['update']({'UserId':_0x49d2f8[_0x81e4('0x64')]['id']},{'transaction':_0x508262});}});});}})[_0x81e4('0x23')](handleEntityNotFound(_0x3a8e85,null))[_0x81e4('0x23')](respondWithResult(_0x3a8e85,null))['catch'](handleError(_0x3a8e85,null));};exports['getOpenContacts']=function(_0x968057,_0x342688,_0x4e509f){return _0x968057[_0x81e4('0x64')][_0x81e4('0x74')]({'where':{'type':_0x81e4('0x75'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})['then'](function(_0xd6bf78){if(_0xd6bf78&&_0xd6bf78[_0x81e4('0x55')]){return db[_0x81e4('0x29')][_0x81e4('0x4f')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x81e4('0x66')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x81e4('0x28')](_0xd6bf78,'id')},'$or':[{'UserId':null},{'UserId':_0x968057['user']['id']}]}});}return 0x0;})[_0x81e4('0x23')](function(_0x29033f){if(!_['isNil'](_0x29033f)&&_['isNumber'](_0x29033f)){return _0x342688[_0x81e4('0x19')](0xc8)[_0x81e4('0x1b')]({'contacts':_0x29033f});}else{logger['error'](_0x81e4('0x8b'),_0x81e4('0x8c'),0x194,_0x81e4('0x8d'));_0x342688[_0x81e4('0x18')](0x194);}})[_0x81e4('0x58')](handleError(_0x342688,null));};exports[_0x81e4('0x8e')]=function(_0x4263d3,_0x32c868,_0x19ebcf){var _0x815c97=shared[_0x81e4('0x8f')];var _0x41258d=[];_[_0x81e4('0x28')](_0x815c97,function(_0x8151f9){_0x41258d[_0x81e4('0x90')]({'id':_0x8151f9[_0x81e4('0x26')],'name':_0x8151f9['name'],'utcOffset':_0x8151f9[_0x81e4('0x91')]});});return _0x32c868[_0x81e4('0x19')](0xc8)['json']({'tz':_0x41258d});};exports[_0x81e4('0x92')]=function(_0x2b25ac,_0x853515,_0x43da34){var _0x1db70d=shared[_0x81e4('0x8f')];var _0x2cce6f={};if(!_[_0x81e4('0x70')](_0x1db70d[_0x2b25ac['body']['id']]))_0x2cce6f=_0x1db70d[_0x2b25ac[_0x81e4('0x59')]['id']];return _0x853515['status'](0xc8)[_0x81e4('0x1b')](_0x2cce6f);};