Built motion from commit (unavailable).|2.5.25
[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 _0xd8b0=['preview','dialOrderByScheduledAt','transaction','direction','prev','hopperIds','ASC','DESC','sequelize','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','isEmpty','priority','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','CmList','List','VoiceQueue','Queue','dialActive','getOpenContacts','getVoiceQueues','isNumber','entity\x20not\x20found','html-pdf','eml-format','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','destroy','then','error','name','send','index','CmHopper','type','model','query','keys','filters','$and','$or','$gt','$gte','$lt','$lte','$ne','$eq','$between','$notBetween','$notIn','$like','$notLike','$notILike','$overlap','$contains','$contained','attributes','intersection','fields','nolimit','order','sort','where','pick','map','VIRTUAL','filter','merge','include','findAll','rows','show','params','length','includeAll','options','create','body','catch','update','find','describe','CampaignId','VoiceQueueId','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','user','UserId','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','ivr','CmContact','ContactId','lastName','isNil','calleridname','firstName','CmHopperFinal'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var pdf=require(_0x0d8b('0x0'));var emlformat=require(_0x0d8b('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0d8b('0x2'));var moment=require(_0x0d8b('0x3'));var BPromise=require(_0x0d8b('0x4'));var Mustache=require(_0x0d8b('0x5'));var util=require(_0x0d8b('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x0d8b('0x7'));var ejs=require(_0x0d8b('0x8'));var fs=require('fs');var _=require(_0x0d8b('0x9'));var squel=require('squel');var crypto=require(_0x0d8b('0xa'));var jsforce=require(_0x0d8b('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x0d8b('0x7'));var querystring=require(_0x0d8b('0xc'));var Papa=require(_0x0d8b('0xd'));var Redis=require(_0x0d8b('0xe'));var authService=require(_0x0d8b('0xf'));var qs=require(_0x0d8b('0x10'));var as=require(_0x0d8b('0x11'));var hardwareService=require(_0x0d8b('0x12'));var logger=require('../../config/logger')(_0x0d8b('0x13'));var utils=require('../../config/utils');var config=require(_0x0d8b('0x14'));var licenseUtil=require(_0x0d8b('0x15'));var db=require(_0x0d8b('0x16'))['db'];function respondWithStatusCode(_0x92cdd8,_0x35a07b){_0x35a07b=_0x35a07b||0xcc;return function(_0x32bb1a){if(_0x32bb1a){return _0x92cdd8[_0x0d8b('0x17')](_0x35a07b);}return _0x92cdd8[_0x0d8b('0x18')](_0x35a07b)[_0x0d8b('0x19')]();};}function respondWithResult(_0x2ce75e,_0x5ad086){_0x5ad086=_0x5ad086||0xc8;return function(_0xe65334){if(_0xe65334){return _0x2ce75e[_0x0d8b('0x18')](_0x5ad086)[_0x0d8b('0x1a')](_0xe65334);}};}function respondWithFilteredResult(_0x4f6f21,_0x23eb7b){return function(_0xa86349){if(_0xa86349){var _0x17f7df=_0xa86349[_0x0d8b('0x1b')],_0xe2e167=_0x23eb7b[_0x0d8b('0x1c')],_0x2cb03c=_0x23eb7b[_0x0d8b('0x1c')]+_0x23eb7b[_0x0d8b('0x1d')],_0x5cd485;if(_0x2cb03c>=_0x17f7df){_0x2cb03c=_0x17f7df;_0x5cd485=0xc8;}else{_0x5cd485=0xce;}_0x4f6f21[_0x0d8b('0x18')](_0x5cd485);return _0x4f6f21[_0x0d8b('0x1e')](_0x0d8b('0x1f'),_0xe2e167+'-'+_0x2cb03c+'/'+_0x17f7df)[_0x0d8b('0x1a')](_0xa86349);}return null;};}function patchUpdates(_0x4a15bf){return function(_0x27512e){try{jsonpatch[_0x0d8b('0x20')](_0x27512e,_0x4a15bf,!![]);}catch(_0x196c0a){return BPromise[_0x0d8b('0x21')](_0x196c0a);}return _0x27512e[_0x0d8b('0x22')]();};}function saveUpdates(_0x5b709c,_0x393beb){return function(_0x352c17){if(_0x352c17){return _0x352c17['update'](_0x5b709c)['then'](function(_0x33fb87){return _0x33fb87;});}return null;};}function removeEntity(_0x54a9a7,_0x56c729){return function(_0x5527d8){if(_0x5527d8){return _0x5527d8[_0x0d8b('0x23')]()[_0x0d8b('0x24')](function(){_0x54a9a7[_0x0d8b('0x18')](0xcc)[_0x0d8b('0x19')]();});}};}function handleEntityNotFound(_0x221071,_0x2c64e2){return function(_0x30980c){if(!_0x30980c){_0x221071[_0x0d8b('0x17')](0x194);}return _0x30980c;};}function handleError(_0x27b695,_0x5e5bc3){_0x5e5bc3=_0x5e5bc3||0x1f4;return function(_0xe8bbee){logger[_0x0d8b('0x25')](_0xe8bbee['stack']);if(_0xe8bbee[_0x0d8b('0x26')]){delete _0xe8bbee['name'];}_0x27b695[_0x0d8b('0x18')](_0x5e5bc3)[_0x0d8b('0x27')](_0xe8bbee);};}exports[_0x0d8b('0x28')]=function(_0x4fe6f9,_0x59a905){var _0x28f639={},_0x3ef745={},_0x4c05ee={'count':0x0,'rows':[]};var _0xcbc4ac=_['map'](db[_0x0d8b('0x29')]['rawAttributes'],function(_0x97050a){return{'name':_0x97050a['fieldName'],'type':_0x97050a[_0x0d8b('0x2a')]['key']};});_0x3ef745[_0x0d8b('0x2b')]=_['map'](_0xcbc4ac,_0x0d8b('0x26'));_0x3ef745[_0x0d8b('0x2c')]=_[_0x0d8b('0x2d')](_0x4fe6f9['query']);_0x3ef745['filters']=_['intersection'](_0x3ef745[_0x0d8b('0x2b')],_0x3ef745['query']);_0x3ef745[_0x0d8b('0x2e')]=_['concat'](_0x3ef745['filters'],[_0x0d8b('0x2f'),_0x0d8b('0x30'),_0x0d8b('0x31'),_0x0d8b('0x32'),_0x0d8b('0x33'),_0x0d8b('0x34'),_0x0d8b('0x35'),_0x0d8b('0x36'),'$not',_0x0d8b('0x37'),_0x0d8b('0x38'),'$in',_0x0d8b('0x39'),_0x0d8b('0x3a'),_0x0d8b('0x3b'),'$iLike',_0x0d8b('0x3c'),_0x0d8b('0x3a'),_0x0d8b('0x3d'),_0x0d8b('0x3e'),_0x0d8b('0x3f'),'$any']);_0x28f639[_0x0d8b('0x40')]=_[_0x0d8b('0x41')](_0x3ef745['model'],qs[_0x0d8b('0x42')](_0x4fe6f9[_0x0d8b('0x2c')][_0x0d8b('0x42')]));_0x28f639[_0x0d8b('0x40')]=_0x28f639[_0x0d8b('0x40')]['length']?_0x28f639['attributes']:_0x3ef745[_0x0d8b('0x2b')];if(!_0x4fe6f9['query']['hasOwnProperty'](_0x0d8b('0x43'))){_0x28f639[_0x0d8b('0x1d')]=qs[_0x0d8b('0x1d')](_0x4fe6f9[_0x0d8b('0x2c')][_0x0d8b('0x1d')]);_0x28f639[_0x0d8b('0x1c')]=qs['offset'](_0x4fe6f9[_0x0d8b('0x2c')][_0x0d8b('0x1c')]);}_0x28f639[_0x0d8b('0x44')]=qs[_0x0d8b('0x45')](_0x4fe6f9[_0x0d8b('0x2c')][_0x0d8b('0x45')]);_0x28f639[_0x0d8b('0x46')]=qs['filters'](_[_0x0d8b('0x47')](_0x4fe6f9[_0x0d8b('0x2c')],_0x3ef745[_0x0d8b('0x2e')]),_0xcbc4ac);if(_0x4fe6f9[_0x0d8b('0x2c')]['filter']){_0x28f639[_0x0d8b('0x46')]=_['merge'](_0x28f639[_0x0d8b('0x46')],{'$or':_[_0x0d8b('0x48')](_0xcbc4ac,function(_0x32d7d7){if(_0x32d7d7[_0x0d8b('0x2a')]!==_0x0d8b('0x49')){var _0x3e632e={};_0x3e632e[_0x32d7d7[_0x0d8b('0x26')]]={'$like':'%'+_0x4fe6f9[_0x0d8b('0x2c')][_0x0d8b('0x4a')]+'%'};return _0x3e632e;}})});}_0x28f639=_[_0x0d8b('0x4b')]({},_0x28f639,_0x4fe6f9['options']);var _0x571acf={'where':_0x28f639['where']};return db['CmHopper']['count'](_0x571acf)[_0x0d8b('0x24')](function(_0x402fe0){_0x4c05ee[_0x0d8b('0x1b')]=_0x402fe0;if(_0x4fe6f9['query']['includeAll']){_0x28f639[_0x0d8b('0x4c')]=[{'all':!![]}];}return db[_0x0d8b('0x29')][_0x0d8b('0x4d')](_0x28f639);})['then'](function(_0x214583){_0x4c05ee[_0x0d8b('0x4e')]=_0x214583;return _0x4c05ee;})['then'](respondWithFilteredResult(_0x59a905,_0x28f639))['catch'](handleError(_0x59a905,null));};exports[_0x0d8b('0x4f')]=function(_0x495870,_0x1e22e5){var _0x5a96b1={'raw':!![],'where':{'id':_0x495870[_0x0d8b('0x50')]['id']}},_0x53f643={};_0x53f643[_0x0d8b('0x2b')]=_['keys'](db['CmHopper']['rawAttributes']);_0x53f643['query']=_[_0x0d8b('0x2d')](_0x495870[_0x0d8b('0x2c')]);_0x53f643[_0x0d8b('0x2e')]=_['intersection'](_0x53f643[_0x0d8b('0x2b')],_0x53f643[_0x0d8b('0x2c')]);_0x5a96b1[_0x0d8b('0x40')]=_[_0x0d8b('0x41')](_0x53f643[_0x0d8b('0x2b')],qs[_0x0d8b('0x42')](_0x495870[_0x0d8b('0x2c')][_0x0d8b('0x42')]));_0x5a96b1[_0x0d8b('0x40')]=_0x5a96b1[_0x0d8b('0x40')][_0x0d8b('0x51')]?_0x5a96b1[_0x0d8b('0x40')]:_0x53f643[_0x0d8b('0x2b')];if(_0x495870[_0x0d8b('0x2c')][_0x0d8b('0x52')]){_0x5a96b1[_0x0d8b('0x4c')]=[{'all':!![]}];}_0x5a96b1=_[_0x0d8b('0x4b')]({},_0x5a96b1,_0x495870[_0x0d8b('0x53')]);return db[_0x0d8b('0x29')]['find'](_0x5a96b1)[_0x0d8b('0x24')](handleEntityNotFound(_0x1e22e5,null))['then'](respondWithResult(_0x1e22e5,null))['catch'](handleError(_0x1e22e5,null));};exports[_0x0d8b('0x54')]=function(_0x113fb7,_0x3f943a){return db[_0x0d8b('0x29')]['create'](_0x113fb7[_0x0d8b('0x55')],{})[_0x0d8b('0x24')](respondWithResult(_0x3f943a,0xc9))[_0x0d8b('0x56')](handleError(_0x3f943a,null));};exports[_0x0d8b('0x57')]=function(_0x45cd22,_0x4cd85a){if(_0x45cd22['body']['id']){delete _0x45cd22['body']['id'];}return db['CmHopper'][_0x0d8b('0x58')]({'where':{'id':_0x45cd22[_0x0d8b('0x50')]['id']}})['then'](handleEntityNotFound(_0x4cd85a,null))['then'](saveUpdates(_0x45cd22[_0x0d8b('0x55')],null))[_0x0d8b('0x24')](respondWithResult(_0x4cd85a,null))['catch'](handleError(_0x4cd85a,null));};exports['describe']=function(_0x900906,_0xeeefd4){return db[_0x0d8b('0x29')][_0x0d8b('0x59')]()[_0x0d8b('0x24')](respondWithResult(_0xeeefd4,null))['catch'](handleError(_0xeeefd4,null));};exports[_0x0d8b('0x23')]=function(_0x2afe34,_0x5481fc){var _0x580580;return db[_0x0d8b('0x29')][_0x0d8b('0x58')]({'where':{'id':_0x2afe34['params']['id']}})['then'](handleEntityNotFound(_0x5481fc,null))[_0x0d8b('0x24')](function(_0x2f2462){if(_0x2f2462){return _0x2f2462[_0x0d8b('0x23')]()[_0x0d8b('0x24')](function(_0x4a2989){return _0x4a2989;});}})[_0x0d8b('0x24')](function(_0x598e03){_0x580580=_0x598e03;if(_0x598e03){if(_0x598e03['VoiceQueueId']||_0x598e03[_0x0d8b('0x5a')]){return db[_0x598e03[_0x0d8b('0x5b')]?'VoiceQueue':'Campaign'][_0x0d8b('0x58')]({'where':{'id':_0x598e03[_0x0d8b('0x5b')]?_0x598e03[_0x0d8b('0x5b')]:_0x598e03[_0x0d8b('0x5a')]},'attributes':['id',_0x0d8b('0x26')],'raw':!![]});}}})[_0x0d8b('0x24')](function(_0x3978e5){var _0x3bead7={};if(_0x3978e5){_['merge'](_0x3bead7,_[_0x0d8b('0x5c')](_0x580580[_0x0d8b('0x5d')],[_0x0d8b('0x5e'),_0x0d8b('0x5f'),'id']));_0x3bead7[_0x0d8b('0x60')]=0x15;_0x3bead7[_0x0d8b('0x61')]=_0x0d8b('0x62');_0x3bead7[_0x0d8b('0x63')]=_0x3978e5[_0x0d8b('0x26')];_0x3bead7['membername']=_0x2afe34[_0x0d8b('0x64')][_0x0d8b('0x26')];_0x3bead7[_0x0d8b('0x65')]=_0x2afe34[_0x0d8b('0x64')]['id'];_0x3bead7[_0x0d8b('0x62')]=!![];_0x3bead7['deletedat']=moment()[_0x0d8b('0x66')](_0x0d8b('0x67'));_0x3bead7[_0x0d8b('0x68')]=_0x580580[_0x0d8b('0x69')];_0x3bead7[_0x0d8b('0x6a')]=_0x580580['VoiceQueueId']?'queue':_0x0d8b('0x6b');return db[_0x0d8b('0x6c')][_0x0d8b('0x58')]({'where':{'id':_0x3bead7[_0x0d8b('0x6d')]},'attributes':['firstName',_0x0d8b('0x6e')]})[_0x0d8b('0x24')](function(_0x8c0bbe){if(!_['isNil'](_0x5481fc)&&!_[_0x0d8b('0x6f')](_0x8c0bbe['firstName'])){_0x3bead7[_0x0d8b('0x70')]=_0x8c0bbe[_0x0d8b('0x71')];if(!_[_0x0d8b('0x6f')](_0x8c0bbe[_0x0d8b('0x6e')])){_0x3bead7[_0x0d8b('0x70')]+='\x20'+_0x8c0bbe[_0x0d8b('0x6e')];}}})['finally'](function(){return db[_0x0d8b('0x72')]['create'](_0x3bead7);});}})[_0x0d8b('0x24')](function(){return _0x5481fc[_0x0d8b('0x18')](0xcc)[_0x0d8b('0x19')]();})[_0x0d8b('0x56')](handleError(_0x5481fc,null));};exports['getPreview']=function(_0x19e097,_0x34d01f,_0x1a1ba7){var _0x2332fc=[];return db[_0x0d8b('0x6c')][_0x0d8b('0x59')]()[_0x0d8b('0x24')](function(_0x2eb406){_0x2332fc=_[_0x0d8b('0x2d')](_0x2eb406);return _0x19e097[_0x0d8b('0x64')]['getVoiceQueues']({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x0d8b('0x73')},'attributes':['id',_0x0d8b('0x74')],'raw':!![]});})['then'](function(_0xb1aa96){if(_0xb1aa96&&_0xb1aa96['length']){return db['sequelize'][_0x0d8b('0x75')](function(_0x1c4e96){var _0x4f4b4d={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x0d8b('0x67'))},'VoiceQueueId':{'$in':_[_0x0d8b('0x48')](_0xb1aa96,'id')},'$or':[{'UserId':null},{'UserId':_0x19e097[_0x0d8b('0x64')]['id']}]};var _0x435090=[];if(_0x19e097[_0x0d8b('0x55')][_0x0d8b('0x76')]&&_0x19e097[_0x0d8b('0x55')]['direction']===_0x0d8b('0x77')){if(!_['isEmpty'](_0x19e097[_0x0d8b('0x55')][_0x0d8b('0x78')])){_0x4f4b4d['id']={'$in':_0x19e097[_0x0d8b('0x55')][_0x0d8b('0x78')]};}_0x435090=[['priority',_0x0d8b('0x79')],['scheduledAt',_0xb1aa96[0x0][_0x0d8b('0x74')]===_0x0d8b('0x79')?_0x0d8b('0x7a'):_0x0d8b('0x79')],db[_0x0d8b('0x7b')][_0x0d8b('0x7c')](_0x0d8b('0x7d')),['id',_0x0d8b('0x7a')]];}else{if(!_[_0x0d8b('0x7e')](_0x19e097[_0x0d8b('0x55')]['hopperIds'])){_0x4f4b4d['id']={'$notIn':_0x19e097[_0x0d8b('0x55')]['hopperIds']};}_0x435090=[[_0x0d8b('0x7f'),_0x0d8b('0x7a')],['scheduledAt',_0xb1aa96[0x0][_0x0d8b('0x74')]],db['sequelize'][_0x0d8b('0x7c')](_0x0d8b('0x80')),['id',_0x0d8b('0x79')]];}return db[_0x0d8b('0x29')][_0x0d8b('0x81')]({'attributes':['id',_0x0d8b('0x82')],'where':_0x4f4b4d,'order':_0x435090,'transaction':_0x1c4e96,'lock':_0x1c4e96[_0x0d8b('0x83')][_0x0d8b('0x84')],'include':[{'model':db['CmContact'],'as':_0x0d8b('0x85'),'attributes':_0x2332fc,'include':[{'model':db[_0x0d8b('0x86')],'as':'Company','attributes':['id',_0x0d8b('0x26')]}]},{'model':db[_0x0d8b('0x87')],'as':_0x0d8b('0x88'),'attributes':['id',_0x0d8b('0x26')]},{'model':db[_0x0d8b('0x89')],'as':_0x0d8b('0x8a'),'attributes':['id',_0x0d8b('0x26'),_0x0d8b('0x8b')]}]})[_0x0d8b('0x24')](function(_0x5007c0){if(_0x5007c0){return _0x5007c0[_0x0d8b('0x57')]({'UserId':_0x19e097[_0x0d8b('0x64')]['id']},{'transaction':_0x1c4e96});}});});}})['then'](handleEntityNotFound(_0x34d01f,null))[_0x0d8b('0x24')](respondWithResult(_0x34d01f,null))[_0x0d8b('0x56')](handleError(_0x34d01f,null));};exports[_0x0d8b('0x8c')]=function(_0x58525c,_0x5db3b4,_0xebca83){return _0x58525c[_0x0d8b('0x64')][_0x0d8b('0x8d')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})[_0x0d8b('0x24')](function(_0x130159){if(_0x130159&&_0x130159[_0x0d8b('0x51')]){return db[_0x0d8b('0x29')][_0x0d8b('0x1b')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x0d8b('0x66')](_0x0d8b('0x67'))},'VoiceQueueId':{'$in':_[_0x0d8b('0x48')](_0x130159,'id')},'$or':[{'UserId':null},{'UserId':_0x58525c[_0x0d8b('0x64')]['id']}]}});}return 0x0;})[_0x0d8b('0x24')](function(_0x195901){if(!_[_0x0d8b('0x6f')](_0x195901)&&_[_0x0d8b('0x8e')](_0x195901)){return _0x5db3b4['status'](0xc8)[_0x0d8b('0x1a')]({'contacts':_0x195901});}else{logger[_0x0d8b('0x25')]('CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts',0x194,_0x0d8b('0x8f'));_0x5db3b4[_0x0d8b('0x17')](0x194);}})[_0x0d8b('0x56')](handleError(_0x5db3b4,null));};