Built motion from commit (unavailable).|2.0.84
[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 _0x2fb6=['prev','hopperIds','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','isEmpty','priority','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','List','Queue','dialActive','getOpenContacts','getVoiceQueues','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','crypto','jsforce','querystring','papaparse','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','index','CmHopper','model','keys','dateStart','query','dateEnd','filters','intersection','concat','$and','$or','$gt','$gte','$lt','$ne','$eq','$not','$between','$notBetween','$notIn','$like','$iLike','$notILike','$overlap','$contains','$any','fields','attributes','hasOwnProperty','order','sort','where','pick','day','add','filter','merge','map','options','includeAll','findAll','rows','rawAttributes','length','include','find','create','body','params','catch','destroy','VoiceQueueId','VoiceQueue','CampaignId','createdAt','updatedAt','state','statedesc','deleted','campaign','user','UserId','format','calleridnum','campaigntype','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','outbound','preview','dialOrderByScheduledAt','sequelize','YYYY-MM-DD\x20HH:mm:ss','direction'];(function(_0x5c5c52,_0x36d085){var _0x4229ff=function(_0x3806df){while(--_0x3806df){_0x5c5c52['push'](_0x5c5c52['shift']());}};_0x4229ff(++_0x36d085);}(_0x2fb6,0x1c6));var _0x62fb=function(_0x58af8c,_0x1dac8f){_0x58af8c=_0x58af8c-0x0;var _0x59551c=_0x2fb6[_0x58af8c];return _0x59551c;};'use strict';var pdf=require(_0x62fb('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x62fb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x62fb('0x2'));var rp=require(_0x62fb('0x3'));var moment=require(_0x62fb('0x4'));var BPromise=require(_0x62fb('0x5'));var Mustache=require('mustache');var util=require(_0x62fb('0x6'));var path=require(_0x62fb('0x7'));var sox=require(_0x62fb('0x8'));var csv=require(_0x62fb('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x62fb('0xa'));var squel=require('squel');var crypto=require(_0x62fb('0xb'));var jsforce=require(_0x62fb('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x62fb('0x9'));var querystring=require(_0x62fb('0xd'));var Papa=require(_0x62fb('0xe'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x62fb('0xf'))(_0x62fb('0x10'));var utils=require(_0x62fb('0x11'));var config=require('../../config/environment');var db=require(_0x62fb('0x12'))['db'];function respondWithStatusCode(_0x58558f,_0x143895){_0x143895=_0x143895||0xcc;return function(_0x36e793){if(_0x36e793){return _0x58558f[_0x62fb('0x13')](_0x143895);}return _0x58558f[_0x62fb('0x14')](_0x143895)[_0x62fb('0x15')]();};}function respondWithResult(_0x3fc9c1,_0x5614d6){_0x5614d6=_0x5614d6||0xc8;return function(_0x488b9b){if(_0x488b9b){return _0x3fc9c1[_0x62fb('0x14')](_0x5614d6)['json'](_0x488b9b);}};}function respondWithFilteredResult(_0x489cf7,_0x201d8d){return function(_0x1dbea2){if(_0x1dbea2){var _0xdc152e=_0x1dbea2[_0x62fb('0x16')],_0x58afe9=_0x201d8d['offset'],_0x10bed5=_0x201d8d[_0x62fb('0x17')]+_0x201d8d[_0x62fb('0x18')],_0x25ffc9;if(_0x10bed5>=_0xdc152e){_0x10bed5=_0xdc152e;_0x25ffc9=0xc8;}else{_0x25ffc9=0xce;}_0x489cf7[_0x62fb('0x14')](_0x25ffc9);return _0x489cf7[_0x62fb('0x19')](_0x62fb('0x1a'),_0x58afe9+'-'+_0x10bed5+'/'+_0xdc152e)[_0x62fb('0x1b')](_0x1dbea2);}return null;};}function patchUpdates(_0xc4950a){return function(_0x7d66){try{jsonpatch[_0x62fb('0x1c')](_0x7d66,_0xc4950a,!![]);}catch(_0x26c3f1){return BPromise[_0x62fb('0x1d')](_0x26c3f1);}return _0x7d66[_0x62fb('0x1e')]();};}function saveUpdates(_0x17518c,_0x3d6a09){return function(_0x2fc90d){if(_0x2fc90d){return _0x2fc90d[_0x62fb('0x1f')](_0x17518c)[_0x62fb('0x20')](function(_0x50c967){return _0x50c967;});}return null;};}function removeEntity(_0x20dd7f,_0x40c31a){return function(_0x941ed5){if(_0x941ed5){return _0x941ed5['destroy']()[_0x62fb('0x20')](function(){_0x20dd7f[_0x62fb('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e77ce,_0x143775){return function(_0xd77cd9){if(!_0xd77cd9){_0x4e77ce[_0x62fb('0x13')](0x194);}return _0xd77cd9;};}function handleError(_0x33b43d,_0x398991){_0x398991=_0x398991||0x1f4;return function(_0x2942a3){logger[_0x62fb('0x21')](_0x2942a3[_0x62fb('0x22')]);if(_0x2942a3[_0x62fb('0x23')]){delete _0x2942a3[_0x62fb('0x23')];}_0x33b43d[_0x62fb('0x14')](_0x398991)[_0x62fb('0x24')](_0x2942a3);};}exports[_0x62fb('0x25')]=function(_0x354d6c,_0x2882f2){var _0x530349={},_0x26a037={},_0x25ffd0={'count':0x0,'rows':[]};var _0x598365=db[_0x62fb('0x26')]['rawAttributes'];_0x26a037[_0x62fb('0x27')]=_[_0x62fb('0x28')](_0x598365);var _0x48bd1e={'dateStart':_0x354d6c['query'][_0x62fb('0x29')],'dateEnd':_0x354d6c[_0x62fb('0x2a')]['dateEnd']};delete _0x354d6c[_0x62fb('0x2a')]['dateStart'];delete _0x354d6c[_0x62fb('0x2a')][_0x62fb('0x2b')];_0x26a037[_0x62fb('0x2a')]=_[_0x62fb('0x28')](_0x354d6c[_0x62fb('0x2a')]);_0x26a037[_0x62fb('0x2c')]=_[_0x62fb('0x2d')](_0x26a037[_0x62fb('0x27')],_0x26a037[_0x62fb('0x2a')]);_0x26a037[_0x62fb('0x2c')]=_[_0x62fb('0x2e')](_0x26a037['filters'],[_0x62fb('0x2f'),_0x62fb('0x30'),_0x62fb('0x31'),_0x62fb('0x32'),_0x62fb('0x33'),'$lte',_0x62fb('0x34'),_0x62fb('0x35'),_0x62fb('0x36'),_0x62fb('0x37'),_0x62fb('0x38'),'$in',_0x62fb('0x39'),_0x62fb('0x3a'),'$notLike',_0x62fb('0x3b'),_0x62fb('0x3c'),_0x62fb('0x3a'),_0x62fb('0x3d'),_0x62fb('0x3e'),'$contained',_0x62fb('0x3f')]);_0x530349['attributes']=_[_0x62fb('0x2d')](_0x26a037[_0x62fb('0x27')],qs[_0x62fb('0x40')](_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x40')]));_0x530349[_0x62fb('0x41')]=_0x530349[_0x62fb('0x41')]['length']?_0x530349['attributes']:_0x26a037[_0x62fb('0x27')];if(!_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x42')]('nolimit')){_0x530349[_0x62fb('0x18')]=qs[_0x62fb('0x18')](_0x354d6c['query'][_0x62fb('0x18')]);_0x530349[_0x62fb('0x17')]=qs[_0x62fb('0x17')](_0x354d6c[_0x62fb('0x2a')]['offset']);}_0x530349[_0x62fb('0x43')]=qs[_0x62fb('0x44')](_0x354d6c[_0x62fb('0x2a')]['sort']);_0x530349[_0x62fb('0x45')]=qs[_0x62fb('0x2c')](_[_0x62fb('0x46')](_0x354d6c[_0x62fb('0x2a')],_0x26a037['filters']));if(_0x48bd1e[_0x62fb('0x29')]){if(_0x48bd1e[_0x62fb('0x2b')]){_0x48bd1e[_0x62fb('0x2b')]=moment(_0x48bd1e[_0x62fb('0x2b')])['add'](0x1,_0x62fb('0x47'));}else{_0x48bd1e[_0x62fb('0x2b')]=moment(_0x48bd1e[_0x62fb('0x29')])[_0x62fb('0x48')](0x1,_0x62fb('0x47'));}_['merge'](_0x530349[_0x62fb('0x45')],{'createdAt':{'$gte':_0x48bd1e[_0x62fb('0x29')],'$lte':_0x48bd1e['dateEnd']}});}if(_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x49')]){_0x530349[_0x62fb('0x45')]=_[_0x62fb('0x4a')](_0x530349[_0x62fb('0x45')],{'$or':_[_0x62fb('0x4b')](_0x530349[_0x62fb('0x41')],function(_0x397cc7){var _0x21c758={};_0x21c758[_0x397cc7]={'$like':'%'+_0x354d6c['query'][_0x62fb('0x49')]+'%'};return _0x21c758;})});}_0x530349=_['merge']({},_0x530349,_0x354d6c[_0x62fb('0x4c')]);var _0x1f21cb={'where':_0x530349['where']};return db[_0x62fb('0x26')][_0x62fb('0x16')](_0x1f21cb)[_0x62fb('0x20')](function(_0x57c173){_0x25ffd0[_0x62fb('0x16')]=_0x57c173;if(_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x4d')]){_0x530349['include']=[{'all':!![]}];}return db['CmHopper'][_0x62fb('0x4e')](_0x530349);})[_0x62fb('0x20')](function(_0x457293){_0x25ffd0[_0x62fb('0x4f')]=_0x457293;return _0x25ffd0;})['then'](respondWithFilteredResult(_0x2882f2,_0x530349))['catch'](handleError(_0x2882f2,null));};exports['show']=function(_0x5f06ac,_0xcd9b8c){var _0x17bf84={'raw':!![],'where':{'id':_0x5f06ac['params']['id']}},_0x5e8fd8={};_0x5e8fd8['model']=_['keys'](db[_0x62fb('0x26')][_0x62fb('0x50')]);_0x5e8fd8['query']=_['keys'](_0x5f06ac[_0x62fb('0x2a')]);_0x5e8fd8[_0x62fb('0x2c')]=_[_0x62fb('0x2d')](_0x5e8fd8[_0x62fb('0x27')],_0x5e8fd8[_0x62fb('0x2a')]);_0x17bf84[_0x62fb('0x41')]=_[_0x62fb('0x2d')](_0x5e8fd8['model'],qs[_0x62fb('0x40')](_0x5f06ac[_0x62fb('0x2a')][_0x62fb('0x40')]));_0x17bf84[_0x62fb('0x41')]=_0x17bf84[_0x62fb('0x41')][_0x62fb('0x51')]?_0x17bf84[_0x62fb('0x41')]:_0x5e8fd8['model'];if(_0x5f06ac[_0x62fb('0x2a')][_0x62fb('0x4d')]){_0x17bf84[_0x62fb('0x52')]=[{'all':!![]}];}_0x17bf84=_['merge']({},_0x17bf84,_0x5f06ac[_0x62fb('0x4c')]);return db[_0x62fb('0x26')][_0x62fb('0x53')](_0x17bf84)['then'](handleEntityNotFound(_0xcd9b8c,null))['then'](respondWithResult(_0xcd9b8c,null))['catch'](handleError(_0xcd9b8c,null));};exports[_0x62fb('0x54')]=function(_0x554026,_0x26727f){return db[_0x62fb('0x26')][_0x62fb('0x54')](_0x554026[_0x62fb('0x55')],{})[_0x62fb('0x20')](respondWithResult(_0x26727f,0xc9))['catch'](handleError(_0x26727f,null));};exports['update']=function(_0x24da12,_0x5c4f3e){if(_0x24da12[_0x62fb('0x55')]['id']){delete _0x24da12['body']['id'];}return db[_0x62fb('0x26')][_0x62fb('0x53')]({'where':{'id':_0x24da12[_0x62fb('0x56')]['id']}})['then'](handleEntityNotFound(_0x5c4f3e,null))[_0x62fb('0x20')](saveUpdates(_0x24da12['body'],null))['then'](respondWithResult(_0x5c4f3e,null))[_0x62fb('0x57')](handleError(_0x5c4f3e,null));};exports['describe']=function(_0x5df2e2,_0x21706d){return db[_0x62fb('0x26')]['describe']()[_0x62fb('0x20')](respondWithResult(_0x21706d,null))['catch'](handleError(_0x21706d,null));};exports[_0x62fb('0x58')]=function(_0x2443d5,_0x3ddc71){var _0x282174;return db['CmHopper'][_0x62fb('0x53')]({'where':{'id':_0x2443d5['params']['id']}})[_0x62fb('0x20')](handleEntityNotFound(_0x3ddc71,null))[_0x62fb('0x20')](function(_0x4ad2e1){if(_0x4ad2e1){return _0x4ad2e1[_0x62fb('0x58')]()[_0x62fb('0x20')](function(_0x189d00){return _0x189d00;});}})['then'](function(_0x1de637){_0x282174=_0x1de637;if(_0x1de637){if(_0x1de637[_0x62fb('0x59')]||_0x1de637['CampaignId']){return db[_0x1de637[_0x62fb('0x59')]?_0x62fb('0x5a'):'Campaign'][_0x62fb('0x53')]({'where':{'id':_0x1de637[_0x62fb('0x59')]?_0x1de637[_0x62fb('0x59')]:_0x1de637[_0x62fb('0x5b')]},'attributes':['id','name'],'raw':!![]});}}})[_0x62fb('0x20')](function(_0x1840c6){var _0x566a7c={};if(_0x1840c6){_[_0x62fb('0x4a')](_0x566a7c,_['omit'](_0x282174['dataValues'],[_0x62fb('0x5c'),_0x62fb('0x5d'),'id']));_0x566a7c[_0x62fb('0x5e')]=0x15;_0x566a7c[_0x62fb('0x5f')]=_0x62fb('0x60');_0x566a7c[_0x62fb('0x61')]=_0x1840c6['name'];_0x566a7c['membername']=_0x2443d5[_0x62fb('0x62')][_0x62fb('0x23')];_0x566a7c[_0x62fb('0x63')]=_0x2443d5[_0x62fb('0x62')]['id'];_0x566a7c[_0x62fb('0x60')]=!![];_0x566a7c['deletedat']=moment()[_0x62fb('0x64')]('YYYY-MM-DD\x20HH:mm:ss');_0x566a7c[_0x62fb('0x65')]=_0x282174['phone'];_0x566a7c[_0x62fb('0x66')]=_0x282174[_0x62fb('0x59')]?'queue':_0x62fb('0x67');return db[_0x62fb('0x68')][_0x62fb('0x53')]({'where':{'id':_0x566a7c[_0x62fb('0x69')]},'attributes':[_0x62fb('0x6a'),_0x62fb('0x6b')]})[_0x62fb('0x20')](function(_0x1ed96f){if(!_[_0x62fb('0x6c')](_0x3ddc71)&&!_[_0x62fb('0x6c')](_0x1ed96f[_0x62fb('0x6a')])){_0x566a7c['calleridname']=_0x1ed96f[_0x62fb('0x6a')];if(!_[_0x62fb('0x6c')](_0x1ed96f[_0x62fb('0x6b')])){_0x566a7c[_0x62fb('0x6d')]+='\x20'+_0x1ed96f[_0x62fb('0x6b')];}}})[_0x62fb('0x6e')](function(){return db[_0x62fb('0x6f')][_0x62fb('0x54')](_0x566a7c);});}})['then'](function(){return _0x3ddc71[_0x62fb('0x14')](0xcc)[_0x62fb('0x15')]();})[_0x62fb('0x57')](handleError(_0x3ddc71,null));};exports['getPreview']=function(_0x3e2650,_0xde92b7,_0x55069c){var _0x265a54=[];return db[_0x62fb('0x68')]['describe']()[_0x62fb('0x20')](function(_0x90b2ae){_0x265a54=_[_0x62fb('0x28')](_0x90b2ae);return _0x3e2650[_0x62fb('0x62')]['getVoiceQueues']({'where':{'type':_0x62fb('0x70'),'dialActive':!![],'dialMethod':_0x62fb('0x71')},'attributes':['id',_0x62fb('0x72')],'raw':!![]});})[_0x62fb('0x20')](function(_0xfa7ffc){if(_0xfa7ffc&&_0xfa7ffc[_0x62fb('0x51')]){return db[_0x62fb('0x73')]['transaction'](function(_0x31aa85){var _0x3c9d75={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x62fb('0x64')](_0x62fb('0x74'))},'VoiceQueueId':{'$in':_['map'](_0xfa7ffc,'id')},'$or':[{'UserId':null},{'UserId':_0x3e2650['user']['id']}]};var _0x1a03bd=[];if(_0x3e2650[_0x62fb('0x55')][_0x62fb('0x75')]&&_0x3e2650[_0x62fb('0x55')][_0x62fb('0x75')]===_0x62fb('0x76')){if(!_['isEmpty'](_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')])){_0x3c9d75['id']={'$in':_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')]};}_0x1a03bd=[['priority',_0x62fb('0x78')],[_0x62fb('0x79'),_0xfa7ffc[0x0][_0x62fb('0x72')]===_0x62fb('0x78')?_0x62fb('0x7a'):_0x62fb('0x78')],db[_0x62fb('0x73')][_0x62fb('0x7b')](_0x62fb('0x7c')),['id','DESC']];}else{if(!_[_0x62fb('0x7d')](_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')])){_0x3c9d75['id']={'$notIn':_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')]};}_0x1a03bd=[[_0x62fb('0x7e'),_0x62fb('0x7a')],[_0x62fb('0x79'),_0xfa7ffc[0x0]['dialOrderByScheduledAt']],db['sequelize'][_0x62fb('0x7b')](_0x62fb('0x7f')),['id',_0x62fb('0x78')]];}return db[_0x62fb('0x26')][_0x62fb('0x80')]({'attributes':['id',_0x62fb('0x81')],'where':_0x3c9d75,'order':_0x1a03bd,'transaction':_0x31aa85,'lock':_0x31aa85[_0x62fb('0x82')][_0x62fb('0x83')],'include':[{'model':db[_0x62fb('0x68')],'as':_0x62fb('0x84'),'attributes':_0x265a54,'include':[{'model':db[_0x62fb('0x85')],'as':_0x62fb('0x86'),'attributes':['id',_0x62fb('0x23')]}]},{'model':db[_0x62fb('0x87')],'as':_0x62fb('0x88'),'attributes':['id',_0x62fb('0x23')]},{'model':db['VoiceQueue'],'as':_0x62fb('0x89'),'attributes':['id',_0x62fb('0x23'),_0x62fb('0x8a')]}]})[_0x62fb('0x20')](function(_0x562506){if(_0x562506){return _0x562506[_0x62fb('0x1f')]({'UserId':_0x3e2650[_0x62fb('0x62')]['id']},{'transaction':_0x31aa85});}});});}})[_0x62fb('0x20')](handleEntityNotFound(_0xde92b7,null))[_0x62fb('0x20')](respondWithResult(_0xde92b7,null))[_0x62fb('0x57')](handleError(_0xde92b7,null));};exports[_0x62fb('0x8b')]=function(_0x49e722,_0x37be8b,_0x1c4187){return _0x49e722[_0x62fb('0x62')][_0x62fb('0x8c')]({'where':{'type':_0x62fb('0x70'),'dialActive':!![],'dialMethod':_0x62fb('0x71')},'attributes':['id'],'raw':!![]})[_0x62fb('0x20')](function(_0x100cfc){if(_0x100cfc&&_0x100cfc[_0x62fb('0x51')]){return db[_0x62fb('0x26')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x62fb('0x64')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x62fb('0x4b')](_0x100cfc,'id')},'$or':[{'UserId':null},{'UserId':_0x49e722[_0x62fb('0x62')]['id']}]}});}return 0x0;})[_0x62fb('0x20')](function(_0x9da759){if(!_[_0x62fb('0x6c')](_0x9da759)&&_['isNumber'](_0x9da759)){return _0x37be8b[_0x62fb('0x14')](0xc8)[_0x62fb('0x1b')]({'contacts':_0x9da759});}else{logger[_0x62fb('0x21')](_0x62fb('0x8d'),_0x62fb('0x8b'),0x194,_0x62fb('0x8e'));_0x37be8b[_0x62fb('0x13')](0x194);}})[_0x62fb('0x57')](handleError(_0x37be8b,null));};