Built motion from commit (unavailable).|2.5.1
[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 _0x6539=['eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','set','reject','save','update','destroy','then','error','stack','send','index','CmHopper','rawAttributes','fieldName','type','key','model','map','name','keys','query','filters','intersection','$and','$gte','$lt','$lte','$eq','$in','$notIn','$like','$notLike','$iLike','$notILike','$contained','$any','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','rows','catch','show','length','include','find','create','body','describe','VoiceQueueId','VoiceQueue','omit','dataValues','updatedAt','state','statedesc','deleted','campaign','membername','user','UserId','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','ivr','ContactId','firstName','lastName','calleridname','isNil','finally','CmHopperFinal','getPreview','getVoiceQueues','preview','dialOrderByScheduledAt','sequelize','transaction','direction','prev','isEmpty','hopperIds','priority','scheduledAt','ASC','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','UPDATE','CmContact','Contact','CmCompany','Company','CmList','Queue','dialActive','getOpenContacts','outbound','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf'];(function(_0x4683f2,_0x5ac7aa){var _0x1662f3=function(_0xb897a6){while(--_0xb897a6){_0x4683f2['push'](_0x4683f2['shift']());}};_0x1662f3(++_0x5ac7aa);}(_0x6539,0x1b8));var _0x9653=function(_0x5dacfa,_0x382fc8){_0x5dacfa=_0x5dacfa-0x0;var _0xe348e4=_0x6539[_0x5dacfa];return _0xe348e4;};'use strict';var pdf=require(_0x9653('0x0'));var emlformat=require(_0x9653('0x1'));var rimraf=require(_0x9653('0x2'));var zipdir=require(_0x9653('0x3'));var jsonpatch=require(_0x9653('0x4'));var rp=require('request-promise');var moment=require(_0x9653('0x5'));var BPromise=require(_0x9653('0x6'));var Mustache=require(_0x9653('0x7'));var util=require(_0x9653('0x8'));var path=require(_0x9653('0x9'));var sox=require(_0x9653('0xa'));var csv=require(_0x9653('0xb'));var ejs=require(_0x9653('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x9653('0xd'));var crypto=require(_0x9653('0xe'));var jsforce=require(_0x9653('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x9653('0xb'));var querystring=require(_0x9653('0x10'));var Papa=require(_0x9653('0x11'));var Redis=require(_0x9653('0x12'));var authService=require(_0x9653('0x13'));var qs=require(_0x9653('0x14'));var as=require(_0x9653('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9653('0x16'))(_0x9653('0x17'));var utils=require('../../config/utils');var config=require(_0x9653('0x18'));var db=require(_0x9653('0x19'))['db'];function respondWithStatusCode(_0x25f856,_0x759b94){_0x759b94=_0x759b94||0xcc;return function(_0x206bfb){if(_0x206bfb){return _0x25f856[_0x9653('0x1a')](_0x759b94);}return _0x25f856[_0x9653('0x1b')](_0x759b94)[_0x9653('0x1c')]();};}function respondWithResult(_0x3d0d29,_0x2a00e3){_0x2a00e3=_0x2a00e3||0xc8;return function(_0x148042){if(_0x148042){return _0x3d0d29[_0x9653('0x1b')](_0x2a00e3)[_0x9653('0x1d')](_0x148042);}};}function respondWithFilteredResult(_0x1fb590,_0x2a8f91){return function(_0x51845a){if(_0x51845a){var _0x3a73b0=_0x51845a['count'],_0x4affb0=_0x2a8f91['offset'],_0x1d852e=_0x2a8f91[_0x9653('0x1e')]+_0x2a8f91[_0x9653('0x1f')],_0x4bfc7d;if(_0x1d852e>=_0x3a73b0){_0x1d852e=_0x3a73b0;_0x4bfc7d=0xc8;}else{_0x4bfc7d=0xce;}_0x1fb590[_0x9653('0x1b')](_0x4bfc7d);return _0x1fb590[_0x9653('0x20')]('Content-Range',_0x4affb0+'-'+_0x1d852e+'/'+_0x3a73b0)[_0x9653('0x1d')](_0x51845a);}return null;};}function patchUpdates(_0x133b69){return function(_0x4d539f){try{jsonpatch['apply'](_0x4d539f,_0x133b69,!![]);}catch(_0x301f59){return BPromise[_0x9653('0x21')](_0x301f59);}return _0x4d539f[_0x9653('0x22')]();};}function saveUpdates(_0x534e90,_0x465158){return function(_0x15f1f0){if(_0x15f1f0){return _0x15f1f0[_0x9653('0x23')](_0x534e90)['then'](function(_0x442873){return _0x442873;});}return null;};}function removeEntity(_0x41fd3d,_0x52a25a){return function(_0x4916d6){if(_0x4916d6){return _0x4916d6[_0x9653('0x24')]()[_0x9653('0x25')](function(){_0x41fd3d['status'](0xcc)[_0x9653('0x1c')]();});}};}function handleEntityNotFound(_0x19e747,_0x441c6e){return function(_0x1ecfe4){if(!_0x1ecfe4){_0x19e747['sendStatus'](0x194);}return _0x1ecfe4;};}function handleError(_0x24953e,_0x509ac5){_0x509ac5=_0x509ac5||0x1f4;return function(_0xe30749){logger[_0x9653('0x26')](_0xe30749[_0x9653('0x27')]);if(_0xe30749['name']){delete _0xe30749['name'];}_0x24953e[_0x9653('0x1b')](_0x509ac5)[_0x9653('0x28')](_0xe30749);};}exports[_0x9653('0x29')]=function(_0x5f3e0b,_0x40c5ba){var _0x5c533f={},_0x5578dc={},_0x55f750={'count':0x0,'rows':[]};var _0x5b6da2=_['map'](db[_0x9653('0x2a')][_0x9653('0x2b')],function(_0x93f601){return{'name':_0x93f601[_0x9653('0x2c')],'type':_0x93f601[_0x9653('0x2d')][_0x9653('0x2e')]};});_0x5578dc[_0x9653('0x2f')]=_[_0x9653('0x30')](_0x5b6da2,_0x9653('0x31'));_0x5578dc['query']=_[_0x9653('0x32')](_0x5f3e0b[_0x9653('0x33')]);_0x5578dc[_0x9653('0x34')]=_[_0x9653('0x35')](_0x5578dc['model'],_0x5578dc[_0x9653('0x33')]);_0x5578dc[_0x9653('0x34')]=_['concat'](_0x5578dc[_0x9653('0x34')],[_0x9653('0x36'),'$or','$gt',_0x9653('0x37'),_0x9653('0x38'),_0x9653('0x39'),'$ne',_0x9653('0x3a'),'$not','$between','$notBetween',_0x9653('0x3b'),_0x9653('0x3c'),_0x9653('0x3d'),_0x9653('0x3e'),_0x9653('0x3f'),_0x9653('0x40'),_0x9653('0x3d'),'$overlap','$contains',_0x9653('0x41'),_0x9653('0x42')]);_0x5c533f[_0x9653('0x43')]=_[_0x9653('0x35')](_0x5578dc[_0x9653('0x2f')],qs[_0x9653('0x44')](_0x5f3e0b[_0x9653('0x33')][_0x9653('0x44')]));_0x5c533f[_0x9653('0x43')]=_0x5c533f[_0x9653('0x43')]['length']?_0x5c533f[_0x9653('0x43')]:_0x5578dc['model'];if(!_0x5f3e0b[_0x9653('0x33')][_0x9653('0x45')](_0x9653('0x46'))){_0x5c533f['limit']=qs['limit'](_0x5f3e0b['query'][_0x9653('0x1f')]);_0x5c533f[_0x9653('0x1e')]=qs['offset'](_0x5f3e0b[_0x9653('0x33')]['offset']);}_0x5c533f[_0x9653('0x47')]=qs['sort'](_0x5f3e0b[_0x9653('0x33')][_0x9653('0x48')]);_0x5c533f[_0x9653('0x49')]=qs[_0x9653('0x34')](_[_0x9653('0x4a')](_0x5f3e0b[_0x9653('0x33')],_0x5578dc['filters']),_0x5b6da2);if(_0x5f3e0b[_0x9653('0x33')][_0x9653('0x4b')]){_0x5c533f[_0x9653('0x49')]=_[_0x9653('0x4c')](_0x5c533f[_0x9653('0x49')],{'$or':_[_0x9653('0x30')](_0x5b6da2,function(_0x30e472){if(_0x30e472[_0x9653('0x2d')]!==_0x9653('0x4d')){var _0x165d5f={};_0x165d5f[_0x30e472[_0x9653('0x31')]]={'$like':'%'+_0x5f3e0b[_0x9653('0x33')]['filter']+'%'};return _0x165d5f;}})});}_0x5c533f=_['merge']({},_0x5c533f,_0x5f3e0b[_0x9653('0x4e')]);var _0x4d9f78={'where':_0x5c533f[_0x9653('0x49')]};return db['CmHopper'][_0x9653('0x4f')](_0x4d9f78)['then'](function(_0x244781){_0x55f750[_0x9653('0x4f')]=_0x244781;if(_0x5f3e0b[_0x9653('0x33')][_0x9653('0x50')]){_0x5c533f['include']=[{'all':!![]}];}return db[_0x9653('0x2a')]['findAll'](_0x5c533f);})[_0x9653('0x25')](function(_0x30de0d){_0x55f750[_0x9653('0x51')]=_0x30de0d;return _0x55f750;})[_0x9653('0x25')](respondWithFilteredResult(_0x40c5ba,_0x5c533f))[_0x9653('0x52')](handleError(_0x40c5ba,null));};exports[_0x9653('0x53')]=function(_0x1e50e2,_0x46537e){var _0xc60996={'raw':!![],'where':{'id':_0x1e50e2['params']['id']}},_0x165386={};_0x165386['model']=_['keys'](db['CmHopper'][_0x9653('0x2b')]);_0x165386[_0x9653('0x33')]=_[_0x9653('0x32')](_0x1e50e2[_0x9653('0x33')]);_0x165386[_0x9653('0x34')]=_[_0x9653('0x35')](_0x165386[_0x9653('0x2f')],_0x165386['query']);_0xc60996[_0x9653('0x43')]=_['intersection'](_0x165386[_0x9653('0x2f')],qs[_0x9653('0x44')](_0x1e50e2[_0x9653('0x33')][_0x9653('0x44')]));_0xc60996[_0x9653('0x43')]=_0xc60996[_0x9653('0x43')][_0x9653('0x54')]?_0xc60996[_0x9653('0x43')]:_0x165386[_0x9653('0x2f')];if(_0x1e50e2['query'][_0x9653('0x50')]){_0xc60996[_0x9653('0x55')]=[{'all':!![]}];}_0xc60996=_[_0x9653('0x4c')]({},_0xc60996,_0x1e50e2['options']);return db[_0x9653('0x2a')][_0x9653('0x56')](_0xc60996)['then'](handleEntityNotFound(_0x46537e,null))['then'](respondWithResult(_0x46537e,null))[_0x9653('0x52')](handleError(_0x46537e,null));};exports[_0x9653('0x57')]=function(_0x103add,_0x335dbe){return db[_0x9653('0x2a')]['create'](_0x103add['body'],{})[_0x9653('0x25')](respondWithResult(_0x335dbe,0xc9))[_0x9653('0x52')](handleError(_0x335dbe,null));};exports[_0x9653('0x23')]=function(_0x2649dd,_0x44e2d9){if(_0x2649dd[_0x9653('0x58')]['id']){delete _0x2649dd['body']['id'];}return db[_0x9653('0x2a')][_0x9653('0x56')]({'where':{'id':_0x2649dd['params']['id']}})['then'](handleEntityNotFound(_0x44e2d9,null))[_0x9653('0x25')](saveUpdates(_0x2649dd[_0x9653('0x58')],null))[_0x9653('0x25')](respondWithResult(_0x44e2d9,null))[_0x9653('0x52')](handleError(_0x44e2d9,null));};exports[_0x9653('0x59')]=function(_0x53ca6a,_0x4adeba){return db[_0x9653('0x2a')][_0x9653('0x59')]()['then'](respondWithResult(_0x4adeba,null))[_0x9653('0x52')](handleError(_0x4adeba,null));};exports[_0x9653('0x24')]=function(_0x11189c,_0x913f24){var _0x4fb1d4;return db[_0x9653('0x2a')][_0x9653('0x56')]({'where':{'id':_0x11189c['params']['id']}})[_0x9653('0x25')](handleEntityNotFound(_0x913f24,null))[_0x9653('0x25')](function(_0x372264){if(_0x372264){return _0x372264['destroy']()['then'](function(_0x551936){return _0x551936;});}})[_0x9653('0x25')](function(_0x405629){_0x4fb1d4=_0x405629;if(_0x405629){if(_0x405629[_0x9653('0x5a')]||_0x405629['CampaignId']){return db[_0x405629[_0x9653('0x5a')]?_0x9653('0x5b'):'Campaign']['find']({'where':{'id':_0x405629[_0x9653('0x5a')]?_0x405629[_0x9653('0x5a')]:_0x405629['CampaignId']},'attributes':['id',_0x9653('0x31')],'raw':!![]});}}})[_0x9653('0x25')](function(_0x4eded9){var _0x3614bd={};if(_0x4eded9){_[_0x9653('0x4c')](_0x3614bd,_[_0x9653('0x5c')](_0x4fb1d4[_0x9653('0x5d')],['createdAt',_0x9653('0x5e'),'id']));_0x3614bd[_0x9653('0x5f')]=0x15;_0x3614bd[_0x9653('0x60')]=_0x9653('0x61');_0x3614bd[_0x9653('0x62')]=_0x4eded9['name'];_0x3614bd[_0x9653('0x63')]=_0x11189c[_0x9653('0x64')][_0x9653('0x31')];_0x3614bd[_0x9653('0x65')]=_0x11189c[_0x9653('0x64')]['id'];_0x3614bd[_0x9653('0x61')]=!![];_0x3614bd[_0x9653('0x66')]=moment()[_0x9653('0x67')](_0x9653('0x68'));_0x3614bd[_0x9653('0x69')]=_0x4fb1d4[_0x9653('0x6a')];_0x3614bd[_0x9653('0x6b')]=_0x4fb1d4[_0x9653('0x5a')]?'queue':_0x9653('0x6c');return db['CmContact'][_0x9653('0x56')]({'where':{'id':_0x3614bd[_0x9653('0x6d')]},'attributes':[_0x9653('0x6e'),_0x9653('0x6f')]})[_0x9653('0x25')](function(_0x1b0e0b){if(!_['isNil'](_0x913f24)&&!_['isNil'](_0x1b0e0b['firstName'])){_0x3614bd[_0x9653('0x70')]=_0x1b0e0b[_0x9653('0x6e')];if(!_[_0x9653('0x71')](_0x1b0e0b['lastName'])){_0x3614bd[_0x9653('0x70')]+='\x20'+_0x1b0e0b['lastName'];}}})[_0x9653('0x72')](function(){return db[_0x9653('0x73')][_0x9653('0x57')](_0x3614bd);});}})[_0x9653('0x25')](function(){return _0x913f24[_0x9653('0x1b')](0xcc)[_0x9653('0x1c')]();})[_0x9653('0x52')](handleError(_0x913f24,null));};exports[_0x9653('0x74')]=function(_0x36cfe4,_0x515fad,_0x19bcac){var _0xa66d3b=[];return db['CmContact'][_0x9653('0x59')]()[_0x9653('0x25')](function(_0x8e67a1){_0xa66d3b=_['keys'](_0x8e67a1);return _0x36cfe4[_0x9653('0x64')][_0x9653('0x75')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x9653('0x76')},'attributes':['id',_0x9653('0x77')],'raw':!![]});})['then'](function(_0x461f22){if(_0x461f22&&_0x461f22[_0x9653('0x54')]){return db[_0x9653('0x78')][_0x9653('0x79')](function(_0x393ce6){var _0x3426df={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x9653('0x68'))},'VoiceQueueId':{'$in':_[_0x9653('0x30')](_0x461f22,'id')},'$or':[{'UserId':null},{'UserId':_0x36cfe4[_0x9653('0x64')]['id']}]};var _0x2fd203=[];if(_0x36cfe4['body'][_0x9653('0x7a')]&&_0x36cfe4[_0x9653('0x58')][_0x9653('0x7a')]===_0x9653('0x7b')){if(!_[_0x9653('0x7c')](_0x36cfe4[_0x9653('0x58')]['hopperIds'])){_0x3426df['id']={'$in':_0x36cfe4[_0x9653('0x58')][_0x9653('0x7d')]};}_0x2fd203=[[_0x9653('0x7e'),'ASC'],[_0x9653('0x7f'),_0x461f22[0x0][_0x9653('0x77')]===_0x9653('0x80')?_0x9653('0x81'):_0x9653('0x80')],db[_0x9653('0x78')][_0x9653('0x82')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0x9653('0x81')]];}else{if(!_['isEmpty'](_0x36cfe4[_0x9653('0x58')]['hopperIds'])){_0x3426df['id']={'$notIn':_0x36cfe4['body'][_0x9653('0x7d')]};}_0x2fd203=[[_0x9653('0x7e'),_0x9653('0x81')],[_0x9653('0x7f'),_0x461f22[0x0][_0x9653('0x77')]],db[_0x9653('0x78')][_0x9653('0x82')](_0x9653('0x83')),['id','ASC']];}return db[_0x9653('0x2a')][_0x9653('0x84')]({'attributes':['id',_0x9653('0x85')],'where':_0x3426df,'order':_0x2fd203,'transaction':_0x393ce6,'lock':_0x393ce6['LOCK'][_0x9653('0x86')],'include':[{'model':db[_0x9653('0x87')],'as':_0x9653('0x88'),'attributes':_0xa66d3b,'include':[{'model':db[_0x9653('0x89')],'as':_0x9653('0x8a'),'attributes':['id','name']}]},{'model':db[_0x9653('0x8b')],'as':'List','attributes':['id','name']},{'model':db[_0x9653('0x5b')],'as':_0x9653('0x8c'),'attributes':['id','name',_0x9653('0x8d')]}]})[_0x9653('0x25')](function(_0x240ec5){if(_0x240ec5){return _0x240ec5['update']({'UserId':_0x36cfe4['user']['id']},{'transaction':_0x393ce6});}});});}})['then'](handleEntityNotFound(_0x515fad,null))['then'](respondWithResult(_0x515fad,null))['catch'](handleError(_0x515fad,null));};exports[_0x9653('0x8e')]=function(_0x3cf16c,_0x507261,_0x440cf7){return _0x3cf16c[_0x9653('0x64')][_0x9653('0x75')]({'where':{'type':_0x9653('0x8f'),'dialActive':!![],'dialMethod':_0x9653('0x76')},'attributes':['id'],'raw':!![]})['then'](function(_0x17c9b5){if(_0x17c9b5&&_0x17c9b5[_0x9653('0x54')]){return db[_0x9653('0x2a')][_0x9653('0x4f')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x9653('0x30')](_0x17c9b5,'id')},'$or':[{'UserId':null},{'UserId':_0x3cf16c[_0x9653('0x64')]['id']}]}});}return 0x0;})['then'](function(_0x104516){if(!_[_0x9653('0x71')](_0x104516)&&_[_0x9653('0x90')](_0x104516)){return _0x507261['status'](0xc8)[_0x9653('0x1d')]({'contacts':_0x104516});}else{logger[_0x9653('0x26')](_0x9653('0x91'),'getOpenContacts',0x194,_0x9653('0x92'));_0x507261['sendStatus'](0x194);}})[_0x9653('0x52')](handleError(_0x507261,null));};