Built motion from commit (unavailable).|2.5.22
[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 _0x13f6=['sequelize','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','List','Queue','update','getOpenContacts','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','set','Content-Range','reject','then','destroy','error','name','map','CmHopper','type','key','model','query','keys','intersection','filters','concat','$or','$gt','$gte','$lte','$eq','$not','$between','$notBetween','$in','$notIn','$notLike','$iLike','$notILike','$like','$overlap','attributes','fields','length','hasOwnProperty','limit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','rawAttributes','body','find','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','membername','UserId','user','format','YYYY-MM-DD\x20HH:mm:ss','campaigntype','CmContact','lastName','isNil','firstName','calleridname','finally','CmHopperFinal','create','getPreview','outbound','preview','dialOrderByScheduledAt','direction','prev','isEmpty','hopperIds','priority','scheduledAt','ASC','DESC'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x13f6,0x124));var _0x613f=function(_0x1ef48f,_0x11ead1){_0x1ef48f=_0x1ef48f-0x0;var _0x551c96=_0x13f6[_0x1ef48f];return _0x551c96;};'use strict';var pdf=require(_0x613f('0x0'));var emlformat=require(_0x613f('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x613f('0x2'));var rp=require(_0x613f('0x3'));var moment=require(_0x613f('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x613f('0x5'));var util=require(_0x613f('0x6'));var path=require(_0x613f('0x7'));var sox=require('sox');var csv=require(_0x613f('0x8'));var ejs=require(_0x613f('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x613f('0xa'));var toCsv=require(_0x613f('0x8'));var querystring=require(_0x613f('0xb'));var Papa=require(_0x613f('0xc'));var Redis=require('ioredis');var authService=require(_0x613f('0xd'));var qs=require(_0x613f('0xe'));var as=require(_0x613f('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x613f('0x10'))(_0x613f('0x11'));var utils=require(_0x613f('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x613f('0x13'));var db=require(_0x613f('0x14'))['db'];function respondWithStatusCode(_0x542230,_0x4c2a85){_0x4c2a85=_0x4c2a85||0xcc;return function(_0x517f57){if(_0x517f57){return _0x542230[_0x613f('0x15')](_0x4c2a85);}return _0x542230[_0x613f('0x16')](_0x4c2a85)[_0x613f('0x17')]();};}function respondWithResult(_0x375db1,_0x329fcf){_0x329fcf=_0x329fcf||0xc8;return function(_0x4a6fc){if(_0x4a6fc){return _0x375db1[_0x613f('0x16')](_0x329fcf)[_0x613f('0x18')](_0x4a6fc);}};}function respondWithFilteredResult(_0x2eee4d,_0x1d68fd){return function(_0x548218){if(_0x548218){var _0x3c9edf=_0x548218[_0x613f('0x19')],_0x5d7c69=_0x1d68fd['offset'],_0x5c769c=_0x1d68fd[_0x613f('0x1a')]+_0x1d68fd['limit'],_0x1bc605;if(_0x5c769c>=_0x3c9edf){_0x5c769c=_0x3c9edf;_0x1bc605=0xc8;}else{_0x1bc605=0xce;}_0x2eee4d[_0x613f('0x16')](_0x1bc605);return _0x2eee4d[_0x613f('0x1b')](_0x613f('0x1c'),_0x5d7c69+'-'+_0x5c769c+'/'+_0x3c9edf)[_0x613f('0x18')](_0x548218);}return null;};}function patchUpdates(_0x3c0feb){return function(_0x1ba35f){try{jsonpatch['apply'](_0x1ba35f,_0x3c0feb,!![]);}catch(_0x5c3192){return BPromise[_0x613f('0x1d')](_0x5c3192);}return _0x1ba35f['save']();};}function saveUpdates(_0x48493c,_0x3c9b58){return function(_0x446562){if(_0x446562){return _0x446562['update'](_0x48493c)[_0x613f('0x1e')](function(_0x163ccb){return _0x163ccb;});}return null;};}function removeEntity(_0x2aa14b,_0x48b28a){return function(_0x5401c2){if(_0x5401c2){return _0x5401c2[_0x613f('0x1f')]()[_0x613f('0x1e')](function(){_0x2aa14b[_0x613f('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41104e,_0x33e0c6){return function(_0x30de90){if(!_0x30de90){_0x41104e[_0x613f('0x15')](0x194);}return _0x30de90;};}function handleError(_0x3013a1,_0x4e3d5a){_0x4e3d5a=_0x4e3d5a||0x1f4;return function(_0x30fb15){logger[_0x613f('0x20')](_0x30fb15['stack']);if(_0x30fb15[_0x613f('0x21')]){delete _0x30fb15[_0x613f('0x21')];}_0x3013a1[_0x613f('0x16')](_0x4e3d5a)['send'](_0x30fb15);};}exports['index']=function(_0x5a4a8b,_0x379920){var _0x594c28={},_0x412269={},_0x1767db={'count':0x0,'rows':[]};var _0x4ca372=_[_0x613f('0x22')](db[_0x613f('0x23')]['rawAttributes'],function(_0x4cff5d){return{'name':_0x4cff5d['fieldName'],'type':_0x4cff5d[_0x613f('0x24')][_0x613f('0x25')]};});_0x412269[_0x613f('0x26')]=_['map'](_0x4ca372,_0x613f('0x21'));_0x412269[_0x613f('0x27')]=_[_0x613f('0x28')](_0x5a4a8b[_0x613f('0x27')]);_0x412269['filters']=_[_0x613f('0x29')](_0x412269[_0x613f('0x26')],_0x412269[_0x613f('0x27')]);_0x412269[_0x613f('0x2a')]=_[_0x613f('0x2b')](_0x412269[_0x613f('0x2a')],['$and',_0x613f('0x2c'),_0x613f('0x2d'),_0x613f('0x2e'),'$lt',_0x613f('0x2f'),'$ne',_0x613f('0x30'),_0x613f('0x31'),_0x613f('0x32'),_0x613f('0x33'),_0x613f('0x34'),_0x613f('0x35'),'$like',_0x613f('0x36'),_0x613f('0x37'),_0x613f('0x38'),_0x613f('0x39'),_0x613f('0x3a'),'$contains','$contained','$any']);_0x594c28[_0x613f('0x3b')]=_[_0x613f('0x29')](_0x412269[_0x613f('0x26')],qs[_0x613f('0x3c')](_0x5a4a8b['query'][_0x613f('0x3c')]));_0x594c28[_0x613f('0x3b')]=_0x594c28['attributes'][_0x613f('0x3d')]?_0x594c28['attributes']:_0x412269[_0x613f('0x26')];if(!_0x5a4a8b['query'][_0x613f('0x3e')]('nolimit')){_0x594c28[_0x613f('0x3f')]=qs[_0x613f('0x3f')](_0x5a4a8b[_0x613f('0x27')]['limit']);_0x594c28[_0x613f('0x1a')]=qs[_0x613f('0x1a')](_0x5a4a8b[_0x613f('0x27')][_0x613f('0x1a')]);}_0x594c28[_0x613f('0x40')]=qs[_0x613f('0x41')](_0x5a4a8b[_0x613f('0x27')][_0x613f('0x41')]);_0x594c28[_0x613f('0x42')]=qs[_0x613f('0x2a')](_['pick'](_0x5a4a8b[_0x613f('0x27')],_0x412269[_0x613f('0x2a')]),_0x4ca372);if(_0x5a4a8b[_0x613f('0x27')][_0x613f('0x43')]){_0x594c28[_0x613f('0x42')]=_[_0x613f('0x44')](_0x594c28[_0x613f('0x42')],{'$or':_['map'](_0x4ca372,function(_0x43c0dc){if(_0x43c0dc[_0x613f('0x24')]!==_0x613f('0x45')){var _0x3d2d7b={};_0x3d2d7b[_0x43c0dc[_0x613f('0x21')]]={'$like':'%'+_0x5a4a8b[_0x613f('0x27')][_0x613f('0x43')]+'%'};return _0x3d2d7b;}})});}_0x594c28=_['merge']({},_0x594c28,_0x5a4a8b[_0x613f('0x46')]);var _0x18f427={'where':_0x594c28[_0x613f('0x42')]};return db[_0x613f('0x23')][_0x613f('0x19')](_0x18f427)[_0x613f('0x1e')](function(_0x2b4e9f){_0x1767db[_0x613f('0x19')]=_0x2b4e9f;if(_0x5a4a8b[_0x613f('0x27')][_0x613f('0x47')]){_0x594c28[_0x613f('0x48')]=[{'all':!![]}];}return db[_0x613f('0x23')][_0x613f('0x49')](_0x594c28);})['then'](function(_0x3472f6){_0x1767db[_0x613f('0x4a')]=_0x3472f6;return _0x1767db;})[_0x613f('0x1e')](respondWithFilteredResult(_0x379920,_0x594c28))[_0x613f('0x4b')](handleError(_0x379920,null));};exports['show']=function(_0x152a3c,_0x15b54a){var _0x38aa12={'raw':!![],'where':{'id':_0x152a3c[_0x613f('0x4c')]['id']}},_0x16b288={};_0x16b288[_0x613f('0x26')]=_[_0x613f('0x28')](db[_0x613f('0x23')][_0x613f('0x4d')]);_0x16b288[_0x613f('0x27')]=_['keys'](_0x152a3c['query']);_0x16b288[_0x613f('0x2a')]=_[_0x613f('0x29')](_0x16b288['model'],_0x16b288[_0x613f('0x27')]);_0x38aa12[_0x613f('0x3b')]=_[_0x613f('0x29')](_0x16b288[_0x613f('0x26')],qs[_0x613f('0x3c')](_0x152a3c[_0x613f('0x27')][_0x613f('0x3c')]));_0x38aa12[_0x613f('0x3b')]=_0x38aa12[_0x613f('0x3b')][_0x613f('0x3d')]?_0x38aa12[_0x613f('0x3b')]:_0x16b288[_0x613f('0x26')];if(_0x152a3c[_0x613f('0x27')][_0x613f('0x47')]){_0x38aa12[_0x613f('0x48')]=[{'all':!![]}];}_0x38aa12=_[_0x613f('0x44')]({},_0x38aa12,_0x152a3c[_0x613f('0x46')]);return db[_0x613f('0x23')]['find'](_0x38aa12)['then'](handleEntityNotFound(_0x15b54a,null))[_0x613f('0x1e')](respondWithResult(_0x15b54a,null))[_0x613f('0x4b')](handleError(_0x15b54a,null));};exports['create']=function(_0x48d29a,_0x94968f){return db['CmHopper']['create'](_0x48d29a[_0x613f('0x4e')],{})[_0x613f('0x1e')](respondWithResult(_0x94968f,0xc9))[_0x613f('0x4b')](handleError(_0x94968f,null));};exports['update']=function(_0x1e3298,_0x150b36){if(_0x1e3298['body']['id']){delete _0x1e3298['body']['id'];}return db[_0x613f('0x23')][_0x613f('0x4f')]({'where':{'id':_0x1e3298[_0x613f('0x4c')]['id']}})[_0x613f('0x1e')](handleEntityNotFound(_0x150b36,null))[_0x613f('0x1e')](saveUpdates(_0x1e3298[_0x613f('0x4e')],null))[_0x613f('0x1e')](respondWithResult(_0x150b36,null))['catch'](handleError(_0x150b36,null));};exports['describe']=function(_0x38d781,_0x489f42){return db['CmHopper'][_0x613f('0x50')]()[_0x613f('0x1e')](respondWithResult(_0x489f42,null))[_0x613f('0x4b')](handleError(_0x489f42,null));};exports['destroy']=function(_0x27adac,_0x3ab684){var _0x291a85;return db[_0x613f('0x23')][_0x613f('0x4f')]({'where':{'id':_0x27adac[_0x613f('0x4c')]['id']}})[_0x613f('0x1e')](handleEntityNotFound(_0x3ab684,null))['then'](function(_0x40d412){if(_0x40d412){return _0x40d412['destroy']()[_0x613f('0x1e')](function(_0x199afe){return _0x199afe;});}})[_0x613f('0x1e')](function(_0x3d1f1a){_0x291a85=_0x3d1f1a;if(_0x3d1f1a){if(_0x3d1f1a[_0x613f('0x51')]||_0x3d1f1a[_0x613f('0x52')]){return db[_0x3d1f1a[_0x613f('0x51')]?_0x613f('0x53'):_0x613f('0x54')][_0x613f('0x4f')]({'where':{'id':_0x3d1f1a[_0x613f('0x51')]?_0x3d1f1a[_0x613f('0x51')]:_0x3d1f1a[_0x613f('0x52')]},'attributes':['id','name'],'raw':!![]});}}})['then'](function(_0x687e56){var _0x4b6eb3={};if(_0x687e56){_[_0x613f('0x44')](_0x4b6eb3,_[_0x613f('0x55')](_0x291a85[_0x613f('0x56')],[_0x613f('0x57'),_0x613f('0x58'),'id']));_0x4b6eb3[_0x613f('0x59')]=0x15;_0x4b6eb3[_0x613f('0x5a')]=_0x613f('0x5b');_0x4b6eb3[_0x613f('0x5c')]=_0x687e56[_0x613f('0x21')];_0x4b6eb3[_0x613f('0x5d')]=_0x27adac['user'][_0x613f('0x21')];_0x4b6eb3[_0x613f('0x5e')]=_0x27adac[_0x613f('0x5f')]['id'];_0x4b6eb3[_0x613f('0x5b')]=!![];_0x4b6eb3['deletedat']=moment()[_0x613f('0x60')](_0x613f('0x61'));_0x4b6eb3['calleridnum']=_0x291a85['phone'];_0x4b6eb3[_0x613f('0x62')]=_0x291a85['VoiceQueueId']?'queue':'ivr';return db[_0x613f('0x63')]['find']({'where':{'id':_0x4b6eb3['ContactId']},'attributes':['firstName',_0x613f('0x64')]})[_0x613f('0x1e')](function(_0x5bf4ce){if(!_[_0x613f('0x65')](_0x3ab684)&&!_[_0x613f('0x65')](_0x5bf4ce[_0x613f('0x66')])){_0x4b6eb3[_0x613f('0x67')]=_0x5bf4ce['firstName'];if(!_[_0x613f('0x65')](_0x5bf4ce[_0x613f('0x64')])){_0x4b6eb3['calleridname']+='\x20'+_0x5bf4ce[_0x613f('0x64')];}}})[_0x613f('0x68')](function(){return db[_0x613f('0x69')][_0x613f('0x6a')](_0x4b6eb3);});}})[_0x613f('0x1e')](function(){return _0x3ab684[_0x613f('0x16')](0xcc)[_0x613f('0x17')]();})[_0x613f('0x4b')](handleError(_0x3ab684,null));};exports[_0x613f('0x6b')]=function(_0x2aca4d,_0x14f418,_0x2e5c06){var _0x50d7ca=[];return db[_0x613f('0x63')][_0x613f('0x50')]()[_0x613f('0x1e')](function(_0x36c3af){_0x50d7ca=_[_0x613f('0x28')](_0x36c3af);return _0x2aca4d[_0x613f('0x5f')]['getVoiceQueues']({'where':{'type':_0x613f('0x6c'),'dialActive':!![],'dialMethod':_0x613f('0x6d')},'attributes':['id',_0x613f('0x6e')],'raw':!![]});})[_0x613f('0x1e')](function(_0x378b5e){if(_0x378b5e&&_0x378b5e[_0x613f('0x3d')]){return db['sequelize']['transaction'](function(_0x42282a){var _0x25a550={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x613f('0x60')](_0x613f('0x61'))},'VoiceQueueId':{'$in':_['map'](_0x378b5e,'id')},'$or':[{'UserId':null},{'UserId':_0x2aca4d[_0x613f('0x5f')]['id']}]};var _0x29e5c8=[];if(_0x2aca4d[_0x613f('0x4e')][_0x613f('0x6f')]&&_0x2aca4d['body'][_0x613f('0x6f')]===_0x613f('0x70')){if(!_[_0x613f('0x71')](_0x2aca4d[_0x613f('0x4e')][_0x613f('0x72')])){_0x25a550['id']={'$in':_0x2aca4d[_0x613f('0x4e')][_0x613f('0x72')]};}_0x29e5c8=[[_0x613f('0x73'),'ASC'],[_0x613f('0x74'),_0x378b5e[0x0][_0x613f('0x6e')]===_0x613f('0x75')?_0x613f('0x76'):_0x613f('0x75')],db[_0x613f('0x77')][_0x613f('0x78')](_0x613f('0x79')),['id',_0x613f('0x76')]];}else{if(!_[_0x613f('0x71')](_0x2aca4d['body'][_0x613f('0x72')])){_0x25a550['id']={'$notIn':_0x2aca4d[_0x613f('0x4e')][_0x613f('0x72')]};}_0x29e5c8=[[_0x613f('0x73'),_0x613f('0x76')],[_0x613f('0x74'),_0x378b5e[0x0][_0x613f('0x6e')]],db[_0x613f('0x77')][_0x613f('0x78')](_0x613f('0x7a')),['id',_0x613f('0x75')]];}return db['CmHopper'][_0x613f('0x7b')]({'attributes':['id',_0x613f('0x7c')],'where':_0x25a550,'order':_0x29e5c8,'transaction':_0x42282a,'lock':_0x42282a[_0x613f('0x7d')][_0x613f('0x7e')],'include':[{'model':db[_0x613f('0x63')],'as':_0x613f('0x7f'),'attributes':_0x50d7ca,'include':[{'model':db[_0x613f('0x80')],'as':_0x613f('0x81'),'attributes':['id',_0x613f('0x21')]}]},{'model':db[_0x613f('0x82')],'as':_0x613f('0x83'),'attributes':['id',_0x613f('0x21')]},{'model':db['VoiceQueue'],'as':_0x613f('0x84'),'attributes':['id',_0x613f('0x21'),'dialActive']}]})[_0x613f('0x1e')](function(_0x565fc2){if(_0x565fc2){return _0x565fc2[_0x613f('0x85')]({'UserId':_0x2aca4d['user']['id']},{'transaction':_0x42282a});}});});}})['then'](handleEntityNotFound(_0x14f418,null))[_0x613f('0x1e')](respondWithResult(_0x14f418,null))[_0x613f('0x4b')](handleError(_0x14f418,null));};exports[_0x613f('0x86')]=function(_0x397932,_0x1e3c40,_0x41abff){return _0x397932[_0x613f('0x5f')]['getVoiceQueues']({'where':{'type':_0x613f('0x6c'),'dialActive':!![],'dialMethod':_0x613f('0x6d')},'attributes':['id'],'raw':!![]})[_0x613f('0x1e')](function(_0x2bc172){if(_0x2bc172&&_0x2bc172[_0x613f('0x3d')]){return db['CmHopper'][_0x613f('0x19')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x613f('0x60')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x613f('0x22')](_0x2bc172,'id')},'$or':[{'UserId':null},{'UserId':_0x397932[_0x613f('0x5f')]['id']}]}});}return 0x0;})[_0x613f('0x1e')](function(_0x4bb82e){if(!_['isNil'](_0x4bb82e)&&_['isNumber'](_0x4bb82e)){return _0x1e3c40[_0x613f('0x16')](0xc8)[_0x613f('0x18')]({'contacts':_0x4bb82e});}else{logger['error'](_0x613f('0x87'),_0x613f('0x86'),0x194,_0x613f('0x88'));_0x1e3c40['sendStatus'](0x194);}})[_0x613f('0x4b')](handleError(_0x1e3c40,null));};