Built motion from commit (unavailable).|2.4.20
[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 _0xc26b=['ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','sequelize','transaction','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','Contact','CmCompany','List','getOpenContacts','isNumber','entity\x20not\x20found','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','set','apply','save','then','destroy','error','name','send','index','map','CmHopper','rawAttributes','fieldName','type','key','model','query','keys','intersection','filters','concat','$and','$or','$gte','$lte','$ne','$eq','$not','$between','$notBetween','$in','$notIn','$notLike','$notILike','$overlap','$contains','$contained','$any','fields','attributes','hasOwnProperty','nolimit','limit','order','where','pick','filter','VIRTUAL','count','includeAll','include','rows','catch','show','params','length','merge','options','create','update','body','find','describe','VoiceQueueId','CampaignId','VoiceQueue','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','user','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue'];(function(_0x9e83f6,_0x1bce14){var _0x20aa44=function(_0x31576b){while(--_0x31576b){_0x9e83f6['push'](_0x9e83f6['shift']());}};_0x20aa44(++_0x1bce14);}(_0xc26b,0xb3));var _0xbc26=function(_0x348c84,_0x3f9401){_0x348c84=_0x348c84-0x0;var _0xd066f1=_0xc26b[_0x348c84];return _0xd066f1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xbc26('0x0'));var rimraf=require(_0xbc26('0x1'));var zipdir=require(_0xbc26('0x2'));var jsonpatch=require(_0xbc26('0x3'));var rp=require(_0xbc26('0x4'));var moment=require(_0xbc26('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xbc26('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xbc26('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xbc26('0x8'));var squel=require('squel');var crypto=require(_0xbc26('0x9'));var jsforce=require(_0xbc26('0xa'));var deskjs=require(_0xbc26('0xb'));var toCsv=require(_0xbc26('0x7'));var querystring=require(_0xbc26('0xc'));var Papa=require(_0xbc26('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xbc26('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbc26('0xf'));var logger=require(_0xbc26('0x10'))(_0xbc26('0x11'));var utils=require(_0xbc26('0x12'));var config=require(_0xbc26('0x13'));var db=require(_0xbc26('0x14'))['db'];function respondWithStatusCode(_0x1fb666,_0x5d7c12){_0x5d7c12=_0x5d7c12||0xcc;return function(_0x479d16){if(_0x479d16){return _0x1fb666[_0xbc26('0x15')](_0x5d7c12);}return _0x1fb666['status'](_0x5d7c12)[_0xbc26('0x16')]();};}function respondWithResult(_0x490055,_0x3c87d3){_0x3c87d3=_0x3c87d3||0xc8;return function(_0x3f151c){if(_0x3f151c){return _0x490055[_0xbc26('0x17')](_0x3c87d3)[_0xbc26('0x18')](_0x3f151c);}};}function respondWithFilteredResult(_0x411dbc,_0x52961b){return function(_0x27b951){if(_0x27b951){var _0x1ac5a6=_0x27b951['count'],_0x36f4ab=_0x52961b[_0xbc26('0x19')],_0x4aabb6=_0x52961b['offset']+_0x52961b['limit'],_0xe3ce8d;if(_0x4aabb6>=_0x1ac5a6){_0x4aabb6=_0x1ac5a6;_0xe3ce8d=0xc8;}else{_0xe3ce8d=0xce;}_0x411dbc['status'](_0xe3ce8d);return _0x411dbc[_0xbc26('0x1a')]('Content-Range',_0x36f4ab+'-'+_0x4aabb6+'/'+_0x1ac5a6)[_0xbc26('0x18')](_0x27b951);}return null;};}function patchUpdates(_0x56ff82){return function(_0x24f43f){try{jsonpatch[_0xbc26('0x1b')](_0x24f43f,_0x56ff82,!![]);}catch(_0x85c029){return BPromise['reject'](_0x85c029);}return _0x24f43f[_0xbc26('0x1c')]();};}function saveUpdates(_0x10517d,_0x191691){return function(_0x10665e){if(_0x10665e){return _0x10665e['update'](_0x10517d)[_0xbc26('0x1d')](function(_0x4c4131){return _0x4c4131;});}return null;};}function removeEntity(_0x25779f,_0x47322a){return function(_0x109de8){if(_0x109de8){return _0x109de8[_0xbc26('0x1e')]()['then'](function(){_0x25779f[_0xbc26('0x17')](0xcc)[_0xbc26('0x16')]();});}};}function handleEntityNotFound(_0x49c719,_0x590fd3){return function(_0x2957ac){if(!_0x2957ac){_0x49c719[_0xbc26('0x15')](0x194);}return _0x2957ac;};}function handleError(_0x5591a1,_0x443792){_0x443792=_0x443792||0x1f4;return function(_0x2abb00){logger[_0xbc26('0x1f')](_0x2abb00['stack']);if(_0x2abb00[_0xbc26('0x20')]){delete _0x2abb00[_0xbc26('0x20')];}_0x5591a1['status'](_0x443792)[_0xbc26('0x21')](_0x2abb00);};}exports[_0xbc26('0x22')]=function(_0xd3a70e,_0x468476){var _0x513be0={},_0x485e35={},_0xc00573={'count':0x0,'rows':[]};var _0x4ff4e1=_[_0xbc26('0x23')](db[_0xbc26('0x24')][_0xbc26('0x25')],function(_0x292870){return{'name':_0x292870[_0xbc26('0x26')],'type':_0x292870[_0xbc26('0x27')][_0xbc26('0x28')]};});_0x485e35[_0xbc26('0x29')]=_['map'](_0x4ff4e1,_0xbc26('0x20'));_0x485e35[_0xbc26('0x2a')]=_[_0xbc26('0x2b')](_0xd3a70e[_0xbc26('0x2a')]);_0x485e35['filters']=_[_0xbc26('0x2c')](_0x485e35[_0xbc26('0x29')],_0x485e35[_0xbc26('0x2a')]);_0x485e35[_0xbc26('0x2d')]=_[_0xbc26('0x2e')](_0x485e35[_0xbc26('0x2d')],[_0xbc26('0x2f'),_0xbc26('0x30'),'$gt',_0xbc26('0x31'),'$lt',_0xbc26('0x32'),_0xbc26('0x33'),_0xbc26('0x34'),_0xbc26('0x35'),_0xbc26('0x36'),_0xbc26('0x37'),_0xbc26('0x38'),_0xbc26('0x39'),'$like',_0xbc26('0x3a'),'$iLike',_0xbc26('0x3b'),'$like',_0xbc26('0x3c'),_0xbc26('0x3d'),_0xbc26('0x3e'),_0xbc26('0x3f')]);_0x513be0['attributes']=_[_0xbc26('0x2c')](_0x485e35[_0xbc26('0x29')],qs[_0xbc26('0x40')](_0xd3a70e[_0xbc26('0x2a')][_0xbc26('0x40')]));_0x513be0[_0xbc26('0x41')]=_0x513be0['attributes']['length']?_0x513be0[_0xbc26('0x41')]:_0x485e35[_0xbc26('0x29')];if(!_0xd3a70e[_0xbc26('0x2a')][_0xbc26('0x42')](_0xbc26('0x43'))){_0x513be0[_0xbc26('0x44')]=qs[_0xbc26('0x44')](_0xd3a70e[_0xbc26('0x2a')]['limit']);_0x513be0['offset']=qs[_0xbc26('0x19')](_0xd3a70e[_0xbc26('0x2a')][_0xbc26('0x19')]);}_0x513be0[_0xbc26('0x45')]=qs['sort'](_0xd3a70e[_0xbc26('0x2a')]['sort']);_0x513be0[_0xbc26('0x46')]=qs['filters'](_[_0xbc26('0x47')](_0xd3a70e[_0xbc26('0x2a')],_0x485e35[_0xbc26('0x2d')]));if(_0xd3a70e['query'][_0xbc26('0x48')]){_0x513be0['where']=_['merge'](_0x513be0['where'],{'$or':_['map'](_0x4ff4e1,function(_0x340304){if(_0x340304['type']!==_0xbc26('0x49')){var _0x542317={};_0x542317[_0x340304[_0xbc26('0x20')]]={'$like':'%'+_0xd3a70e['query'][_0xbc26('0x48')]+'%'};return _0x542317;}})});}_0x513be0=_['merge']({},_0x513be0,_0xd3a70e['options']);var _0x53961e={'where':_0x513be0[_0xbc26('0x46')]};return db['CmHopper'][_0xbc26('0x4a')](_0x53961e)[_0xbc26('0x1d')](function(_0x5a49d7){_0xc00573[_0xbc26('0x4a')]=_0x5a49d7;if(_0xd3a70e[_0xbc26('0x2a')][_0xbc26('0x4b')]){_0x513be0[_0xbc26('0x4c')]=[{'all':!![]}];}return db[_0xbc26('0x24')]['findAll'](_0x513be0);})[_0xbc26('0x1d')](function(_0x28ce5c){_0xc00573[_0xbc26('0x4d')]=_0x28ce5c;return _0xc00573;})[_0xbc26('0x1d')](respondWithFilteredResult(_0x468476,_0x513be0))[_0xbc26('0x4e')](handleError(_0x468476,null));};exports[_0xbc26('0x4f')]=function(_0x525c3c,_0x4fa89b){var _0x16c98d={'raw':!![],'where':{'id':_0x525c3c[_0xbc26('0x50')]['id']}},_0x195c8d={};_0x195c8d[_0xbc26('0x29')]=_[_0xbc26('0x2b')](db[_0xbc26('0x24')][_0xbc26('0x25')]);_0x195c8d['query']=_[_0xbc26('0x2b')](_0x525c3c[_0xbc26('0x2a')]);_0x195c8d[_0xbc26('0x2d')]=_['intersection'](_0x195c8d[_0xbc26('0x29')],_0x195c8d['query']);_0x16c98d['attributes']=_[_0xbc26('0x2c')](_0x195c8d['model'],qs[_0xbc26('0x40')](_0x525c3c[_0xbc26('0x2a')][_0xbc26('0x40')]));_0x16c98d[_0xbc26('0x41')]=_0x16c98d[_0xbc26('0x41')][_0xbc26('0x51')]?_0x16c98d['attributes']:_0x195c8d[_0xbc26('0x29')];if(_0x525c3c[_0xbc26('0x2a')]['includeAll']){_0x16c98d[_0xbc26('0x4c')]=[{'all':!![]}];}_0x16c98d=_[_0xbc26('0x52')]({},_0x16c98d,_0x525c3c[_0xbc26('0x53')]);return db[_0xbc26('0x24')]['find'](_0x16c98d)['then'](handleEntityNotFound(_0x4fa89b,null))[_0xbc26('0x1d')](respondWithResult(_0x4fa89b,null))[_0xbc26('0x4e')](handleError(_0x4fa89b,null));};exports[_0xbc26('0x54')]=function(_0x2e8db9,_0x132de4){return db[_0xbc26('0x24')][_0xbc26('0x54')](_0x2e8db9['body'],{})['then'](respondWithResult(_0x132de4,0xc9))[_0xbc26('0x4e')](handleError(_0x132de4,null));};exports[_0xbc26('0x55')]=function(_0x122baa,_0x19de6d){if(_0x122baa[_0xbc26('0x56')]['id']){delete _0x122baa[_0xbc26('0x56')]['id'];}return db[_0xbc26('0x24')][_0xbc26('0x57')]({'where':{'id':_0x122baa['params']['id']}})[_0xbc26('0x1d')](handleEntityNotFound(_0x19de6d,null))[_0xbc26('0x1d')](saveUpdates(_0x122baa['body'],null))['then'](respondWithResult(_0x19de6d,null))[_0xbc26('0x4e')](handleError(_0x19de6d,null));};exports[_0xbc26('0x58')]=function(_0x2fe451,_0x4de175){return db[_0xbc26('0x24')][_0xbc26('0x58')]()[_0xbc26('0x1d')](respondWithResult(_0x4de175,null))['catch'](handleError(_0x4de175,null));};exports[_0xbc26('0x1e')]=function(_0x587c1d,_0x49f71f){var _0x4f0c72;return db[_0xbc26('0x24')][_0xbc26('0x57')]({'where':{'id':_0x587c1d[_0xbc26('0x50')]['id']}})[_0xbc26('0x1d')](handleEntityNotFound(_0x49f71f,null))[_0xbc26('0x1d')](function(_0x18ebf1){if(_0x18ebf1){return _0x18ebf1[_0xbc26('0x1e')]()['then'](function(_0x3e1ca6){return _0x3e1ca6;});}})[_0xbc26('0x1d')](function(_0xa48d0){_0x4f0c72=_0xa48d0;if(_0xa48d0){if(_0xa48d0[_0xbc26('0x59')]||_0xa48d0[_0xbc26('0x5a')]){return db[_0xa48d0[_0xbc26('0x59')]?_0xbc26('0x5b'):'Campaign'][_0xbc26('0x57')]({'where':{'id':_0xa48d0[_0xbc26('0x59')]?_0xa48d0[_0xbc26('0x59')]:_0xa48d0[_0xbc26('0x5a')]},'attributes':['id','name'],'raw':!![]});}}})['then'](function(_0x5483c5){var _0x6db8f9={};if(_0x5483c5){_[_0xbc26('0x52')](_0x6db8f9,_[_0xbc26('0x5c')](_0x4f0c72[_0xbc26('0x5d')],[_0xbc26('0x5e'),_0xbc26('0x5f'),'id']));_0x6db8f9[_0xbc26('0x60')]=0x15;_0x6db8f9[_0xbc26('0x61')]=_0xbc26('0x62');_0x6db8f9[_0xbc26('0x63')]=_0x5483c5[_0xbc26('0x20')];_0x6db8f9['membername']=_0x587c1d[_0xbc26('0x64')][_0xbc26('0x20')];_0x6db8f9['UserId']=_0x587c1d['user']['id'];_0x6db8f9[_0xbc26('0x62')]=!![];_0x6db8f9['deletedat']=moment()[_0xbc26('0x65')](_0xbc26('0x66'));_0x6db8f9[_0xbc26('0x67')]=_0x4f0c72[_0xbc26('0x68')];_0x6db8f9[_0xbc26('0x69')]=_0x4f0c72[_0xbc26('0x59')]?_0xbc26('0x6a'):_0xbc26('0x6b');return db[_0xbc26('0x6c')][_0xbc26('0x57')]({'where':{'id':_0x6db8f9[_0xbc26('0x6d')]},'attributes':[_0xbc26('0x6e'),_0xbc26('0x6f')]})[_0xbc26('0x1d')](function(_0x3dc58d){if(!_[_0xbc26('0x70')](_0x49f71f)&&!_[_0xbc26('0x70')](_0x3dc58d[_0xbc26('0x6e')])){_0x6db8f9[_0xbc26('0x71')]=_0x3dc58d[_0xbc26('0x6e')];if(!_[_0xbc26('0x70')](_0x3dc58d[_0xbc26('0x6f')])){_0x6db8f9[_0xbc26('0x71')]+='\x20'+_0x3dc58d[_0xbc26('0x6f')];}}})[_0xbc26('0x72')](function(){return db[_0xbc26('0x73')][_0xbc26('0x54')](_0x6db8f9);});}})[_0xbc26('0x1d')](function(){return _0x49f71f['status'](0xcc)[_0xbc26('0x16')]();})[_0xbc26('0x4e')](handleError(_0x49f71f,null));};exports[_0xbc26('0x74')]=function(_0x4a1ca3,_0x151303,_0x44d724){var _0x33d737=[];return db['CmContact'][_0xbc26('0x58')]()[_0xbc26('0x1d')](function(_0x64ff84){_0x33d737=_[_0xbc26('0x2b')](_0x64ff84);return _0x4a1ca3[_0xbc26('0x64')][_0xbc26('0x75')]({'where':{'type':_0xbc26('0x76'),'dialActive':!![],'dialMethod':_0xbc26('0x77')},'attributes':['id',_0xbc26('0x78')],'raw':!![]});})[_0xbc26('0x1d')](function(_0x58d627){if(_0x58d627&&_0x58d627['length']){return db[_0xbc26('0x79')][_0xbc26('0x7a')](function(_0x1f5a0f){var _0x557fd0={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xbc26('0x65')](_0xbc26('0x66'))},'VoiceQueueId':{'$in':_['map'](_0x58d627,'id')},'$or':[{'UserId':null},{'UserId':_0x4a1ca3[_0xbc26('0x64')]['id']}]};var _0x194428=[];if(_0x4a1ca3['body'][_0xbc26('0x7b')]&&_0x4a1ca3[_0xbc26('0x56')][_0xbc26('0x7b')]===_0xbc26('0x7c')){if(!_[_0xbc26('0x7d')](_0x4a1ca3[_0xbc26('0x56')][_0xbc26('0x7e')])){_0x557fd0['id']={'$in':_0x4a1ca3['body']['hopperIds']};}_0x194428=[[_0xbc26('0x7f'),_0xbc26('0x80')],[_0xbc26('0x81'),_0x58d627[0x0][_0xbc26('0x78')]==='ASC'?'DESC':'ASC'],db['sequelize'][_0xbc26('0x82')](_0xbc26('0x83')),['id',_0xbc26('0x84')]];}else{if(!_['isEmpty'](_0x4a1ca3[_0xbc26('0x56')][_0xbc26('0x7e')])){_0x557fd0['id']={'$notIn':_0x4a1ca3['body'][_0xbc26('0x7e')]};}_0x194428=[[_0xbc26('0x7f'),'DESC'],[_0xbc26('0x81'),_0x58d627[0x0][_0xbc26('0x78')]],db[_0xbc26('0x79')][_0xbc26('0x82')](_0xbc26('0x85')),['id',_0xbc26('0x80')]];}return db[_0xbc26('0x24')][_0xbc26('0x86')]({'attributes':['id',_0xbc26('0x87')],'where':_0x557fd0,'order':_0x194428,'transaction':_0x1f5a0f,'lock':_0x1f5a0f[_0xbc26('0x88')]['UPDATE'],'include':[{'model':db['CmContact'],'as':_0xbc26('0x89'),'attributes':_0x33d737,'include':[{'model':db[_0xbc26('0x8a')],'as':'Company','attributes':['id',_0xbc26('0x20')]}]},{'model':db['CmList'],'as':_0xbc26('0x8b'),'attributes':['id','name']},{'model':db[_0xbc26('0x5b')],'as':'Queue','attributes':['id',_0xbc26('0x20'),'dialActive']}]})[_0xbc26('0x1d')](function(_0x50cc97){if(_0x50cc97){return _0x50cc97[_0xbc26('0x55')]({'UserId':_0x4a1ca3[_0xbc26('0x64')]['id']},{'transaction':_0x1f5a0f});}});});}})['then'](handleEntityNotFound(_0x151303,null))[_0xbc26('0x1d')](respondWithResult(_0x151303,null))[_0xbc26('0x4e')](handleError(_0x151303,null));};exports[_0xbc26('0x8c')]=function(_0x5cbe4b,_0x22be61,_0xf30742){return _0x5cbe4b[_0xbc26('0x64')][_0xbc26('0x75')]({'where':{'type':_0xbc26('0x76'),'dialActive':!![],'dialMethod':_0xbc26('0x77')},'attributes':['id'],'raw':!![]})[_0xbc26('0x1d')](function(_0x21e89f){if(_0x21e89f&&_0x21e89f[_0xbc26('0x51')]){return db[_0xbc26('0x24')][_0xbc26('0x4a')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xbc26('0x65')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0xbc26('0x23')](_0x21e89f,'id')},'$or':[{'UserId':null},{'UserId':_0x5cbe4b[_0xbc26('0x64')]['id']}]}});}return 0x0;})[_0xbc26('0x1d')](function(_0x86b814){if(!_[_0xbc26('0x70')](_0x86b814)&&_[_0xbc26('0x8d')](_0x86b814)){return _0x22be61[_0xbc26('0x17')](0xc8)[_0xbc26('0x18')]({'contacts':_0x86b814});}else{logger['error']('CmHopper,\x20%s,\x20%s,\x20%s',_0xbc26('0x8c'),0x194,_0xbc26('0x8e'));_0x22be61[_0xbc26('0x15')](0x194);}})['catch'](handleError(_0x22be61,null));};