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 _0x43c8=['isNil','finally','CmHopperFinal','describe','getVoiceQueues','outbound','preview','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','dialOrderByScheduledAt','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','CmContact','Contact','CmCompany','Company','List','Queue','dialActive','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','update','error','stack','name','index','map','CmHopper','rawAttributes','fieldName','key','model','keys','query','filters','intersection','concat','$and','$or','$gt','$lt','$ne','$eq','$between','$notBetween','$in','$like','$notLike','$notILike','$overlap','$contains','$contained','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','then','count','include','catch','params','includeAll','find','create','body','destroy','VoiceQueueId','CampaignId','VoiceQueue','omit','createdAt','updatedAt','state','statedesc','deleted','campaign','membername','user','UserId','deletedat','format','calleridnum','phone','campaigntype','ivr','ContactId','firstName','lastName'];(function(_0x1e17a9,_0xe85600){var _0x1c1cf7=function(_0x2531bf){while(--_0x2531bf){_0x1e17a9['push'](_0x1e17a9['shift']());}};_0x1c1cf7(++_0xe85600);}(_0x43c8,0xaf));var _0x843c=function(_0x387255,_0x897a7d){_0x387255=_0x387255-0x0;var _0x330d18=_0x43c8[_0x387255];return _0x330d18;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x843c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x843c('0x1'));var jsonpatch=require(_0x843c('0x2'));var rp=require(_0x843c('0x3'));var moment=require(_0x843c('0x4'));var BPromise=require(_0x843c('0x5'));var Mustache=require(_0x843c('0x6'));var util=require(_0x843c('0x7'));var path=require('path');var sox=require(_0x843c('0x8'));var csv=require(_0x843c('0x9'));var ejs=require(_0x843c('0xa'));var fs=require('fs');var _=require(_0x843c('0xb'));var squel=require(_0x843c('0xc'));var crypto=require('crypto');var jsforce=require(_0x843c('0xd'));var deskjs=require(_0x843c('0xe'));var toCsv=require('to-csv');var querystring=require(_0x843c('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x843c('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x843c('0x11'));var hardwareService=require(_0x843c('0x12'));var logger=require(_0x843c('0x13'))(_0x843c('0x14'));var utils=require('../../config/utils');var config=require(_0x843c('0x15'));var licenseUtil=require(_0x843c('0x16'));var db=require(_0x843c('0x17'))['db'];function respondWithStatusCode(_0xe0ae48,_0x231ce1){_0x231ce1=_0x231ce1||0xcc;return function(_0x34e297){if(_0x34e297){return _0xe0ae48[_0x843c('0x18')](_0x231ce1);}return _0xe0ae48[_0x843c('0x19')](_0x231ce1)[_0x843c('0x1a')]();};}function respondWithResult(_0x7092f0,_0x313947){_0x313947=_0x313947||0xc8;return function(_0x36e07f){if(_0x36e07f){return _0x7092f0[_0x843c('0x19')](_0x313947)[_0x843c('0x1b')](_0x36e07f);}};}function respondWithFilteredResult(_0x3c67eb,_0x5577ff){return function(_0x3dc50d){if(_0x3dc50d){var _0x2c013c=_0x3dc50d['count'],_0x1d92cf=_0x5577ff[_0x843c('0x1c')],_0x42558b=_0x5577ff[_0x843c('0x1c')]+_0x5577ff[_0x843c('0x1d')],_0x16e8f6;if(_0x42558b>=_0x2c013c){_0x42558b=_0x2c013c;_0x16e8f6=0xc8;}else{_0x16e8f6=0xce;}_0x3c67eb[_0x843c('0x19')](_0x16e8f6);return _0x3c67eb['set'](_0x843c('0x1e'),_0x1d92cf+'-'+_0x42558b+'/'+_0x2c013c)[_0x843c('0x1b')](_0x3dc50d);}return null;};}function patchUpdates(_0x181508){return function(_0x65b0e5){try{jsonpatch[_0x843c('0x1f')](_0x65b0e5,_0x181508,!![]);}catch(_0x556049){return BPromise[_0x843c('0x20')](_0x556049);}return _0x65b0e5['save']();};}function saveUpdates(_0x505d5c,_0x5eb8ca){return function(_0x3422a3){if(_0x3422a3){return _0x3422a3[_0x843c('0x21')](_0x505d5c)['then'](function(_0x179772){return _0x179772;});}return null;};}function removeEntity(_0x30c897,_0x2d1d43){return function(_0x15513d){if(_0x15513d){return _0x15513d['destroy']()['then'](function(){_0x30c897['status'](0xcc)[_0x843c('0x1a')]();});}};}function handleEntityNotFound(_0x17e6ab,_0x2d90f9){return function(_0x408bf1){if(!_0x408bf1){_0x17e6ab[_0x843c('0x18')](0x194);}return _0x408bf1;};}function handleError(_0x35c3b1,_0x37bc86){_0x37bc86=_0x37bc86||0x1f4;return function(_0x51f75b){logger[_0x843c('0x22')](_0x51f75b[_0x843c('0x23')]);if(_0x51f75b[_0x843c('0x24')]){delete _0x51f75b['name'];}_0x35c3b1[_0x843c('0x19')](_0x37bc86)['send'](_0x51f75b);};}exports[_0x843c('0x25')]=function(_0x1ee7e3,_0x30534b){var _0x4f61af={},_0x28f0ea={},_0x2a3c64={'count':0x0,'rows':[]};var _0x177db5=_[_0x843c('0x26')](db[_0x843c('0x27')][_0x843c('0x28')],function(_0x4e2a13){return{'name':_0x4e2a13[_0x843c('0x29')],'type':_0x4e2a13['type'][_0x843c('0x2a')]};});_0x28f0ea[_0x843c('0x2b')]=_[_0x843c('0x26')](_0x177db5,_0x843c('0x24'));_0x28f0ea['query']=_[_0x843c('0x2c')](_0x1ee7e3[_0x843c('0x2d')]);_0x28f0ea[_0x843c('0x2e')]=_[_0x843c('0x2f')](_0x28f0ea[_0x843c('0x2b')],_0x28f0ea[_0x843c('0x2d')]);_0x28f0ea[_0x843c('0x2e')]=_[_0x843c('0x30')](_0x28f0ea[_0x843c('0x2e')],[_0x843c('0x31'),_0x843c('0x32'),_0x843c('0x33'),'$gte',_0x843c('0x34'),'$lte',_0x843c('0x35'),_0x843c('0x36'),'$not',_0x843c('0x37'),_0x843c('0x38'),_0x843c('0x39'),'$notIn',_0x843c('0x3a'),_0x843c('0x3b'),'$iLike',_0x843c('0x3c'),'$like',_0x843c('0x3d'),_0x843c('0x3e'),_0x843c('0x3f'),'$any']);_0x4f61af[_0x843c('0x40')]=_[_0x843c('0x2f')](_0x28f0ea[_0x843c('0x2b')],qs[_0x843c('0x41')](_0x1ee7e3[_0x843c('0x2d')]['fields']));_0x4f61af[_0x843c('0x40')]=_0x4f61af[_0x843c('0x40')][_0x843c('0x42')]?_0x4f61af[_0x843c('0x40')]:_0x28f0ea[_0x843c('0x2b')];if(!_0x1ee7e3[_0x843c('0x2d')]['hasOwnProperty'](_0x843c('0x43'))){_0x4f61af[_0x843c('0x1d')]=qs[_0x843c('0x1d')](_0x1ee7e3[_0x843c('0x2d')][_0x843c('0x1d')]);_0x4f61af[_0x843c('0x1c')]=qs[_0x843c('0x1c')](_0x1ee7e3['query']['offset']);}_0x4f61af[_0x843c('0x44')]=qs[_0x843c('0x45')](_0x1ee7e3[_0x843c('0x2d')]['sort']);_0x4f61af[_0x843c('0x46')]=qs[_0x843c('0x2e')](_[_0x843c('0x47')](_0x1ee7e3[_0x843c('0x2d')],_0x28f0ea[_0x843c('0x2e')]),_0x177db5);if(_0x1ee7e3['query'][_0x843c('0x48')]){_0x4f61af[_0x843c('0x46')]=_[_0x843c('0x49')](_0x4f61af[_0x843c('0x46')],{'$or':_[_0x843c('0x26')](_0x177db5,function(_0xb76536){if(_0xb76536[_0x843c('0x4a')]!==_0x843c('0x4b')){var _0x370ffa={};_0x370ffa[_0xb76536[_0x843c('0x24')]]={'$like':'%'+_0x1ee7e3[_0x843c('0x2d')][_0x843c('0x48')]+'%'};return _0x370ffa;}})});}_0x4f61af=_[_0x843c('0x49')]({},_0x4f61af,_0x1ee7e3[_0x843c('0x4c')]);var _0x33243a={'where':_0x4f61af['where']};return db['CmHopper']['count'](_0x33243a)[_0x843c('0x4d')](function(_0x5b244c){_0x2a3c64[_0x843c('0x4e')]=_0x5b244c;if(_0x1ee7e3[_0x843c('0x2d')]['includeAll']){_0x4f61af[_0x843c('0x4f')]=[{'all':!![]}];}return db['CmHopper']['findAll'](_0x4f61af);})['then'](function(_0x2e74e9){_0x2a3c64['rows']=_0x2e74e9;return _0x2a3c64;})[_0x843c('0x4d')](respondWithFilteredResult(_0x30534b,_0x4f61af))[_0x843c('0x50')](handleError(_0x30534b,null));};exports['show']=function(_0x4e2e6a,_0x10d611){var _0x1918c8={'raw':!![],'where':{'id':_0x4e2e6a[_0x843c('0x51')]['id']}},_0x2c5800={};_0x2c5800[_0x843c('0x2b')]=_['keys'](db[_0x843c('0x27')]['rawAttributes']);_0x2c5800[_0x843c('0x2d')]=_[_0x843c('0x2c')](_0x4e2e6a[_0x843c('0x2d')]);_0x2c5800[_0x843c('0x2e')]=_[_0x843c('0x2f')](_0x2c5800[_0x843c('0x2b')],_0x2c5800[_0x843c('0x2d')]);_0x1918c8[_0x843c('0x40')]=_[_0x843c('0x2f')](_0x2c5800[_0x843c('0x2b')],qs[_0x843c('0x41')](_0x4e2e6a[_0x843c('0x2d')][_0x843c('0x41')]));_0x1918c8[_0x843c('0x40')]=_0x1918c8[_0x843c('0x40')][_0x843c('0x42')]?_0x1918c8[_0x843c('0x40')]:_0x2c5800['model'];if(_0x4e2e6a[_0x843c('0x2d')][_0x843c('0x52')]){_0x1918c8[_0x843c('0x4f')]=[{'all':!![]}];}_0x1918c8=_[_0x843c('0x49')]({},_0x1918c8,_0x4e2e6a[_0x843c('0x4c')]);return db['CmHopper'][_0x843c('0x53')](_0x1918c8)['then'](handleEntityNotFound(_0x10d611,null))[_0x843c('0x4d')](respondWithResult(_0x10d611,null))['catch'](handleError(_0x10d611,null));};exports[_0x843c('0x54')]=function(_0x3dff05,_0x45239d){return db[_0x843c('0x27')][_0x843c('0x54')](_0x3dff05[_0x843c('0x55')],{})[_0x843c('0x4d')](respondWithResult(_0x45239d,0xc9))[_0x843c('0x50')](handleError(_0x45239d,null));};exports[_0x843c('0x21')]=function(_0x3b290a,_0x5e27be){if(_0x3b290a[_0x843c('0x55')]['id']){delete _0x3b290a[_0x843c('0x55')]['id'];}return db[_0x843c('0x27')][_0x843c('0x53')]({'where':{'id':_0x3b290a[_0x843c('0x51')]['id']}})[_0x843c('0x4d')](handleEntityNotFound(_0x5e27be,null))[_0x843c('0x4d')](saveUpdates(_0x3b290a[_0x843c('0x55')],null))[_0x843c('0x4d')](respondWithResult(_0x5e27be,null))[_0x843c('0x50')](handleError(_0x5e27be,null));};exports['describe']=function(_0x2c4044,_0x110b6b){return db[_0x843c('0x27')]['describe']()[_0x843c('0x4d')](respondWithResult(_0x110b6b,null))[_0x843c('0x50')](handleError(_0x110b6b,null));};exports[_0x843c('0x56')]=function(_0x4eedf9,_0x3d2d2d){var _0x2473cd;return db[_0x843c('0x27')][_0x843c('0x53')]({'where':{'id':_0x4eedf9['params']['id']}})['then'](handleEntityNotFound(_0x3d2d2d,null))[_0x843c('0x4d')](function(_0x124c96){if(_0x124c96){return _0x124c96[_0x843c('0x56')]()['then'](function(_0x124701){return _0x124701;});}})[_0x843c('0x4d')](function(_0x25170d){_0x2473cd=_0x25170d;if(_0x25170d){if(_0x25170d[_0x843c('0x57')]||_0x25170d[_0x843c('0x58')]){return db[_0x25170d['VoiceQueueId']?_0x843c('0x59'):'Campaign'][_0x843c('0x53')]({'where':{'id':_0x25170d[_0x843c('0x57')]?_0x25170d[_0x843c('0x57')]:_0x25170d[_0x843c('0x58')]},'attributes':['id',_0x843c('0x24')],'raw':!![]});}}})['then'](function(_0xc7dec5){var _0x4f93a2={};if(_0xc7dec5){_[_0x843c('0x49')](_0x4f93a2,_[_0x843c('0x5a')](_0x2473cd['dataValues'],[_0x843c('0x5b'),_0x843c('0x5c'),'id']));_0x4f93a2[_0x843c('0x5d')]=0x15;_0x4f93a2[_0x843c('0x5e')]=_0x843c('0x5f');_0x4f93a2[_0x843c('0x60')]=_0xc7dec5[_0x843c('0x24')];_0x4f93a2[_0x843c('0x61')]=_0x4eedf9[_0x843c('0x62')]['name'];_0x4f93a2[_0x843c('0x63')]=_0x4eedf9[_0x843c('0x62')]['id'];_0x4f93a2['deleted']=!![];_0x4f93a2[_0x843c('0x64')]=moment()[_0x843c('0x65')]('YYYY-MM-DD\x20HH:mm:ss');_0x4f93a2[_0x843c('0x66')]=_0x2473cd[_0x843c('0x67')];_0x4f93a2[_0x843c('0x68')]=_0x2473cd['VoiceQueueId']?'queue':_0x843c('0x69');return db['CmContact'][_0x843c('0x53')]({'where':{'id':_0x4f93a2[_0x843c('0x6a')]},'attributes':[_0x843c('0x6b'),_0x843c('0x6c')]})[_0x843c('0x4d')](function(_0x31a4c5){if(!_[_0x843c('0x6d')](_0x3d2d2d)&&!_[_0x843c('0x6d')](_0x31a4c5[_0x843c('0x6b')])){_0x4f93a2['calleridname']=_0x31a4c5[_0x843c('0x6b')];if(!_['isNil'](_0x31a4c5[_0x843c('0x6c')])){_0x4f93a2['calleridname']+='\x20'+_0x31a4c5[_0x843c('0x6c')];}}})[_0x843c('0x6e')](function(){return db[_0x843c('0x6f')][_0x843c('0x54')](_0x4f93a2);});}})['then'](function(){return _0x3d2d2d[_0x843c('0x19')](0xcc)[_0x843c('0x1a')]();})[_0x843c('0x50')](handleError(_0x3d2d2d,null));};exports['getPreview']=function(_0x15b36e,_0x5388cf,_0x249e63){var _0x227971=[];return db['CmContact'][_0x843c('0x70')]()[_0x843c('0x4d')](function(_0x50db50){_0x227971=_[_0x843c('0x2c')](_0x50db50);return _0x15b36e['user'][_0x843c('0x71')]({'where':{'type':_0x843c('0x72'),'dialActive':!![],'dialMethod':_0x843c('0x73')},'attributes':['id','dialOrderByScheduledAt'],'raw':!![]});})[_0x843c('0x4d')](function(_0x54e155){if(_0x54e155&&_0x54e155[_0x843c('0x42')]){return db[_0x843c('0x74')][_0x843c('0x75')](function(_0x152b63){var _0x26fd19={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x843c('0x65')](_0x843c('0x76'))},'VoiceQueueId':{'$in':_[_0x843c('0x26')](_0x54e155,'id')},'$or':[{'UserId':null},{'UserId':_0x15b36e[_0x843c('0x62')]['id']}]};var _0x6779d1=[];if(_0x15b36e[_0x843c('0x55')][_0x843c('0x77')]&&_0x15b36e[_0x843c('0x55')][_0x843c('0x77')]===_0x843c('0x78')){if(!_[_0x843c('0x79')](_0x15b36e[_0x843c('0x55')][_0x843c('0x7a')])){_0x26fd19['id']={'$in':_0x15b36e[_0x843c('0x55')][_0x843c('0x7a')]};}_0x6779d1=[[_0x843c('0x7b'),_0x843c('0x7c')],[_0x843c('0x7d'),_0x54e155[0x0]['dialOrderByScheduledAt']===_0x843c('0x7c')?'DESC':_0x843c('0x7c')],db[_0x843c('0x74')]['literal']('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id','DESC']];}else{if(!_[_0x843c('0x79')](_0x15b36e[_0x843c('0x55')][_0x843c('0x7a')])){_0x26fd19['id']={'$notIn':_0x15b36e['body'][_0x843c('0x7a')]};}_0x6779d1=[[_0x843c('0x7b'),_0x843c('0x7e')],[_0x843c('0x7d'),_0x54e155[0x0][_0x843c('0x7f')]],db['sequelize'][_0x843c('0x80')](_0x843c('0x81')),['id',_0x843c('0x7c')]];}return db[_0x843c('0x27')]['findOne']({'attributes':['id',_0x843c('0x82')],'where':_0x26fd19,'order':_0x6779d1,'transaction':_0x152b63,'lock':_0x152b63['LOCK']['UPDATE'],'include':[{'model':db[_0x843c('0x83')],'as':_0x843c('0x84'),'attributes':_0x227971,'include':[{'model':db[_0x843c('0x85')],'as':_0x843c('0x86'),'attributes':['id','name']}]},{'model':db['CmList'],'as':_0x843c('0x87'),'attributes':['id',_0x843c('0x24')]},{'model':db[_0x843c('0x59')],'as':_0x843c('0x88'),'attributes':['id',_0x843c('0x24'),_0x843c('0x89')]}]})[_0x843c('0x4d')](function(_0x41b975){if(_0x41b975){return _0x41b975[_0x843c('0x21')]({'UserId':_0x15b36e[_0x843c('0x62')]['id']},{'transaction':_0x152b63});}});});}})[_0x843c('0x4d')](handleEntityNotFound(_0x5388cf,null))[_0x843c('0x4d')](respondWithResult(_0x5388cf,null))[_0x843c('0x50')](handleError(_0x5388cf,null));};exports[_0x843c('0x8a')]=function(_0x2d3f3d,_0x319564,_0x159b57){return _0x2d3f3d[_0x843c('0x62')][_0x843c('0x71')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})[_0x843c('0x4d')](function(_0x44a77a){if(_0x44a77a&&_0x44a77a[_0x843c('0x42')]){return db['CmHopper']['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x843c('0x76'))},'VoiceQueueId':{'$in':_[_0x843c('0x26')](_0x44a77a,'id')},'$or':[{'UserId':null},{'UserId':_0x2d3f3d[_0x843c('0x62')]['id']}]}});}return 0x0;})[_0x843c('0x4d')](function(_0x55986f){if(!_['isNil'](_0x55986f)&&_[_0x843c('0x8b')](_0x55986f)){return _0x319564[_0x843c('0x19')](0xc8)[_0x843c('0x1b')]({'contacts':_0x55986f});}else{logger[_0x843c('0x22')](_0x843c('0x8c'),'getOpenContacts',0x194,_0x843c('0x8d'));_0x319564[_0x843c('0x18')](0x194);}})['catch'](handleError(_0x319564,null));};