92e4495ee2e60632294b9561a5e1b625d1921471
[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 _0xed1f=['concat','$and','$gt','$gte','$ne','$eq','$not','$between','$notBetween','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contained','$any','attributes','intersection','fields','length','nolimit','limit','sort','where','pick','filter','merge','type','key','VIRTUAL','field','options','count','includeAll','include','findAll','rows','show','params','rawAttributes','find','catch','create','body','describe','destroy','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','membername','user','UserId','deletedat','calleridnum','campaigntype','queue','ivr','ContactId','lastName','isNil','firstName','calleridname','finally','getPreview','CmContact','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','sequelize','transaction','format','YYYY-MM-DD\x20HH:mm:ss','map','direction','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','CmCompany','Company','List','Queue','getOpenContacts','isNumber','json','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','sendStatus','status','offset','set','reject','update','then','end','error','stack','name','index','CmHopper','model','keys','query','filters'];(function(_0x2a9405,_0x342aec){var _0x2ec9a2=function(_0x355c77){while(--_0x355c77){_0x2a9405['push'](_0x2a9405['shift']());}};_0x2ec9a2(++_0x342aec);}(_0xed1f,0x6a));var _0xfed1=function(_0x4c445a,_0x4ee80f){_0x4c445a=_0x4c445a-0x0;var _0x2f611c=_0xed1f[_0x4c445a];return _0x2f611c;};'use strict';var pdf=require(_0xfed1('0x0'));var emlformat=require(_0xfed1('0x1'));var rimraf=require(_0xfed1('0x2'));var zipdir=require(_0xfed1('0x3'));var jsonpatch=require(_0xfed1('0x4'));var rp=require(_0xfed1('0x5'));var moment=require(_0xfed1('0x6'));var BPromise=require(_0xfed1('0x7'));var Mustache=require(_0xfed1('0x8'));var util=require(_0xfed1('0x9'));var path=require(_0xfed1('0xa'));var sox=require(_0xfed1('0xb'));var csv=require(_0xfed1('0xc'));var ejs=require(_0xfed1('0xd'));var fs=require('fs');var _=require(_0xfed1('0xe'));var squel=require(_0xfed1('0xf'));var crypto=require(_0xfed1('0x10'));var jsforce=require(_0xfed1('0x11'));var deskjs=require('desk.js');var toCsv=require(_0xfed1('0xc'));var querystring=require(_0xfed1('0x12'));var Papa=require('papaparse');var Redis=require(_0xfed1('0x13'));var authService=require(_0xfed1('0x14'));var qs=require('../../components/parsers/qs');var hardwareService=require(_0xfed1('0x15'));var logger=require('../../config/logger')(_0xfed1('0x16'));var utils=require(_0xfed1('0x17'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3d1891,_0xe84ba6){_0xe84ba6=_0xe84ba6||0xcc;return function(_0x569a6e){if(_0x569a6e){return _0x3d1891[_0xfed1('0x18')](_0xe84ba6);}return _0x3d1891['status'](_0xe84ba6)['end']();};}function respondWithResult(_0x3f6555,_0x397af9){_0x397af9=_0x397af9||0xc8;return function(_0x532537){if(_0x532537){return _0x3f6555[_0xfed1('0x19')](_0x397af9)['json'](_0x532537);}};}function respondWithFilteredResult(_0x4cd9d1,_0xde25db){return function(_0x39aa0c){if(_0x39aa0c){var _0x1fbb7a=_0x39aa0c['count'],_0x123c46=_0xde25db[_0xfed1('0x1a')],_0x582e67=_0xde25db[_0xfed1('0x1a')]+_0xde25db['limit'],_0x1a00f6;if(_0x582e67>=_0x1fbb7a){_0x582e67=_0x1fbb7a;_0x1a00f6=0xc8;}else{_0x1a00f6=0xce;}_0x4cd9d1[_0xfed1('0x19')](_0x1a00f6);return _0x4cd9d1[_0xfed1('0x1b')]('Content-Range',_0x123c46+'-'+_0x582e67+'/'+_0x1fbb7a)['json'](_0x39aa0c);}return null;};}function patchUpdates(_0x586ea6){return function(_0x1e5afb){try{jsonpatch['apply'](_0x1e5afb,_0x586ea6,!![]);}catch(_0x201f18){return BPromise[_0xfed1('0x1c')](_0x201f18);}return _0x1e5afb['save']();};}function saveUpdates(_0x94cb84,_0x65f14b){return function(_0x59ee9d){if(_0x59ee9d){return _0x59ee9d[_0xfed1('0x1d')](_0x94cb84)[_0xfed1('0x1e')](function(_0xff4842){return _0xff4842;});}return null;};}function removeEntity(_0x92b92d,_0x4bac79){return function(_0x203cec){if(_0x203cec){return _0x203cec['destroy']()[_0xfed1('0x1e')](function(){_0x92b92d[_0xfed1('0x19')](0xcc)[_0xfed1('0x1f')]();});}};}function handleEntityNotFound(_0x532ec2,_0x41d22c){return function(_0x594917){if(!_0x594917){_0x532ec2[_0xfed1('0x18')](0x194);}return _0x594917;};}function handleError(_0x2793b7,_0x1b7b22){_0x1b7b22=_0x1b7b22||0x1f4;return function(_0x365bae){logger[_0xfed1('0x20')](_0x365bae[_0xfed1('0x21')]);if(_0x365bae['name']){delete _0x365bae[_0xfed1('0x22')];}_0x2793b7[_0xfed1('0x19')](_0x1b7b22)['send'](_0x365bae);};}exports[_0xfed1('0x23')]=function(_0x2b9dd2,_0x1b871a){var _0x1d62c5={},_0x3b9122={},_0x1761d1={'count':0x0,'rows':[]};var _0x583953=db[_0xfed1('0x24')]['rawAttributes'];_0x3b9122[_0xfed1('0x25')]=_['keys'](_0x583953);_0x3b9122['query']=_[_0xfed1('0x26')](_0x2b9dd2[_0xfed1('0x27')]);_0x3b9122[_0xfed1('0x28')]=_['intersection'](_0x3b9122[_0xfed1('0x25')],_0x3b9122[_0xfed1('0x27')]);_0x3b9122[_0xfed1('0x28')]=_[_0xfed1('0x29')](_0x3b9122[_0xfed1('0x28')],[_0xfed1('0x2a'),'$or',_0xfed1('0x2b'),_0xfed1('0x2c'),'$lt','$lte',_0xfed1('0x2d'),_0xfed1('0x2e'),_0xfed1('0x2f'),_0xfed1('0x30'),_0xfed1('0x31'),'$in',_0xfed1('0x32'),_0xfed1('0x33'),_0xfed1('0x34'),_0xfed1('0x35'),_0xfed1('0x36'),'$like',_0xfed1('0x37'),'$contains',_0xfed1('0x38'),_0xfed1('0x39')]);_0x1d62c5[_0xfed1('0x3a')]=_[_0xfed1('0x3b')](_0x3b9122[_0xfed1('0x25')],qs[_0xfed1('0x3c')](_0x2b9dd2[_0xfed1('0x27')][_0xfed1('0x3c')]));_0x1d62c5['attributes']=_0x1d62c5[_0xfed1('0x3a')][_0xfed1('0x3d')]?_0x1d62c5[_0xfed1('0x3a')]:_0x3b9122[_0xfed1('0x25')];if(!_0x2b9dd2['query']['hasOwnProperty'](_0xfed1('0x3e'))){_0x1d62c5[_0xfed1('0x3f')]=qs[_0xfed1('0x3f')](_0x2b9dd2[_0xfed1('0x27')][_0xfed1('0x3f')]);_0x1d62c5[_0xfed1('0x1a')]=qs[_0xfed1('0x1a')](_0x2b9dd2[_0xfed1('0x27')]['offset']);}_0x1d62c5['order']=qs[_0xfed1('0x40')](_0x2b9dd2[_0xfed1('0x27')]['sort']);_0x1d62c5[_0xfed1('0x41')]=qs[_0xfed1('0x28')](_[_0xfed1('0x42')](_0x2b9dd2[_0xfed1('0x27')],_0x3b9122[_0xfed1('0x28')]));if(_0x2b9dd2[_0xfed1('0x27')][_0xfed1('0x43')]){_0x1d62c5[_0xfed1('0x41')]=_[_0xfed1('0x44')](_0x1d62c5['where'],{'$or':_['map'](_0x583953,function(_0x5598dc){if(_0x5598dc[_0xfed1('0x45')][_0xfed1('0x46')]!==_0xfed1('0x47')){var _0x496a5d={};_0x496a5d[_0x5598dc[_0xfed1('0x48')]]={'$like':'%'+_0x2b9dd2['query'][_0xfed1('0x43')]+'%'};return _0x496a5d;}})});}_0x1d62c5=_[_0xfed1('0x44')]({},_0x1d62c5,_0x2b9dd2[_0xfed1('0x49')]);var _0x4f042a={'where':_0x1d62c5[_0xfed1('0x41')]};return db[_0xfed1('0x24')][_0xfed1('0x4a')](_0x4f042a)['then'](function(_0x1b53de){_0x1761d1['count']=_0x1b53de;if(_0x2b9dd2[_0xfed1('0x27')][_0xfed1('0x4b')]){_0x1d62c5[_0xfed1('0x4c')]=[{'all':!![]}];}return db[_0xfed1('0x24')][_0xfed1('0x4d')](_0x1d62c5);})[_0xfed1('0x1e')](function(_0x2d4f82){_0x1761d1[_0xfed1('0x4e')]=_0x2d4f82;return _0x1761d1;})[_0xfed1('0x1e')](respondWithFilteredResult(_0x1b871a,_0x1d62c5))['catch'](handleError(_0x1b871a,null));};exports[_0xfed1('0x4f')]=function(_0x41c7d8,_0x41c7c3){var _0x4a86af={'raw':!![],'where':{'id':_0x41c7d8[_0xfed1('0x50')]['id']}},_0x4d7445={};_0x4d7445[_0xfed1('0x25')]=_[_0xfed1('0x26')](db[_0xfed1('0x24')][_0xfed1('0x51')]);_0x4d7445[_0xfed1('0x27')]=_[_0xfed1('0x26')](_0x41c7d8[_0xfed1('0x27')]);_0x4d7445[_0xfed1('0x28')]=_[_0xfed1('0x3b')](_0x4d7445[_0xfed1('0x25')],_0x4d7445[_0xfed1('0x27')]);_0x4a86af['attributes']=_[_0xfed1('0x3b')](_0x4d7445[_0xfed1('0x25')],qs[_0xfed1('0x3c')](_0x41c7d8[_0xfed1('0x27')][_0xfed1('0x3c')]));_0x4a86af[_0xfed1('0x3a')]=_0x4a86af['attributes'][_0xfed1('0x3d')]?_0x4a86af[_0xfed1('0x3a')]:_0x4d7445[_0xfed1('0x25')];if(_0x41c7d8['query'][_0xfed1('0x4b')]){_0x4a86af[_0xfed1('0x4c')]=[{'all':!![]}];}_0x4a86af=_[_0xfed1('0x44')]({},_0x4a86af,_0x41c7d8[_0xfed1('0x49')]);return db['CmHopper'][_0xfed1('0x52')](_0x4a86af)[_0xfed1('0x1e')](handleEntityNotFound(_0x41c7c3,null))[_0xfed1('0x1e')](respondWithResult(_0x41c7c3,null))[_0xfed1('0x53')](handleError(_0x41c7c3,null));};exports[_0xfed1('0x54')]=function(_0x439947,_0x388078){return db[_0xfed1('0x24')][_0xfed1('0x54')](_0x439947[_0xfed1('0x55')],{})[_0xfed1('0x1e')](respondWithResult(_0x388078,0xc9))[_0xfed1('0x53')](handleError(_0x388078,null));};exports[_0xfed1('0x1d')]=function(_0x20c493,_0x33c77a){if(_0x20c493[_0xfed1('0x55')]['id']){delete _0x20c493[_0xfed1('0x55')]['id'];}return db[_0xfed1('0x24')]['find']({'where':{'id':_0x20c493['params']['id']}})[_0xfed1('0x1e')](handleEntityNotFound(_0x33c77a,null))[_0xfed1('0x1e')](saveUpdates(_0x20c493[_0xfed1('0x55')],null))[_0xfed1('0x1e')](respondWithResult(_0x33c77a,null))['catch'](handleError(_0x33c77a,null));};exports[_0xfed1('0x56')]=function(_0x3f1317,_0x55e7d9){return db['CmHopper']['describe']()[_0xfed1('0x1e')](respondWithResult(_0x55e7d9,null))[_0xfed1('0x53')](handleError(_0x55e7d9,null));};exports[_0xfed1('0x57')]=function(_0x1d8ef2,_0x2665c8){var _0x3cb4f;return db[_0xfed1('0x24')][_0xfed1('0x52')]({'where':{'id':_0x1d8ef2[_0xfed1('0x50')]['id']}})[_0xfed1('0x1e')](handleEntityNotFound(_0x2665c8,null))['then'](function(_0x55490a){if(_0x55490a){return _0x55490a[_0xfed1('0x57')]()[_0xfed1('0x1e')](function(_0x3f4db7){return _0x3f4db7;});}})[_0xfed1('0x1e')](function(_0x83b8d0){_0x3cb4f=_0x83b8d0;if(_0x83b8d0){if(_0x83b8d0[_0xfed1('0x58')]||_0x83b8d0[_0xfed1('0x59')]){return db[_0x83b8d0[_0xfed1('0x58')]?_0xfed1('0x5a'):_0xfed1('0x5b')][_0xfed1('0x52')]({'where':{'id':_0x83b8d0[_0xfed1('0x58')]?_0x83b8d0[_0xfed1('0x58')]:_0x83b8d0[_0xfed1('0x59')]},'attributes':['id',_0xfed1('0x22')],'raw':!![]});}}})[_0xfed1('0x1e')](function(_0x1e79f2){var _0x54eb53={};if(_0x1e79f2){_['merge'](_0x54eb53,_[_0xfed1('0x5c')](_0x3cb4f[_0xfed1('0x5d')],[_0xfed1('0x5e'),_0xfed1('0x5f'),'id']));_0x54eb53[_0xfed1('0x60')]=0x15;_0x54eb53[_0xfed1('0x61')]=_0xfed1('0x62');_0x54eb53[_0xfed1('0x63')]=_0x1e79f2[_0xfed1('0x22')];_0x54eb53[_0xfed1('0x64')]=_0x1d8ef2[_0xfed1('0x65')][_0xfed1('0x22')];_0x54eb53[_0xfed1('0x66')]=_0x1d8ef2[_0xfed1('0x65')]['id'];_0x54eb53['deleted']=!![];_0x54eb53[_0xfed1('0x67')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x54eb53[_0xfed1('0x68')]=_0x3cb4f['phone'];_0x54eb53[_0xfed1('0x69')]=_0x3cb4f['VoiceQueueId']?_0xfed1('0x6a'):_0xfed1('0x6b');return db['CmContact'][_0xfed1('0x52')]({'where':{'id':_0x54eb53[_0xfed1('0x6c')]},'attributes':['firstName',_0xfed1('0x6d')]})[_0xfed1('0x1e')](function(_0x1c99c6){if(!_[_0xfed1('0x6e')](_0x2665c8)&&!_['isNil'](_0x1c99c6[_0xfed1('0x6f')])){_0x54eb53[_0xfed1('0x70')]=_0x1c99c6[_0xfed1('0x6f')];if(!_[_0xfed1('0x6e')](_0x1c99c6[_0xfed1('0x6d')])){_0x54eb53[_0xfed1('0x70')]+='\x20'+_0x1c99c6[_0xfed1('0x6d')];}}})[_0xfed1('0x71')](function(){return db['CmHopperFinal'][_0xfed1('0x54')](_0x54eb53);});}})[_0xfed1('0x1e')](function(){return _0x2665c8[_0xfed1('0x19')](0xcc)[_0xfed1('0x1f')]();})[_0xfed1('0x53')](handleError(_0x2665c8,null));};exports[_0xfed1('0x72')]=function(_0x53b7ed,_0x518402,_0x55d280){var _0x33a479=[];return db[_0xfed1('0x73')][_0xfed1('0x56')]()[_0xfed1('0x1e')](function(_0x4aaba6){_0x33a479=_[_0xfed1('0x26')](_0x4aaba6);return _0x53b7ed['user'][_0xfed1('0x74')]({'where':{'type':_0xfed1('0x75'),'dialActive':!![],'dialMethod':_0xfed1('0x76')},'attributes':['id',_0xfed1('0x77')],'raw':!![]});})[_0xfed1('0x1e')](function(_0x59c48b){if(_0x59c48b&&_0x59c48b[_0xfed1('0x3d')]){return db[_0xfed1('0x78')][_0xfed1('0x79')](function(_0x525df1){var _0x40d25d={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xfed1('0x7a')](_0xfed1('0x7b'))},'VoiceQueueId':{'$in':_[_0xfed1('0x7c')](_0x59c48b,'id')},'$or':[{'UserId':null},{'UserId':_0x53b7ed['user']['id']}]};var _0x286e3d=[];if(_0x53b7ed['body'][_0xfed1('0x7d')]&&_0x53b7ed[_0xfed1('0x55')]['direction']==='prev'){if(!_[_0xfed1('0x7e')](_0x53b7ed[_0xfed1('0x55')][_0xfed1('0x7f')])){_0x40d25d['id']={'$in':_0x53b7ed[_0xfed1('0x55')]['hopperIds']};}_0x286e3d=[[_0xfed1('0x80'),_0xfed1('0x81')],[_0xfed1('0x82'),_0x59c48b[0x0][_0xfed1('0x77')]===_0xfed1('0x81')?_0xfed1('0x83'):'ASC'],db[_0xfed1('0x78')][_0xfed1('0x84')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0xfed1('0x83')]];}else{if(!_[_0xfed1('0x7e')](_0x53b7ed[_0xfed1('0x55')][_0xfed1('0x7f')])){_0x40d25d['id']={'$notIn':_0x53b7ed[_0xfed1('0x55')][_0xfed1('0x7f')]};}_0x286e3d=[['priority','DESC'],[_0xfed1('0x82'),_0x59c48b[0x0]['dialOrderByScheduledAt']],db[_0xfed1('0x78')][_0xfed1('0x84')](_0xfed1('0x85')),['id',_0xfed1('0x81')]];}return db[_0xfed1('0x24')][_0xfed1('0x86')]({'attributes':['id',_0xfed1('0x87')],'where':_0x40d25d,'order':_0x286e3d,'transaction':_0x525df1,'lock':_0x525df1[_0xfed1('0x88')][_0xfed1('0x89')],'include':[{'model':db[_0xfed1('0x73')],'as':'Contact','attributes':_0x33a479,'include':[{'model':db[_0xfed1('0x8a')],'as':_0xfed1('0x8b'),'attributes':['id','name']}]},{'model':db['CmList'],'as':_0xfed1('0x8c'),'attributes':['id','name']},{'model':db[_0xfed1('0x5a')],'as':_0xfed1('0x8d'),'attributes':['id',_0xfed1('0x22'),'dialActive']}]})[_0xfed1('0x1e')](function(_0x23fc8b){if(_0x23fc8b){return _0x23fc8b[_0xfed1('0x1d')]({'UserId':_0x53b7ed[_0xfed1('0x65')]['id']},{'transaction':_0x525df1});}});});}})[_0xfed1('0x1e')](handleEntityNotFound(_0x518402,null))['then'](respondWithResult(_0x518402,null))[_0xfed1('0x53')](handleError(_0x518402,null));};exports[_0xfed1('0x8e')]=function(_0x45348d,_0xccf9e,_0xf921fa){return _0x45348d['user'][_0xfed1('0x74')]({'where':{'type':_0xfed1('0x75'),'dialActive':!![],'dialMethod':_0xfed1('0x76')},'attributes':['id'],'raw':!![]})[_0xfed1('0x1e')](function(_0x2dcadd){if(_0x2dcadd&&_0x2dcadd[_0xfed1('0x3d')]){return db[_0xfed1('0x24')][_0xfed1('0x4a')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xfed1('0x7a')](_0xfed1('0x7b'))},'VoiceQueueId':{'$in':_['map'](_0x2dcadd,'id')},'$or':[{'UserId':null},{'UserId':_0x45348d[_0xfed1('0x65')]['id']}]}});}return 0x0;})[_0xfed1('0x1e')](function(_0x248bae){if(!_[_0xfed1('0x6e')](_0x248bae)&&_[_0xfed1('0x8f')](_0x248bae)){return _0xccf9e['status'](0xc8)[_0xfed1('0x90')]({'contacts':_0x248bae});}else{logger[_0xfed1('0x20')](_0xfed1('0x91'),_0xfed1('0x8e'),0x194,_0xfed1('0x92'));_0xccf9e[_0xfed1('0x18')](0x194);}})[_0xfed1('0x53')](handleError(_0xccf9e,null));};