Built motion from commit (unavailable).|2.5.15
[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 _0xd983=['deletedat','format','calleridnum','phone','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','getVoiceQueues','outbound','dialOrderByScheduledAt','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','priority','scheduledAt','ASC','DESC','COALESCE(CmHopper.UserId,\x200)\x20ASC','hopperIds','sequelize','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','LOCK','UPDATE','CmCompany','Company','List','Queue','dialActive','getOpenContacts','preview','error','CmHopper,\x20%s,\x20%s,\x20%s','sendStatus','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','status','end','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','then','stack','name','send','index','CmHopper','rawAttributes','type','model','map','query','filters','intersection','concat','$or','$gt','$gte','$lt','$eq','$between','$notIn','$like','$iLike','$notILike','$overlap','$contains','$contained','$any','attributes','fields','hasOwnProperty','order','sort','pick','where','VIRTUAL','filter','merge','count','includeAll','include','findAll','catch','params','keys','length','options','find','create','body','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','statedesc','deleted','campaign','membername','UserId','user'];(function(_0x2cf788,_0x3fa02){var _0x351c33=function(_0xa5ffe5){while(--_0xa5ffe5){_0x2cf788['push'](_0x2cf788['shift']());}};_0x351c33(++_0x3fa02);}(_0xd983,0x1df));var _0x3d98=function(_0xce723c,_0x28ebc2){_0xce723c=_0xce723c-0x0;var _0x2cd04f=_0xd983[_0xce723c];return _0x2cd04f;};'use strict';var pdf=require(_0x3d98('0x0'));var emlformat=require(_0x3d98('0x1'));var rimraf=require(_0x3d98('0x2'));var zipdir=require(_0x3d98('0x3'));var jsonpatch=require(_0x3d98('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3d98('0x5'));var Mustache=require(_0x3d98('0x6'));var util=require(_0x3d98('0x7'));var path=require(_0x3d98('0x8'));var sox=require(_0x3d98('0x9'));var csv=require(_0x3d98('0xa'));var ejs=require(_0x3d98('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x3d98('0xc'));var crypto=require(_0x3d98('0xd'));var jsforce=require(_0x3d98('0xe'));var deskjs=require(_0x3d98('0xf'));var toCsv=require(_0x3d98('0xa'));var querystring=require(_0x3d98('0x10'));var Papa=require(_0x3d98('0x11'));var Redis=require(_0x3d98('0x12'));var authService=require(_0x3d98('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3d98('0x14'));var logger=require(_0x3d98('0x15'))(_0x3d98('0x16'));var utils=require(_0x3d98('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3d98('0x18'))['db'];function respondWithStatusCode(_0x3188ac,_0x68cfbc){_0x68cfbc=_0x68cfbc||0xcc;return function(_0x435621){if(_0x435621){return _0x3188ac['sendStatus'](_0x68cfbc);}return _0x3188ac[_0x3d98('0x19')](_0x68cfbc)[_0x3d98('0x1a')]();};}function respondWithResult(_0x5545b1,_0x178ca5){_0x178ca5=_0x178ca5||0xc8;return function(_0x566423){if(_0x566423){return _0x5545b1[_0x3d98('0x19')](_0x178ca5)['json'](_0x566423);}};}function respondWithFilteredResult(_0x4f69d4,_0x38fa66){return function(_0xc07e5f){if(_0xc07e5f){var _0x23867a=_0xc07e5f['count'],_0x57b493=_0x38fa66[_0x3d98('0x1b')],_0x1e6408=_0x38fa66[_0x3d98('0x1b')]+_0x38fa66[_0x3d98('0x1c')],_0x372f29;if(_0x1e6408>=_0x23867a){_0x1e6408=_0x23867a;_0x372f29=0xc8;}else{_0x372f29=0xce;}_0x4f69d4[_0x3d98('0x19')](_0x372f29);return _0x4f69d4[_0x3d98('0x1d')](_0x3d98('0x1e'),_0x57b493+'-'+_0x1e6408+'/'+_0x23867a)[_0x3d98('0x1f')](_0xc07e5f);}return null;};}function patchUpdates(_0x33913a){return function(_0x55c620){try{jsonpatch[_0x3d98('0x20')](_0x55c620,_0x33913a,!![]);}catch(_0xe407f2){return BPromise[_0x3d98('0x21')](_0xe407f2);}return _0x55c620[_0x3d98('0x22')]();};}function saveUpdates(_0x5da20a,_0x92f4ad){return function(_0x1a368d){if(_0x1a368d){return _0x1a368d[_0x3d98('0x23')](_0x5da20a)['then'](function(_0x43ae5e){return _0x43ae5e;});}return null;};}function removeEntity(_0x9552fb,_0x54177e){return function(_0x54f448){if(_0x54f448){return _0x54f448[_0x3d98('0x24')]()[_0x3d98('0x25')](function(){_0x9552fb[_0x3d98('0x19')](0xcc)[_0x3d98('0x1a')]();});}};}function handleEntityNotFound(_0x403206,_0x366702){return function(_0x245ffa){if(!_0x245ffa){_0x403206['sendStatus'](0x194);}return _0x245ffa;};}function handleError(_0x50de93,_0x4ea96d){_0x4ea96d=_0x4ea96d||0x1f4;return function(_0x229809){logger['error'](_0x229809[_0x3d98('0x26')]);if(_0x229809[_0x3d98('0x27')]){delete _0x229809[_0x3d98('0x27')];}_0x50de93['status'](_0x4ea96d)[_0x3d98('0x28')](_0x229809);};}exports[_0x3d98('0x29')]=function(_0x2bb81,_0x2dca32){var _0x4409ff={},_0x489a9a={},_0x29c14f={'count':0x0,'rows':[]};var _0x105679=_['map'](db[_0x3d98('0x2a')][_0x3d98('0x2b')],function(_0x1c7a19){return{'name':_0x1c7a19['fieldName'],'type':_0x1c7a19[_0x3d98('0x2c')]['key']};});_0x489a9a[_0x3d98('0x2d')]=_[_0x3d98('0x2e')](_0x105679,_0x3d98('0x27'));_0x489a9a[_0x3d98('0x2f')]=_['keys'](_0x2bb81[_0x3d98('0x2f')]);_0x489a9a[_0x3d98('0x30')]=_[_0x3d98('0x31')](_0x489a9a[_0x3d98('0x2d')],_0x489a9a[_0x3d98('0x2f')]);_0x489a9a[_0x3d98('0x30')]=_[_0x3d98('0x32')](_0x489a9a[_0x3d98('0x30')],['$and',_0x3d98('0x33'),_0x3d98('0x34'),_0x3d98('0x35'),_0x3d98('0x36'),'$lte','$ne',_0x3d98('0x37'),'$not',_0x3d98('0x38'),'$notBetween','$in',_0x3d98('0x39'),_0x3d98('0x3a'),'$notLike',_0x3d98('0x3b'),_0x3d98('0x3c'),_0x3d98('0x3a'),_0x3d98('0x3d'),_0x3d98('0x3e'),_0x3d98('0x3f'),_0x3d98('0x40')]);_0x4409ff[_0x3d98('0x41')]=_[_0x3d98('0x31')](_0x489a9a[_0x3d98('0x2d')],qs['fields'](_0x2bb81[_0x3d98('0x2f')][_0x3d98('0x42')]));_0x4409ff[_0x3d98('0x41')]=_0x4409ff['attributes']['length']?_0x4409ff[_0x3d98('0x41')]:_0x489a9a[_0x3d98('0x2d')];if(!_0x2bb81['query'][_0x3d98('0x43')]('nolimit')){_0x4409ff['limit']=qs[_0x3d98('0x1c')](_0x2bb81[_0x3d98('0x2f')][_0x3d98('0x1c')]);_0x4409ff[_0x3d98('0x1b')]=qs[_0x3d98('0x1b')](_0x2bb81[_0x3d98('0x2f')][_0x3d98('0x1b')]);}_0x4409ff[_0x3d98('0x44')]=qs[_0x3d98('0x45')](_0x2bb81[_0x3d98('0x2f')][_0x3d98('0x45')]);_0x4409ff['where']=qs[_0x3d98('0x30')](_[_0x3d98('0x46')](_0x2bb81[_0x3d98('0x2f')],_0x489a9a[_0x3d98('0x30')]),_0x105679);if(_0x2bb81[_0x3d98('0x2f')]['filter']){_0x4409ff[_0x3d98('0x47')]=_['merge'](_0x4409ff['where'],{'$or':_[_0x3d98('0x2e')](_0x105679,function(_0x3e1950){if(_0x3e1950[_0x3d98('0x2c')]!==_0x3d98('0x48')){var _0x498a8e={};_0x498a8e[_0x3e1950[_0x3d98('0x27')]]={'$like':'%'+_0x2bb81[_0x3d98('0x2f')][_0x3d98('0x49')]+'%'};return _0x498a8e;}})});}_0x4409ff=_[_0x3d98('0x4a')]({},_0x4409ff,_0x2bb81['options']);var _0x5b3817={'where':_0x4409ff[_0x3d98('0x47')]};return db[_0x3d98('0x2a')][_0x3d98('0x4b')](_0x5b3817)[_0x3d98('0x25')](function(_0x4beb19){_0x29c14f[_0x3d98('0x4b')]=_0x4beb19;if(_0x2bb81['query'][_0x3d98('0x4c')]){_0x4409ff[_0x3d98('0x4d')]=[{'all':!![]}];}return db[_0x3d98('0x2a')][_0x3d98('0x4e')](_0x4409ff);})[_0x3d98('0x25')](function(_0x5e4fe6){_0x29c14f['rows']=_0x5e4fe6;return _0x29c14f;})[_0x3d98('0x25')](respondWithFilteredResult(_0x2dca32,_0x4409ff))[_0x3d98('0x4f')](handleError(_0x2dca32,null));};exports['show']=function(_0x2b1c2f,_0x22aee2){var _0x4fc856={'raw':!![],'where':{'id':_0x2b1c2f[_0x3d98('0x50')]['id']}},_0x42de9a={};_0x42de9a[_0x3d98('0x2d')]=_[_0x3d98('0x51')](db[_0x3d98('0x2a')][_0x3d98('0x2b')]);_0x42de9a[_0x3d98('0x2f')]=_[_0x3d98('0x51')](_0x2b1c2f[_0x3d98('0x2f')]);_0x42de9a['filters']=_['intersection'](_0x42de9a[_0x3d98('0x2d')],_0x42de9a[_0x3d98('0x2f')]);_0x4fc856['attributes']=_[_0x3d98('0x31')](_0x42de9a[_0x3d98('0x2d')],qs[_0x3d98('0x42')](_0x2b1c2f[_0x3d98('0x2f')]['fields']));_0x4fc856[_0x3d98('0x41')]=_0x4fc856[_0x3d98('0x41')][_0x3d98('0x52')]?_0x4fc856[_0x3d98('0x41')]:_0x42de9a[_0x3d98('0x2d')];if(_0x2b1c2f[_0x3d98('0x2f')][_0x3d98('0x4c')]){_0x4fc856[_0x3d98('0x4d')]=[{'all':!![]}];}_0x4fc856=_[_0x3d98('0x4a')]({},_0x4fc856,_0x2b1c2f[_0x3d98('0x53')]);return db[_0x3d98('0x2a')][_0x3d98('0x54')](_0x4fc856)['then'](handleEntityNotFound(_0x22aee2,null))[_0x3d98('0x25')](respondWithResult(_0x22aee2,null))[_0x3d98('0x4f')](handleError(_0x22aee2,null));};exports[_0x3d98('0x55')]=function(_0x89b09c,_0x28d37f){return db[_0x3d98('0x2a')]['create'](_0x89b09c['body'],{})['then'](respondWithResult(_0x28d37f,0xc9))[_0x3d98('0x4f')](handleError(_0x28d37f,null));};exports[_0x3d98('0x23')]=function(_0x57f827,_0x365442){if(_0x57f827['body']['id']){delete _0x57f827[_0x3d98('0x56')]['id'];}return db['CmHopper'][_0x3d98('0x54')]({'where':{'id':_0x57f827['params']['id']}})['then'](handleEntityNotFound(_0x365442,null))[_0x3d98('0x25')](saveUpdates(_0x57f827[_0x3d98('0x56')],null))['then'](respondWithResult(_0x365442,null))['catch'](handleError(_0x365442,null));};exports[_0x3d98('0x57')]=function(_0x596835,_0x3cff62){return db[_0x3d98('0x2a')]['describe']()[_0x3d98('0x25')](respondWithResult(_0x3cff62,null))[_0x3d98('0x4f')](handleError(_0x3cff62,null));};exports[_0x3d98('0x24')]=function(_0x18088f,_0x568f0c){var _0x1902d5;return db[_0x3d98('0x2a')][_0x3d98('0x54')]({'where':{'id':_0x18088f[_0x3d98('0x50')]['id']}})[_0x3d98('0x25')](handleEntityNotFound(_0x568f0c,null))['then'](function(_0xc7add4){if(_0xc7add4){return _0xc7add4['destroy']()[_0x3d98('0x25')](function(_0x4fee8e){return _0x4fee8e;});}})['then'](function(_0x1a9b52){_0x1902d5=_0x1a9b52;if(_0x1a9b52){if(_0x1a9b52[_0x3d98('0x58')]||_0x1a9b52[_0x3d98('0x59')]){return db[_0x1a9b52[_0x3d98('0x58')]?_0x3d98('0x5a'):_0x3d98('0x5b')][_0x3d98('0x54')]({'where':{'id':_0x1a9b52[_0x3d98('0x58')]?_0x1a9b52[_0x3d98('0x58')]:_0x1a9b52['CampaignId']},'attributes':['id',_0x3d98('0x27')],'raw':!![]});}}})[_0x3d98('0x25')](function(_0x2edac1){var _0x196e1a={};if(_0x2edac1){_['merge'](_0x196e1a,_[_0x3d98('0x5c')](_0x1902d5[_0x3d98('0x5d')],[_0x3d98('0x5e'),'updatedAt','id']));_0x196e1a['state']=0x15;_0x196e1a[_0x3d98('0x5f')]=_0x3d98('0x60');_0x196e1a[_0x3d98('0x61')]=_0x2edac1['name'];_0x196e1a[_0x3d98('0x62')]=_0x18088f['user'][_0x3d98('0x27')];_0x196e1a[_0x3d98('0x63')]=_0x18088f[_0x3d98('0x64')]['id'];_0x196e1a[_0x3d98('0x60')]=!![];_0x196e1a[_0x3d98('0x65')]=moment()[_0x3d98('0x66')]('YYYY-MM-DD\x20HH:mm:ss');_0x196e1a[_0x3d98('0x67')]=_0x1902d5[_0x3d98('0x68')];_0x196e1a['campaigntype']=_0x1902d5[_0x3d98('0x58')]?_0x3d98('0x69'):_0x3d98('0x6a');return db[_0x3d98('0x6b')][_0x3d98('0x54')]({'where':{'id':_0x196e1a[_0x3d98('0x6c')]},'attributes':[_0x3d98('0x6d'),_0x3d98('0x6e')]})[_0x3d98('0x25')](function(_0x28835f){if(!_[_0x3d98('0x6f')](_0x568f0c)&&!_[_0x3d98('0x6f')](_0x28835f[_0x3d98('0x6d')])){_0x196e1a[_0x3d98('0x70')]=_0x28835f[_0x3d98('0x6d')];if(!_[_0x3d98('0x6f')](_0x28835f[_0x3d98('0x6e')])){_0x196e1a[_0x3d98('0x70')]+='\x20'+_0x28835f[_0x3d98('0x6e')];}}})[_0x3d98('0x71')](function(){return db[_0x3d98('0x72')][_0x3d98('0x55')](_0x196e1a);});}})['then'](function(){return _0x568f0c['status'](0xcc)[_0x3d98('0x1a')]();})['catch'](handleError(_0x568f0c,null));};exports[_0x3d98('0x73')]=function(_0x46c099,_0x4fef56,_0xf4a5fb){var _0x73964=[];return db[_0x3d98('0x6b')]['describe']()[_0x3d98('0x25')](function(_0x3bad17){_0x73964=_[_0x3d98('0x51')](_0x3bad17);return _0x46c099['user'][_0x3d98('0x74')]({'where':{'type':_0x3d98('0x75'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x3d98('0x76')],'raw':!![]});})[_0x3d98('0x25')](function(_0x5a9b51){if(_0x5a9b51&&_0x5a9b51['length']){return db['sequelize']['transaction'](function(_0x5393fe){var _0x437630={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x3d98('0x66')](_0x3d98('0x77'))},'VoiceQueueId':{'$in':_[_0x3d98('0x2e')](_0x5a9b51,'id')},'$or':[{'UserId':null},{'UserId':_0x46c099[_0x3d98('0x64')]['id']}]};var _0x645236=[];if(_0x46c099[_0x3d98('0x56')][_0x3d98('0x78')]&&_0x46c099[_0x3d98('0x56')][_0x3d98('0x78')]===_0x3d98('0x79')){if(!_[_0x3d98('0x7a')](_0x46c099['body']['hopperIds'])){_0x437630['id']={'$in':_0x46c099[_0x3d98('0x56')]['hopperIds']};}_0x645236=[[_0x3d98('0x7b'),'ASC'],[_0x3d98('0x7c'),_0x5a9b51[0x0]['dialOrderByScheduledAt']===_0x3d98('0x7d')?_0x3d98('0x7e'):_0x3d98('0x7d')],db['sequelize']['literal'](_0x3d98('0x7f')),['id','DESC']];}else{if(!_[_0x3d98('0x7a')](_0x46c099['body'][_0x3d98('0x80')])){_0x437630['id']={'$notIn':_0x46c099[_0x3d98('0x56')][_0x3d98('0x80')]};}_0x645236=[[_0x3d98('0x7b'),_0x3d98('0x7e')],['scheduledAt',_0x5a9b51[0x0][_0x3d98('0x76')]],db[_0x3d98('0x81')][_0x3d98('0x82')](_0x3d98('0x83')),['id',_0x3d98('0x7d')]];}return db[_0x3d98('0x2a')]['findOne']({'attributes':['id',_0x3d98('0x84')],'where':_0x437630,'order':_0x645236,'transaction':_0x5393fe,'lock':_0x5393fe[_0x3d98('0x85')][_0x3d98('0x86')],'include':[{'model':db[_0x3d98('0x6b')],'as':'Contact','attributes':_0x73964,'include':[{'model':db[_0x3d98('0x87')],'as':_0x3d98('0x88'),'attributes':['id',_0x3d98('0x27')]}]},{'model':db['CmList'],'as':_0x3d98('0x89'),'attributes':['id',_0x3d98('0x27')]},{'model':db[_0x3d98('0x5a')],'as':_0x3d98('0x8a'),'attributes':['id',_0x3d98('0x27'),_0x3d98('0x8b')]}]})['then'](function(_0x335dd1){if(_0x335dd1){return _0x335dd1[_0x3d98('0x23')]({'UserId':_0x46c099[_0x3d98('0x64')]['id']},{'transaction':_0x5393fe});}});});}})[_0x3d98('0x25')](handleEntityNotFound(_0x4fef56,null))['then'](respondWithResult(_0x4fef56,null))[_0x3d98('0x4f')](handleError(_0x4fef56,null));};exports[_0x3d98('0x8c')]=function(_0x5c02ad,_0x166da9,_0x1b9183){return _0x5c02ad['user'][_0x3d98('0x74')]({'where':{'type':_0x3d98('0x75'),'dialActive':!![],'dialMethod':_0x3d98('0x8d')},'attributes':['id'],'raw':!![]})[_0x3d98('0x25')](function(_0x2941f4){if(_0x2941f4&&_0x2941f4[_0x3d98('0x52')]){return db[_0x3d98('0x2a')][_0x3d98('0x4b')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x3d98('0x66')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x3d98('0x2e')](_0x2941f4,'id')},'$or':[{'UserId':null},{'UserId':_0x5c02ad[_0x3d98('0x64')]['id']}]}});}return 0x0;})[_0x3d98('0x25')](function(_0x1f0741){if(!_[_0x3d98('0x6f')](_0x1f0741)&&_['isNumber'](_0x1f0741)){return _0x166da9[_0x3d98('0x19')](0xc8)[_0x3d98('0x1f')]({'contacts':_0x1f0741});}else{logger[_0x3d98('0x8e')](_0x3d98('0x8f'),_0x3d98('0x8c'),0x194,'entity\x20not\x20found');_0x166da9[_0x3d98('0x90')](0x194);}})[_0x3d98('0x4f')](handleError(_0x166da9,null));};