1515cc1614389560e55b51b927fd6139ca2e4672
[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 _0xc584=['transaction','direction','prev','isEmpty','hopperIds','ASC','scheduledAt','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','priority','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','CmList','List','getOpenContacts','getVoiceQueues','preview','isNumber','entity\x20not\x20found','eml-format','rimraf','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','count','offset','limit','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','index','map','CmHopper','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','$and','$gt','$lt','$lte','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$contains','$contained','$any','fields','attributes','length','nolimit','order','sort','pick','merge','where','VIRTUAL','filter','options','findAll','catch','show','includeAll','include','find','create','body','describe','destroy','CampaignId','VoiceQueueId','VoiceQueue','Campaign','omit','createdAt','state','statedesc','deleted','campaign','membername','user','UserId','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','phone','campaigntype','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','outbound','dialOrderByScheduledAt','sequelize'];(function(_0x10e715,_0x53aa21){var _0x78268b=function(_0x5206aa){while(--_0x5206aa){_0x10e715['push'](_0x10e715['shift']());}};_0x78268b(++_0x53aa21);}(_0xc584,0xa8));var _0x4c58=function(_0xf7c208,_0x5cbc84){_0xf7c208=_0xf7c208-0x0;var _0x16992d=_0xc584[_0xf7c208];return _0x16992d;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4c58('0x0'));var rimraf=require(_0x4c58('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x4c58('0x2'));var moment=require('moment');var BPromise=require(_0x4c58('0x3'));var Mustache=require(_0x4c58('0x4'));var util=require(_0x4c58('0x5'));var path=require('path');var sox=require(_0x4c58('0x6'));var csv=require(_0x4c58('0x7'));var ejs=require(_0x4c58('0x8'));var fs=require('fs');var _=require(_0x4c58('0x9'));var squel=require(_0x4c58('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4c58('0x7'));var querystring=require(_0x4c58('0xb'));var Papa=require(_0x4c58('0xc'));var Redis=require(_0x4c58('0xd'));var authService=require(_0x4c58('0xe'));var qs=require(_0x4c58('0xf'));var as=require(_0x4c58('0x10'));var hardwareService=require(_0x4c58('0x11'));var logger=require(_0x4c58('0x12'))(_0x4c58('0x13'));var utils=require(_0x4c58('0x14'));var config=require(_0x4c58('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x28f052,_0x4c17de){_0x4c17de=_0x4c17de||0xcc;return function(_0x821dba){if(_0x821dba){return _0x28f052[_0x4c58('0x16')](_0x4c17de);}return _0x28f052[_0x4c58('0x17')](_0x4c17de)[_0x4c58('0x18')]();};}function respondWithResult(_0x308372,_0x442bf9){_0x442bf9=_0x442bf9||0xc8;return function(_0x5a9e76){if(_0x5a9e76){return _0x308372[_0x4c58('0x17')](_0x442bf9)['json'](_0x5a9e76);}};}function respondWithFilteredResult(_0x4fa114,_0x5990c3){return function(_0x1831e4){if(_0x1831e4){var _0x14af92=_0x1831e4[_0x4c58('0x19')],_0x38bbcc=_0x5990c3[_0x4c58('0x1a')],_0x2fbd2e=_0x5990c3[_0x4c58('0x1a')]+_0x5990c3[_0x4c58('0x1b')],_0x49916c;if(_0x2fbd2e>=_0x14af92){_0x2fbd2e=_0x14af92;_0x49916c=0xc8;}else{_0x49916c=0xce;}_0x4fa114[_0x4c58('0x17')](_0x49916c);return _0x4fa114['set'](_0x4c58('0x1c'),_0x38bbcc+'-'+_0x2fbd2e+'/'+_0x14af92)[_0x4c58('0x1d')](_0x1831e4);}return null;};}function patchUpdates(_0x5c8026){return function(_0x26631e){try{jsonpatch[_0x4c58('0x1e')](_0x26631e,_0x5c8026,!![]);}catch(_0x1a0062){return BPromise[_0x4c58('0x1f')](_0x1a0062);}return _0x26631e[_0x4c58('0x20')]();};}function saveUpdates(_0x46876f,_0x5793d2){return function(_0x40171e){if(_0x40171e){return _0x40171e[_0x4c58('0x21')](_0x46876f)[_0x4c58('0x22')](function(_0xd8ffa4){return _0xd8ffa4;});}return null;};}function removeEntity(_0xdd2d81,_0x4f189f){return function(_0x101d23){if(_0x101d23){return _0x101d23['destroy']()[_0x4c58('0x22')](function(){_0xdd2d81[_0x4c58('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3062fb,_0x386c98){return function(_0x369fc4){if(!_0x369fc4){_0x3062fb['sendStatus'](0x194);}return _0x369fc4;};}function handleError(_0x159bf8,_0x229f85){_0x229f85=_0x229f85||0x1f4;return function(_0x3f7de6){logger[_0x4c58('0x23')](_0x3f7de6[_0x4c58('0x24')]);if(_0x3f7de6['name']){delete _0x3f7de6[_0x4c58('0x25')];}_0x159bf8[_0x4c58('0x17')](_0x229f85)[_0x4c58('0x26')](_0x3f7de6);};}exports[_0x4c58('0x27')]=function(_0x317409,_0x15efd1){var _0x38b2de={},_0x36de9c={},_0x5b5b4e={'count':0x0,'rows':[]};var _0x33a731=_[_0x4c58('0x28')](db[_0x4c58('0x29')][_0x4c58('0x2a')],function(_0x395ac6){return{'name':_0x395ac6[_0x4c58('0x2b')],'type':_0x395ac6[_0x4c58('0x2c')][_0x4c58('0x2d')]};});_0x36de9c[_0x4c58('0x2e')]=_[_0x4c58('0x28')](_0x33a731,_0x4c58('0x25'));_0x36de9c[_0x4c58('0x2f')]=_[_0x4c58('0x30')](_0x317409[_0x4c58('0x2f')]);_0x36de9c[_0x4c58('0x31')]=_[_0x4c58('0x32')](_0x36de9c[_0x4c58('0x2e')],_0x36de9c[_0x4c58('0x2f')]);_0x36de9c['filters']=_['concat'](_0x36de9c['filters'],[_0x4c58('0x33'),'$or',_0x4c58('0x34'),'$gte',_0x4c58('0x35'),_0x4c58('0x36'),_0x4c58('0x37'),'$eq',_0x4c58('0x38'),_0x4c58('0x39'),_0x4c58('0x3a'),_0x4c58('0x3b'),_0x4c58('0x3c'),_0x4c58('0x3d'),_0x4c58('0x3e'),_0x4c58('0x3f'),'$notILike','$like','$overlap',_0x4c58('0x40'),_0x4c58('0x41'),_0x4c58('0x42')]);_0x38b2de['attributes']=_[_0x4c58('0x32')](_0x36de9c[_0x4c58('0x2e')],qs[_0x4c58('0x43')](_0x317409[_0x4c58('0x2f')]['fields']));_0x38b2de[_0x4c58('0x44')]=_0x38b2de[_0x4c58('0x44')][_0x4c58('0x45')]?_0x38b2de[_0x4c58('0x44')]:_0x36de9c[_0x4c58('0x2e')];if(!_0x317409[_0x4c58('0x2f')]['hasOwnProperty'](_0x4c58('0x46'))){_0x38b2de['limit']=qs['limit'](_0x317409[_0x4c58('0x2f')]['limit']);_0x38b2de[_0x4c58('0x1a')]=qs[_0x4c58('0x1a')](_0x317409[_0x4c58('0x2f')][_0x4c58('0x1a')]);}_0x38b2de[_0x4c58('0x47')]=qs['sort'](_0x317409[_0x4c58('0x2f')][_0x4c58('0x48')]);_0x38b2de['where']=qs['filters'](_[_0x4c58('0x49')](_0x317409[_0x4c58('0x2f')],_0x36de9c[_0x4c58('0x31')]),_0x33a731);if(_0x317409['query']['filter']){_0x38b2de['where']=_[_0x4c58('0x4a')](_0x38b2de[_0x4c58('0x4b')],{'$or':_[_0x4c58('0x28')](_0x33a731,function(_0x56fe5c){if(_0x56fe5c[_0x4c58('0x2c')]!==_0x4c58('0x4c')){var _0x3b74b4={};_0x3b74b4[_0x56fe5c[_0x4c58('0x25')]]={'$like':'%'+_0x317409[_0x4c58('0x2f')][_0x4c58('0x4d')]+'%'};return _0x3b74b4;}})});}_0x38b2de=_[_0x4c58('0x4a')]({},_0x38b2de,_0x317409[_0x4c58('0x4e')]);var _0x3cd733={'where':_0x38b2de[_0x4c58('0x4b')]};return db[_0x4c58('0x29')][_0x4c58('0x19')](_0x3cd733)[_0x4c58('0x22')](function(_0x41ae0b){_0x5b5b4e[_0x4c58('0x19')]=_0x41ae0b;if(_0x317409[_0x4c58('0x2f')]['includeAll']){_0x38b2de['include']=[{'all':!![]}];}return db['CmHopper'][_0x4c58('0x4f')](_0x38b2de);})['then'](function(_0x4bf5cf){_0x5b5b4e['rows']=_0x4bf5cf;return _0x5b5b4e;})[_0x4c58('0x22')](respondWithFilteredResult(_0x15efd1,_0x38b2de))[_0x4c58('0x50')](handleError(_0x15efd1,null));};exports[_0x4c58('0x51')]=function(_0x1caa96,_0xdff11c){var _0x524067={'raw':!![],'where':{'id':_0x1caa96['params']['id']}},_0x2a6bb8={};_0x2a6bb8['model']=_[_0x4c58('0x30')](db['CmHopper'][_0x4c58('0x2a')]);_0x2a6bb8[_0x4c58('0x2f')]=_[_0x4c58('0x30')](_0x1caa96['query']);_0x2a6bb8['filters']=_['intersection'](_0x2a6bb8[_0x4c58('0x2e')],_0x2a6bb8['query']);_0x524067['attributes']=_[_0x4c58('0x32')](_0x2a6bb8['model'],qs[_0x4c58('0x43')](_0x1caa96['query'][_0x4c58('0x43')]));_0x524067['attributes']=_0x524067[_0x4c58('0x44')]['length']?_0x524067[_0x4c58('0x44')]:_0x2a6bb8[_0x4c58('0x2e')];if(_0x1caa96['query'][_0x4c58('0x52')]){_0x524067[_0x4c58('0x53')]=[{'all':!![]}];}_0x524067=_['merge']({},_0x524067,_0x1caa96[_0x4c58('0x4e')]);return db[_0x4c58('0x29')][_0x4c58('0x54')](_0x524067)[_0x4c58('0x22')](handleEntityNotFound(_0xdff11c,null))[_0x4c58('0x22')](respondWithResult(_0xdff11c,null))[_0x4c58('0x50')](handleError(_0xdff11c,null));};exports['create']=function(_0x3c4cb7,_0x38f5c9){return db[_0x4c58('0x29')][_0x4c58('0x55')](_0x3c4cb7[_0x4c58('0x56')],{})['then'](respondWithResult(_0x38f5c9,0xc9))[_0x4c58('0x50')](handleError(_0x38f5c9,null));};exports[_0x4c58('0x21')]=function(_0x246b93,_0x5533dc){if(_0x246b93['body']['id']){delete _0x246b93[_0x4c58('0x56')]['id'];}return db[_0x4c58('0x29')][_0x4c58('0x54')]({'where':{'id':_0x246b93['params']['id']}})[_0x4c58('0x22')](handleEntityNotFound(_0x5533dc,null))[_0x4c58('0x22')](saveUpdates(_0x246b93['body'],null))['then'](respondWithResult(_0x5533dc,null))['catch'](handleError(_0x5533dc,null));};exports[_0x4c58('0x57')]=function(_0x43cfe0,_0xd55cba){return db[_0x4c58('0x29')][_0x4c58('0x57')]()[_0x4c58('0x22')](respondWithResult(_0xd55cba,null))[_0x4c58('0x50')](handleError(_0xd55cba,null));};exports[_0x4c58('0x58')]=function(_0x480d98,_0x1ad6ba){var _0x1eb0ef;return db[_0x4c58('0x29')][_0x4c58('0x54')]({'where':{'id':_0x480d98['params']['id']}})['then'](handleEntityNotFound(_0x1ad6ba,null))[_0x4c58('0x22')](function(_0x225391){if(_0x225391){return _0x225391['destroy']()[_0x4c58('0x22')](function(_0xdd76c1){return _0xdd76c1;});}})['then'](function(_0x2224a3){_0x1eb0ef=_0x2224a3;if(_0x2224a3){if(_0x2224a3['VoiceQueueId']||_0x2224a3[_0x4c58('0x59')]){return db[_0x2224a3[_0x4c58('0x5a')]?_0x4c58('0x5b'):_0x4c58('0x5c')][_0x4c58('0x54')]({'where':{'id':_0x2224a3[_0x4c58('0x5a')]?_0x2224a3[_0x4c58('0x5a')]:_0x2224a3[_0x4c58('0x59')]},'attributes':['id','name'],'raw':!![]});}}})['then'](function(_0x56ac40){var _0x545568={};if(_0x56ac40){_[_0x4c58('0x4a')](_0x545568,_[_0x4c58('0x5d')](_0x1eb0ef['dataValues'],[_0x4c58('0x5e'),'updatedAt','id']));_0x545568[_0x4c58('0x5f')]=0x15;_0x545568[_0x4c58('0x60')]=_0x4c58('0x61');_0x545568[_0x4c58('0x62')]=_0x56ac40['name'];_0x545568[_0x4c58('0x63')]=_0x480d98[_0x4c58('0x64')][_0x4c58('0x25')];_0x545568[_0x4c58('0x65')]=_0x480d98[_0x4c58('0x64')]['id'];_0x545568[_0x4c58('0x61')]=!![];_0x545568[_0x4c58('0x66')]=moment()[_0x4c58('0x67')](_0x4c58('0x68'));_0x545568['calleridnum']=_0x1eb0ef[_0x4c58('0x69')];_0x545568[_0x4c58('0x6a')]=_0x1eb0ef[_0x4c58('0x5a')]?'queue':_0x4c58('0x6b');return db[_0x4c58('0x6c')][_0x4c58('0x54')]({'where':{'id':_0x545568[_0x4c58('0x6d')]},'attributes':[_0x4c58('0x6e'),_0x4c58('0x6f')]})[_0x4c58('0x22')](function(_0xe509e2){if(!_[_0x4c58('0x70')](_0x1ad6ba)&&!_[_0x4c58('0x70')](_0xe509e2[_0x4c58('0x6e')])){_0x545568[_0x4c58('0x71')]=_0xe509e2[_0x4c58('0x6e')];if(!_['isNil'](_0xe509e2[_0x4c58('0x6f')])){_0x545568[_0x4c58('0x71')]+='\x20'+_0xe509e2[_0x4c58('0x6f')];}}})[_0x4c58('0x72')](function(){return db[_0x4c58('0x73')][_0x4c58('0x55')](_0x545568);});}})[_0x4c58('0x22')](function(){return _0x1ad6ba['status'](0xcc)[_0x4c58('0x18')]();})[_0x4c58('0x50')](handleError(_0x1ad6ba,null));};exports[_0x4c58('0x74')]=function(_0x58c796,_0x9d9ff6,_0x46cc47){var _0x17c773=[];return db[_0x4c58('0x6c')][_0x4c58('0x57')]()[_0x4c58('0x22')](function(_0x55cb84){_0x17c773=_['keys'](_0x55cb84);return _0x58c796[_0x4c58('0x64')]['getVoiceQueues']({'where':{'type':_0x4c58('0x75'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x4c58('0x76')],'raw':!![]});})[_0x4c58('0x22')](function(_0x21eab4){if(_0x21eab4&&_0x21eab4[_0x4c58('0x45')]){return db[_0x4c58('0x77')][_0x4c58('0x78')](function(_0x2cf937){var _0x21f92e={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4c58('0x67')](_0x4c58('0x68'))},'VoiceQueueId':{'$in':_[_0x4c58('0x28')](_0x21eab4,'id')},'$or':[{'UserId':null},{'UserId':_0x58c796[_0x4c58('0x64')]['id']}]};var _0x370a50=[];if(_0x58c796[_0x4c58('0x56')][_0x4c58('0x79')]&&_0x58c796['body'][_0x4c58('0x79')]===_0x4c58('0x7a')){if(!_[_0x4c58('0x7b')](_0x58c796[_0x4c58('0x56')][_0x4c58('0x7c')])){_0x21f92e['id']={'$in':_0x58c796[_0x4c58('0x56')]['hopperIds']};}_0x370a50=[['priority',_0x4c58('0x7d')],[_0x4c58('0x7e'),_0x21eab4[0x0][_0x4c58('0x76')]===_0x4c58('0x7d')?'DESC':'ASC'],db[_0x4c58('0x77')]['literal'](_0x4c58('0x7f')),['id',_0x4c58('0x80')]];}else{if(!_['isEmpty'](_0x58c796[_0x4c58('0x56')][_0x4c58('0x7c')])){_0x21f92e['id']={'$notIn':_0x58c796['body']['hopperIds']};}_0x370a50=[[_0x4c58('0x81'),'DESC'],[_0x4c58('0x7e'),_0x21eab4[0x0]['dialOrderByScheduledAt']],db[_0x4c58('0x77')]['literal'](_0x4c58('0x82')),['id',_0x4c58('0x7d')]];}return db[_0x4c58('0x29')][_0x4c58('0x83')]({'attributes':['id',_0x4c58('0x84')],'where':_0x21f92e,'order':_0x370a50,'transaction':_0x2cf937,'lock':_0x2cf937[_0x4c58('0x85')][_0x4c58('0x86')],'include':[{'model':db[_0x4c58('0x6c')],'as':_0x4c58('0x87'),'attributes':_0x17c773,'include':[{'model':db[_0x4c58('0x88')],'as':'Company','attributes':['id','name']}]},{'model':db[_0x4c58('0x89')],'as':_0x4c58('0x8a'),'attributes':['id',_0x4c58('0x25')]},{'model':db[_0x4c58('0x5b')],'as':'Queue','attributes':['id',_0x4c58('0x25'),'dialActive']}]})[_0x4c58('0x22')](function(_0x1837ef){if(_0x1837ef){return _0x1837ef['update']({'UserId':_0x58c796[_0x4c58('0x64')]['id']},{'transaction':_0x2cf937});}});});}})[_0x4c58('0x22')](handleEntityNotFound(_0x9d9ff6,null))[_0x4c58('0x22')](respondWithResult(_0x9d9ff6,null))['catch'](handleError(_0x9d9ff6,null));};exports[_0x4c58('0x8b')]=function(_0x115336,_0xdc2163,_0x47adcd){return _0x115336[_0x4c58('0x64')][_0x4c58('0x8c')]({'where':{'type':_0x4c58('0x75'),'dialActive':!![],'dialMethod':_0x4c58('0x8d')},'attributes':['id'],'raw':!![]})[_0x4c58('0x22')](function(_0x173e0e){if(_0x173e0e&&_0x173e0e[_0x4c58('0x45')]){return db[_0x4c58('0x29')][_0x4c58('0x19')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x4c58('0x68'))},'VoiceQueueId':{'$in':_[_0x4c58('0x28')](_0x173e0e,'id')},'$or':[{'UserId':null},{'UserId':_0x115336[_0x4c58('0x64')]['id']}]}});}return 0x0;})[_0x4c58('0x22')](function(_0x50461a){if(!_[_0x4c58('0x70')](_0x50461a)&&_[_0x4c58('0x8e')](_0x50461a)){return _0xdc2163[_0x4c58('0x17')](0xc8)[_0x4c58('0x1d')]({'contacts':_0x50461a});}else{logger[_0x4c58('0x23')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x4c58('0x8b'),0x194,_0x4c58('0x8f'));_0xdc2163['sendStatus'](0x194);}})[_0x4c58('0x50')](handleError(_0xdc2163,null));};