Built motion from commit (unavailable).|2.4.18
[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 _0xf3f4=['calleridname','CmHopperFinal','getPreview','outbound','dialOrderByScheduledAt','length','sequelize','format','direction','prev','hopperIds','priority','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','isEmpty','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','List','getOpenContacts','getVoiceQueues','preview','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','sendStatus','status','json','count','limit','set','Content-Range','then','destroy','end','error','stack','name','send','map','CmHopper','rawAttributes','type','model','query','filters','intersection','$and','$gt','$gte','$lte','$eq','$between','$in','$notIn','$like','$iLike','$notILike','$contains','$any','fields','attributes','offset','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','keys','options','find','body','update','params','describe','VoiceQueueId','VoiceQueue','omit','dataValues','createdAt','statedesc','deleted','campaign','user','deletedat','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','ivr','CmContact','ContactId','isNil','firstName','lastName'];(function(_0x12ce43,_0x455a06){var _0xdb8970=function(_0x1ad606){while(--_0x1ad606){_0x12ce43['push'](_0x12ce43['shift']());}};_0xdb8970(++_0x455a06);}(_0xf3f4,0xa4));var _0x4f3f=function(_0x1d851d,_0x180322){_0x1d851d=_0x1d851d-0x0;var _0x583de1=_0xf3f4[_0x1d851d];return _0x583de1;};'use strict';var pdf=require(_0x4f3f('0x0'));var emlformat=require(_0x4f3f('0x1'));var rimraf=require(_0x4f3f('0x2'));var zipdir=require(_0x4f3f('0x3'));var jsonpatch=require(_0x4f3f('0x4'));var rp=require(_0x4f3f('0x5'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4f3f('0x6'));var util=require(_0x4f3f('0x7'));var path=require(_0x4f3f('0x8'));var sox=require(_0x4f3f('0x9'));var csv=require(_0x4f3f('0xa'));var ejs=require(_0x4f3f('0xb'));var fs=require('fs');var _=require(_0x4f3f('0xc'));var squel=require(_0x4f3f('0xd'));var crypto=require(_0x4f3f('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4f3f('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x4f3f('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x4f3f('0x10'));var hardwareService=require(_0x4f3f('0x11'));var logger=require('../../config/logger')(_0x4f3f('0x12'));var utils=require('../../config/utils');var config=require(_0x4f3f('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2975b5,_0x4f8ec4){_0x4f8ec4=_0x4f8ec4||0xcc;return function(_0x57926c){if(_0x57926c){return _0x2975b5[_0x4f3f('0x14')](_0x4f8ec4);}return _0x2975b5[_0x4f3f('0x15')](_0x4f8ec4)['end']();};}function respondWithResult(_0x3e5ed7,_0x58b017){_0x58b017=_0x58b017||0xc8;return function(_0x3058e2){if(_0x3058e2){return _0x3e5ed7[_0x4f3f('0x15')](_0x58b017)[_0x4f3f('0x16')](_0x3058e2);}};}function respondWithFilteredResult(_0x358e2e,_0x55b8de){return function(_0x2aba19){if(_0x2aba19){var _0x444038=_0x2aba19[_0x4f3f('0x17')],_0x5c611b=_0x55b8de['offset'],_0x18846e=_0x55b8de['offset']+_0x55b8de[_0x4f3f('0x18')],_0x5c7d3d;if(_0x18846e>=_0x444038){_0x18846e=_0x444038;_0x5c7d3d=0xc8;}else{_0x5c7d3d=0xce;}_0x358e2e[_0x4f3f('0x15')](_0x5c7d3d);return _0x358e2e[_0x4f3f('0x19')](_0x4f3f('0x1a'),_0x5c611b+'-'+_0x18846e+'/'+_0x444038)['json'](_0x2aba19);}return null;};}function patchUpdates(_0x4ef599){return function(_0x40ae50){try{jsonpatch['apply'](_0x40ae50,_0x4ef599,!![]);}catch(_0x2b6fe8){return BPromise['reject'](_0x2b6fe8);}return _0x40ae50['save']();};}function saveUpdates(_0x4bf298,_0x3e0c4d){return function(_0x36d241){if(_0x36d241){return _0x36d241['update'](_0x4bf298)[_0x4f3f('0x1b')](function(_0xa0e6b5){return _0xa0e6b5;});}return null;};}function removeEntity(_0x1ceb22,_0x2401d7){return function(_0xc71ebf){if(_0xc71ebf){return _0xc71ebf[_0x4f3f('0x1c')]()[_0x4f3f('0x1b')](function(){_0x1ceb22[_0x4f3f('0x15')](0xcc)[_0x4f3f('0x1d')]();});}};}function handleEntityNotFound(_0x313a76,_0x1f6d49){return function(_0x5ad78a){if(!_0x5ad78a){_0x313a76['sendStatus'](0x194);}return _0x5ad78a;};}function handleError(_0x538609,_0x27798d){_0x27798d=_0x27798d||0x1f4;return function(_0x1d1528){logger[_0x4f3f('0x1e')](_0x1d1528[_0x4f3f('0x1f')]);if(_0x1d1528[_0x4f3f('0x20')]){delete _0x1d1528[_0x4f3f('0x20')];}_0x538609[_0x4f3f('0x15')](_0x27798d)[_0x4f3f('0x21')](_0x1d1528);};}exports['index']=function(_0x5eecc8,_0x2a4e1e){var _0x946f5d={},_0x49495f={},_0x481aef={'count':0x0,'rows':[]};var _0x136053=_[_0x4f3f('0x22')](db[_0x4f3f('0x23')][_0x4f3f('0x24')],function(_0x37ea85){return{'name':_0x37ea85['fieldName'],'type':_0x37ea85[_0x4f3f('0x25')]['key']};});_0x49495f[_0x4f3f('0x26')]=_[_0x4f3f('0x22')](_0x136053,_0x4f3f('0x20'));_0x49495f[_0x4f3f('0x27')]=_['keys'](_0x5eecc8[_0x4f3f('0x27')]);_0x49495f[_0x4f3f('0x28')]=_[_0x4f3f('0x29')](_0x49495f['model'],_0x49495f[_0x4f3f('0x27')]);_0x49495f[_0x4f3f('0x28')]=_['concat'](_0x49495f[_0x4f3f('0x28')],[_0x4f3f('0x2a'),'$or',_0x4f3f('0x2b'),_0x4f3f('0x2c'),'$lt',_0x4f3f('0x2d'),'$ne',_0x4f3f('0x2e'),'$not',_0x4f3f('0x2f'),'$notBetween',_0x4f3f('0x30'),_0x4f3f('0x31'),_0x4f3f('0x32'),'$notLike',_0x4f3f('0x33'),_0x4f3f('0x34'),'$like','$overlap',_0x4f3f('0x35'),'$contained',_0x4f3f('0x36')]);_0x946f5d['attributes']=_[_0x4f3f('0x29')](_0x49495f[_0x4f3f('0x26')],qs[_0x4f3f('0x37')](_0x5eecc8[_0x4f3f('0x27')][_0x4f3f('0x37')]));_0x946f5d[_0x4f3f('0x38')]=_0x946f5d[_0x4f3f('0x38')]['length']?_0x946f5d['attributes']:_0x49495f[_0x4f3f('0x26')];if(!_0x5eecc8[_0x4f3f('0x27')]['hasOwnProperty']('nolimit')){_0x946f5d['limit']=qs[_0x4f3f('0x18')](_0x5eecc8[_0x4f3f('0x27')]['limit']);_0x946f5d[_0x4f3f('0x39')]=qs[_0x4f3f('0x39')](_0x5eecc8[_0x4f3f('0x27')][_0x4f3f('0x39')]);}_0x946f5d['order']=qs[_0x4f3f('0x3a')](_0x5eecc8[_0x4f3f('0x27')][_0x4f3f('0x3a')]);_0x946f5d[_0x4f3f('0x3b')]=qs[_0x4f3f('0x28')](_['pick'](_0x5eecc8[_0x4f3f('0x27')],_0x49495f['filters']));if(_0x5eecc8['query'][_0x4f3f('0x3c')]){_0x946f5d['where']=_[_0x4f3f('0x3d')](_0x946f5d['where'],{'$or':_[_0x4f3f('0x22')](_0x136053,function(_0x42af31){if(_0x42af31[_0x4f3f('0x25')]!==_0x4f3f('0x3e')){var _0x3e8d0f={};_0x3e8d0f[_0x42af31[_0x4f3f('0x20')]]={'$like':'%'+_0x5eecc8['query'][_0x4f3f('0x3c')]+'%'};return _0x3e8d0f;}})});}_0x946f5d=_[_0x4f3f('0x3d')]({},_0x946f5d,_0x5eecc8['options']);var _0x30167a={'where':_0x946f5d[_0x4f3f('0x3b')]};return db[_0x4f3f('0x23')][_0x4f3f('0x17')](_0x30167a)[_0x4f3f('0x1b')](function(_0xc2e673){_0x481aef['count']=_0xc2e673;if(_0x5eecc8[_0x4f3f('0x27')][_0x4f3f('0x3f')]){_0x946f5d[_0x4f3f('0x40')]=[{'all':!![]}];}return db['CmHopper'][_0x4f3f('0x41')](_0x946f5d);})['then'](function(_0x2d9f29){_0x481aef[_0x4f3f('0x42')]=_0x2d9f29;return _0x481aef;})[_0x4f3f('0x1b')](respondWithFilteredResult(_0x2a4e1e,_0x946f5d))[_0x4f3f('0x43')](handleError(_0x2a4e1e,null));};exports[_0x4f3f('0x44')]=function(_0x471b74,_0x258a81){var _0x5085a0={'raw':!![],'where':{'id':_0x471b74['params']['id']}},_0xa80a30={};_0xa80a30['model']=_[_0x4f3f('0x45')](db[_0x4f3f('0x23')]['rawAttributes']);_0xa80a30['query']=_[_0x4f3f('0x45')](_0x471b74['query']);_0xa80a30[_0x4f3f('0x28')]=_['intersection'](_0xa80a30[_0x4f3f('0x26')],_0xa80a30[_0x4f3f('0x27')]);_0x5085a0['attributes']=_[_0x4f3f('0x29')](_0xa80a30['model'],qs[_0x4f3f('0x37')](_0x471b74[_0x4f3f('0x27')][_0x4f3f('0x37')]));_0x5085a0['attributes']=_0x5085a0[_0x4f3f('0x38')]['length']?_0x5085a0[_0x4f3f('0x38')]:_0xa80a30['model'];if(_0x471b74[_0x4f3f('0x27')]['includeAll']){_0x5085a0[_0x4f3f('0x40')]=[{'all':!![]}];}_0x5085a0=_[_0x4f3f('0x3d')]({},_0x5085a0,_0x471b74[_0x4f3f('0x46')]);return db[_0x4f3f('0x23')][_0x4f3f('0x47')](_0x5085a0)[_0x4f3f('0x1b')](handleEntityNotFound(_0x258a81,null))[_0x4f3f('0x1b')](respondWithResult(_0x258a81,null))['catch'](handleError(_0x258a81,null));};exports['create']=function(_0x538994,_0x1eec8d){return db['CmHopper']['create'](_0x538994[_0x4f3f('0x48')],{})[_0x4f3f('0x1b')](respondWithResult(_0x1eec8d,0xc9))[_0x4f3f('0x43')](handleError(_0x1eec8d,null));};exports[_0x4f3f('0x49')]=function(_0x302b44,_0x4eb97d){if(_0x302b44[_0x4f3f('0x48')]['id']){delete _0x302b44['body']['id'];}return db[_0x4f3f('0x23')][_0x4f3f('0x47')]({'where':{'id':_0x302b44[_0x4f3f('0x4a')]['id']}})[_0x4f3f('0x1b')](handleEntityNotFound(_0x4eb97d,null))['then'](saveUpdates(_0x302b44[_0x4f3f('0x48')],null))[_0x4f3f('0x1b')](respondWithResult(_0x4eb97d,null))[_0x4f3f('0x43')](handleError(_0x4eb97d,null));};exports[_0x4f3f('0x4b')]=function(_0x22f90a,_0x4ebfa0){return db['CmHopper'][_0x4f3f('0x4b')]()['then'](respondWithResult(_0x4ebfa0,null))[_0x4f3f('0x43')](handleError(_0x4ebfa0,null));};exports[_0x4f3f('0x1c')]=function(_0x4d7f98,_0x5e6958){var _0x2bd787;return db[_0x4f3f('0x23')]['find']({'where':{'id':_0x4d7f98['params']['id']}})[_0x4f3f('0x1b')](handleEntityNotFound(_0x5e6958,null))[_0x4f3f('0x1b')](function(_0x36bb38){if(_0x36bb38){return _0x36bb38[_0x4f3f('0x1c')]()[_0x4f3f('0x1b')](function(_0x152197){return _0x152197;});}})[_0x4f3f('0x1b')](function(_0x312dac){_0x2bd787=_0x312dac;if(_0x312dac){if(_0x312dac['VoiceQueueId']||_0x312dac['CampaignId']){return db[_0x312dac[_0x4f3f('0x4c')]?_0x4f3f('0x4d'):'Campaign']['find']({'where':{'id':_0x312dac['VoiceQueueId']?_0x312dac[_0x4f3f('0x4c')]:_0x312dac['CampaignId']},'attributes':['id',_0x4f3f('0x20')],'raw':!![]});}}})[_0x4f3f('0x1b')](function(_0x3ad3b4){var _0x1b6f62={};if(_0x3ad3b4){_[_0x4f3f('0x3d')](_0x1b6f62,_[_0x4f3f('0x4e')](_0x2bd787[_0x4f3f('0x4f')],[_0x4f3f('0x50'),'updatedAt','id']));_0x1b6f62['state']=0x15;_0x1b6f62[_0x4f3f('0x51')]=_0x4f3f('0x52');_0x1b6f62[_0x4f3f('0x53')]=_0x3ad3b4[_0x4f3f('0x20')];_0x1b6f62['membername']=_0x4d7f98['user'][_0x4f3f('0x20')];_0x1b6f62['UserId']=_0x4d7f98[_0x4f3f('0x54')]['id'];_0x1b6f62['deleted']=!![];_0x1b6f62[_0x4f3f('0x55')]=moment()['format'](_0x4f3f('0x56'));_0x1b6f62[_0x4f3f('0x57')]=_0x2bd787[_0x4f3f('0x58')];_0x1b6f62[_0x4f3f('0x59')]=_0x2bd787[_0x4f3f('0x4c')]?'queue':_0x4f3f('0x5a');return db[_0x4f3f('0x5b')][_0x4f3f('0x47')]({'where':{'id':_0x1b6f62[_0x4f3f('0x5c')]},'attributes':['firstName','lastName']})[_0x4f3f('0x1b')](function(_0xeaa61){if(!_[_0x4f3f('0x5d')](_0x5e6958)&&!_[_0x4f3f('0x5d')](_0xeaa61[_0x4f3f('0x5e')])){_0x1b6f62['calleridname']=_0xeaa61['firstName'];if(!_[_0x4f3f('0x5d')](_0xeaa61[_0x4f3f('0x5f')])){_0x1b6f62[_0x4f3f('0x60')]+='\x20'+_0xeaa61[_0x4f3f('0x5f')];}}})['finally'](function(){return db[_0x4f3f('0x61')]['create'](_0x1b6f62);});}})[_0x4f3f('0x1b')](function(){return _0x5e6958['status'](0xcc)[_0x4f3f('0x1d')]();})[_0x4f3f('0x43')](handleError(_0x5e6958,null));};exports[_0x4f3f('0x62')]=function(_0x371c13,_0x3b1681,_0x2603f8){var _0x1c99a2=[];return db[_0x4f3f('0x5b')][_0x4f3f('0x4b')]()[_0x4f3f('0x1b')](function(_0x19f544){_0x1c99a2=_[_0x4f3f('0x45')](_0x19f544);return _0x371c13['user']['getVoiceQueues']({'where':{'type':_0x4f3f('0x63'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x4f3f('0x64')],'raw':!![]});})[_0x4f3f('0x1b')](function(_0x24fd92){if(_0x24fd92&&_0x24fd92[_0x4f3f('0x65')]){return db[_0x4f3f('0x66')]['transaction'](function(_0x510fb5){var _0x5f4867={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4f3f('0x67')](_0x4f3f('0x56'))},'VoiceQueueId':{'$in':_[_0x4f3f('0x22')](_0x24fd92,'id')},'$or':[{'UserId':null},{'UserId':_0x371c13[_0x4f3f('0x54')]['id']}]};var _0xf2c868=[];if(_0x371c13[_0x4f3f('0x48')][_0x4f3f('0x68')]&&_0x371c13[_0x4f3f('0x48')][_0x4f3f('0x68')]===_0x4f3f('0x69')){if(!_['isEmpty'](_0x371c13['body'][_0x4f3f('0x6a')])){_0x5f4867['id']={'$in':_0x371c13[_0x4f3f('0x48')][_0x4f3f('0x6a')]};}_0xf2c868=[[_0x4f3f('0x6b'),_0x4f3f('0x6c')],[_0x4f3f('0x6d'),_0x24fd92[0x0][_0x4f3f('0x64')]===_0x4f3f('0x6c')?_0x4f3f('0x6e'):_0x4f3f('0x6c')],db[_0x4f3f('0x66')][_0x4f3f('0x6f')](_0x4f3f('0x70')),['id','DESC']];}else{if(!_[_0x4f3f('0x71')](_0x371c13[_0x4f3f('0x48')][_0x4f3f('0x6a')])){_0x5f4867['id']={'$notIn':_0x371c13[_0x4f3f('0x48')][_0x4f3f('0x6a')]};}_0xf2c868=[['priority','DESC'],['scheduledAt',_0x24fd92[0x0][_0x4f3f('0x64')]],db[_0x4f3f('0x66')][_0x4f3f('0x6f')](_0x4f3f('0x72')),['id',_0x4f3f('0x6c')]];}return db[_0x4f3f('0x23')][_0x4f3f('0x73')]({'attributes':['id',_0x4f3f('0x74')],'where':_0x5f4867,'order':_0xf2c868,'transaction':_0x510fb5,'lock':_0x510fb5[_0x4f3f('0x75')][_0x4f3f('0x76')],'include':[{'model':db[_0x4f3f('0x5b')],'as':_0x4f3f('0x77'),'attributes':_0x1c99a2,'include':[{'model':db[_0x4f3f('0x78')],'as':_0x4f3f('0x79'),'attributes':['id',_0x4f3f('0x20')]}]},{'model':db[_0x4f3f('0x7a')],'as':_0x4f3f('0x7b'),'attributes':['id','name']},{'model':db['VoiceQueue'],'as':'Queue','attributes':['id','name','dialActive']}]})[_0x4f3f('0x1b')](function(_0x4912df){if(_0x4912df){return _0x4912df[_0x4f3f('0x49')]({'UserId':_0x371c13[_0x4f3f('0x54')]['id']},{'transaction':_0x510fb5});}});});}})[_0x4f3f('0x1b')](handleEntityNotFound(_0x3b1681,null))[_0x4f3f('0x1b')](respondWithResult(_0x3b1681,null))['catch'](handleError(_0x3b1681,null));};exports[_0x4f3f('0x7c')]=function(_0x3d57ea,_0x135ff8,_0x519173){return _0x3d57ea[_0x4f3f('0x54')][_0x4f3f('0x7d')]({'where':{'type':_0x4f3f('0x63'),'dialActive':!![],'dialMethod':_0x4f3f('0x7e')},'attributes':['id'],'raw':!![]})[_0x4f3f('0x1b')](function(_0x5e4faf){if(_0x5e4faf&&_0x5e4faf[_0x4f3f('0x65')]){return db['CmHopper']['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x4f3f('0x67')](_0x4f3f('0x56'))},'VoiceQueueId':{'$in':_['map'](_0x5e4faf,'id')},'$or':[{'UserId':null},{'UserId':_0x3d57ea['user']['id']}]}});}return 0x0;})[_0x4f3f('0x1b')](function(_0x28cf59){if(!_[_0x4f3f('0x5d')](_0x28cf59)&&_[_0x4f3f('0x7f')](_0x28cf59)){return _0x135ff8[_0x4f3f('0x15')](0xc8)[_0x4f3f('0x16')]({'contacts':_0x28cf59});}else{logger[_0x4f3f('0x1e')](_0x4f3f('0x80'),_0x4f3f('0x7c'),0x194,_0x4f3f('0x81'));_0x135ff8[_0x4f3f('0x14')](0x194);}})[_0x4f3f('0x43')](handleError(_0x135ff8,null));};