Built motion from commit (unavailable).|2.3.4
[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 _0x3815=['limit','set','Content-Range','json','apply','reject','save','then','destroy','error','stack','name','send','index','CmHopper','rawAttributes','model','query','filters','concat','$and','$or','$gte','$lt','$lte','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$contained','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','field','include','findAll','rows','catch','show','params','keys','intersection','options','find','create','body','describe','VoiceQueueId','CampaignId','Campaign','omit','dataValues','createdAt','state','statedesc','deleted','campaign','membername','user','UserId','format','YYYY-MM-DD\x20HH:mm:ss','phone','campaigntype','queue','ivr','ContactId','firstName','lastName','isNil','calleridname','finally','getPreview','CmContact','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','sequelize','map','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','findOne','scheduledat','LOCK','Contact','CmCompany','Company','CmList','List','VoiceQueue','Queue','dialActive','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','lodash','jsforce','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset'];(function(_0x5df3f5,_0x4cf65e){var _0x1c5b7c=function(_0xc8c045){while(--_0xc8c045){_0x5df3f5['push'](_0x5df3f5['shift']());}};_0x1c5b7c(++_0x4cf65e);}(_0x3815,0x79));var _0x5381=function(_0x446aa1,_0x142a8c){_0x446aa1=_0x446aa1-0x0;var _0x5bebb5=_0x3815[_0x446aa1];return _0x5bebb5;};'use strict';var pdf=require(_0x5381('0x0'));var emlformat=require(_0x5381('0x1'));var rimraf=require(_0x5381('0x2'));var zipdir=require(_0x5381('0x3'));var jsonpatch=require(_0x5381('0x4'));var rp=require(_0x5381('0x5'));var moment=require(_0x5381('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x5381('0x7'));var util=require('util');var path=require(_0x5381('0x8'));var sox=require(_0x5381('0x9'));var csv=require(_0x5381('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x5381('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5381('0xc'));var deskjs=require(_0x5381('0xd'));var toCsv=require(_0x5381('0xa'));var querystring=require('querystring');var Papa=require(_0x5381('0xe'));var authService=require(_0x5381('0xf'));var hardwareService=require(_0x5381('0x10'));var Redis=require('ioredis');var qs=require(_0x5381('0x11'));var logger=require(_0x5381('0x12'))(_0x5381('0x13'));var utils=require(_0x5381('0x14'));var config=require('../../config/environment');var db=require(_0x5381('0x15'))['db'];function respondWithStatusCode(_0x2aa513,_0x4eb361){_0x4eb361=_0x4eb361||0xcc;return function(_0xbc6b9d){if(_0xbc6b9d){return _0x2aa513[_0x5381('0x16')](_0x4eb361);}return _0x2aa513[_0x5381('0x17')](_0x4eb361)[_0x5381('0x18')]();};}function respondWithResult(_0x535c63,_0x523237){_0x523237=_0x523237||0xc8;return function(_0x304720){if(_0x304720){return _0x535c63[_0x5381('0x17')](_0x523237)['json'](_0x304720);}};}function respondWithFilteredResult(_0x794d23,_0x533edb){return function(_0x10e609){if(_0x10e609){var _0x57091f=_0x10e609[_0x5381('0x19')],_0x54fb7b=_0x533edb[_0x5381('0x1a')],_0x56a683=_0x533edb[_0x5381('0x1a')]+_0x533edb[_0x5381('0x1b')],_0x204fec;if(_0x56a683>=_0x57091f){_0x56a683=_0x57091f;_0x204fec=0xc8;}else{_0x204fec=0xce;}_0x794d23[_0x5381('0x17')](_0x204fec);return _0x794d23[_0x5381('0x1c')](_0x5381('0x1d'),_0x54fb7b+'-'+_0x56a683+'/'+_0x57091f)[_0x5381('0x1e')](_0x10e609);}return null;};}function patchUpdates(_0x598bc4){return function(_0x1d94fb){try{jsonpatch[_0x5381('0x1f')](_0x1d94fb,_0x598bc4,!![]);}catch(_0x31cdec){return BPromise[_0x5381('0x20')](_0x31cdec);}return _0x1d94fb[_0x5381('0x21')]();};}function saveUpdates(_0x2795d9,_0x9c498c){return function(_0x1746d0){if(_0x1746d0){return _0x1746d0['update'](_0x2795d9)[_0x5381('0x22')](function(_0x4d0885){return _0x4d0885;});}return null;};}function removeEntity(_0x1e2ab2,_0x416a1c){return function(_0x502c2f){if(_0x502c2f){return _0x502c2f[_0x5381('0x23')]()['then'](function(){_0x1e2ab2[_0x5381('0x17')](0xcc)[_0x5381('0x18')]();});}};}function handleEntityNotFound(_0x3dee60,_0x32caf4){return function(_0x24a3d6){if(!_0x24a3d6){_0x3dee60[_0x5381('0x16')](0x194);}return _0x24a3d6;};}function handleError(_0x5d0a11,_0x4ba0b0){_0x4ba0b0=_0x4ba0b0||0x1f4;return function(_0x349027){logger[_0x5381('0x24')](_0x349027[_0x5381('0x25')]);if(_0x349027[_0x5381('0x26')]){delete _0x349027[_0x5381('0x26')];}_0x5d0a11[_0x5381('0x17')](_0x4ba0b0)[_0x5381('0x27')](_0x349027);};}exports[_0x5381('0x28')]=function(_0x220537,_0x12d8f3){var _0x10adf6={},_0x5cbc3e={},_0x51d278={'count':0x0,'rows':[]};var _0xd3a09=db[_0x5381('0x29')][_0x5381('0x2a')];_0x5cbc3e[_0x5381('0x2b')]=_['keys'](_0xd3a09);_0x5cbc3e[_0x5381('0x2c')]=_['keys'](_0x220537[_0x5381('0x2c')]);_0x5cbc3e[_0x5381('0x2d')]=_['intersection'](_0x5cbc3e['model'],_0x5cbc3e[_0x5381('0x2c')]);_0x5cbc3e['filters']=_[_0x5381('0x2e')](_0x5cbc3e[_0x5381('0x2d')],[_0x5381('0x2f'),_0x5381('0x30'),'$gt',_0x5381('0x31'),_0x5381('0x32'),_0x5381('0x33'),_0x5381('0x34'),'$eq',_0x5381('0x35'),_0x5381('0x36'),_0x5381('0x37'),_0x5381('0x38'),_0x5381('0x39'),_0x5381('0x3a'),_0x5381('0x3b'),_0x5381('0x3c'),_0x5381('0x3d'),_0x5381('0x3a'),_0x5381('0x3e'),_0x5381('0x3f'),_0x5381('0x40'),'$any']);_0x10adf6[_0x5381('0x41')]=_['intersection'](_0x5cbc3e[_0x5381('0x2b')],qs['fields'](_0x220537[_0x5381('0x2c')][_0x5381('0x42')]));_0x10adf6['attributes']=_0x10adf6[_0x5381('0x41')][_0x5381('0x43')]?_0x10adf6[_0x5381('0x41')]:_0x5cbc3e[_0x5381('0x2b')];if(!_0x220537[_0x5381('0x2c')][_0x5381('0x44')](_0x5381('0x45'))){_0x10adf6[_0x5381('0x1b')]=qs['limit'](_0x220537[_0x5381('0x2c')][_0x5381('0x1b')]);_0x10adf6[_0x5381('0x1a')]=qs[_0x5381('0x1a')](_0x220537['query'][_0x5381('0x1a')]);}_0x10adf6[_0x5381('0x46')]=qs['sort'](_0x220537['query'][_0x5381('0x47')]);_0x10adf6['where']=qs[_0x5381('0x2d')](_[_0x5381('0x48')](_0x220537[_0x5381('0x2c')],_0x5cbc3e[_0x5381('0x2d')]));if(_0x220537[_0x5381('0x2c')]['filter']){_0x10adf6[_0x5381('0x49')]=_[_0x5381('0x4a')](_0x10adf6[_0x5381('0x49')],{'$or':_['map'](_0xd3a09,function(_0x564b49){if(_0x564b49['type']['key']!==_0x5381('0x4b')){var _0x1689ac={};_0x1689ac[_0x564b49[_0x5381('0x4c')]]={'$like':'%'+_0x220537['query']['filter']+'%'};return _0x1689ac;}})});}_0x10adf6=_[_0x5381('0x4a')]({},_0x10adf6,_0x220537['options']);var _0x3f8eed={'where':_0x10adf6[_0x5381('0x49')]};return db[_0x5381('0x29')][_0x5381('0x19')](_0x3f8eed)['then'](function(_0x573d9b){_0x51d278[_0x5381('0x19')]=_0x573d9b;if(_0x220537[_0x5381('0x2c')]['includeAll']){_0x10adf6[_0x5381('0x4d')]=[{'all':!![]}];}return db['CmHopper'][_0x5381('0x4e')](_0x10adf6);})[_0x5381('0x22')](function(_0x13af2d){_0x51d278[_0x5381('0x4f')]=_0x13af2d;return _0x51d278;})[_0x5381('0x22')](respondWithFilteredResult(_0x12d8f3,_0x10adf6))[_0x5381('0x50')](handleError(_0x12d8f3,null));};exports[_0x5381('0x51')]=function(_0x28bd4b,_0x38f076){var _0x555cd5={'raw':!![],'where':{'id':_0x28bd4b[_0x5381('0x52')]['id']}},_0x2302d5={};_0x2302d5[_0x5381('0x2b')]=_['keys'](db[_0x5381('0x29')]['rawAttributes']);_0x2302d5[_0x5381('0x2c')]=_[_0x5381('0x53')](_0x28bd4b[_0x5381('0x2c')]);_0x2302d5[_0x5381('0x2d')]=_[_0x5381('0x54')](_0x2302d5[_0x5381('0x2b')],_0x2302d5[_0x5381('0x2c')]);_0x555cd5[_0x5381('0x41')]=_[_0x5381('0x54')](_0x2302d5[_0x5381('0x2b')],qs[_0x5381('0x42')](_0x28bd4b['query'][_0x5381('0x42')]));_0x555cd5[_0x5381('0x41')]=_0x555cd5['attributes']['length']?_0x555cd5['attributes']:_0x2302d5[_0x5381('0x2b')];if(_0x28bd4b[_0x5381('0x2c')]['includeAll']){_0x555cd5[_0x5381('0x4d')]=[{'all':!![]}];}_0x555cd5=_[_0x5381('0x4a')]({},_0x555cd5,_0x28bd4b[_0x5381('0x55')]);return db['CmHopper'][_0x5381('0x56')](_0x555cd5)[_0x5381('0x22')](handleEntityNotFound(_0x38f076,null))[_0x5381('0x22')](respondWithResult(_0x38f076,null))[_0x5381('0x50')](handleError(_0x38f076,null));};exports[_0x5381('0x57')]=function(_0x55edb2,_0x9b8867){return db[_0x5381('0x29')][_0x5381('0x57')](_0x55edb2['body'],{})[_0x5381('0x22')](respondWithResult(_0x9b8867,0xc9))[_0x5381('0x50')](handleError(_0x9b8867,null));};exports['update']=function(_0xbfad59,_0x133589){if(_0xbfad59['body']['id']){delete _0xbfad59[_0x5381('0x58')]['id'];}return db[_0x5381('0x29')]['find']({'where':{'id':_0xbfad59[_0x5381('0x52')]['id']}})[_0x5381('0x22')](handleEntityNotFound(_0x133589,null))[_0x5381('0x22')](saveUpdates(_0xbfad59[_0x5381('0x58')],null))[_0x5381('0x22')](respondWithResult(_0x133589,null))[_0x5381('0x50')](handleError(_0x133589,null));};exports[_0x5381('0x59')]=function(_0x1e9c54,_0x1cc55e){return db['CmHopper'][_0x5381('0x59')]()[_0x5381('0x22')](respondWithResult(_0x1cc55e,null))[_0x5381('0x50')](handleError(_0x1cc55e,null));};exports[_0x5381('0x23')]=function(_0x55627e,_0x425cd6){var _0x36cb68;return db[_0x5381('0x29')][_0x5381('0x56')]({'where':{'id':_0x55627e[_0x5381('0x52')]['id']}})[_0x5381('0x22')](handleEntityNotFound(_0x425cd6,null))[_0x5381('0x22')](function(_0x53b0e0){if(_0x53b0e0){return _0x53b0e0[_0x5381('0x23')]()[_0x5381('0x22')](function(_0x5273f9){return _0x5273f9;});}})['then'](function(_0x3f310d){_0x36cb68=_0x3f310d;if(_0x3f310d){if(_0x3f310d[_0x5381('0x5a')]||_0x3f310d[_0x5381('0x5b')]){return db[_0x3f310d['VoiceQueueId']?'VoiceQueue':_0x5381('0x5c')][_0x5381('0x56')]({'where':{'id':_0x3f310d[_0x5381('0x5a')]?_0x3f310d['VoiceQueueId']:_0x3f310d[_0x5381('0x5b')]},'attributes':['id',_0x5381('0x26')],'raw':!![]});}}})[_0x5381('0x22')](function(_0x57ee6c){var _0x52cc80={};if(_0x57ee6c){_[_0x5381('0x4a')](_0x52cc80,_[_0x5381('0x5d')](_0x36cb68[_0x5381('0x5e')],[_0x5381('0x5f'),'updatedAt','id']));_0x52cc80[_0x5381('0x60')]=0x15;_0x52cc80[_0x5381('0x61')]=_0x5381('0x62');_0x52cc80[_0x5381('0x63')]=_0x57ee6c[_0x5381('0x26')];_0x52cc80[_0x5381('0x64')]=_0x55627e[_0x5381('0x65')][_0x5381('0x26')];_0x52cc80[_0x5381('0x66')]=_0x55627e['user']['id'];_0x52cc80[_0x5381('0x62')]=!![];_0x52cc80['deletedat']=moment()[_0x5381('0x67')](_0x5381('0x68'));_0x52cc80['calleridnum']=_0x36cb68[_0x5381('0x69')];_0x52cc80[_0x5381('0x6a')]=_0x36cb68['VoiceQueueId']?_0x5381('0x6b'):_0x5381('0x6c');return db['CmContact'][_0x5381('0x56')]({'where':{'id':_0x52cc80[_0x5381('0x6d')]},'attributes':[_0x5381('0x6e'),_0x5381('0x6f')]})[_0x5381('0x22')](function(_0x411859){if(!_['isNil'](_0x425cd6)&&!_[_0x5381('0x70')](_0x411859[_0x5381('0x6e')])){_0x52cc80[_0x5381('0x71')]=_0x411859['firstName'];if(!_[_0x5381('0x70')](_0x411859[_0x5381('0x6f')])){_0x52cc80[_0x5381('0x71')]+='\x20'+_0x411859['lastName'];}}})[_0x5381('0x72')](function(){return db['CmHopperFinal'][_0x5381('0x57')](_0x52cc80);});}})[_0x5381('0x22')](function(){return _0x425cd6[_0x5381('0x17')](0xcc)[_0x5381('0x18')]();})[_0x5381('0x50')](handleError(_0x425cd6,null));};exports[_0x5381('0x73')]=function(_0x1440a2,_0x4b47e9,_0x1cb1a6){var _0x14071a=[];return db[_0x5381('0x74')][_0x5381('0x59')]()[_0x5381('0x22')](function(_0x60e073){_0x14071a=_[_0x5381('0x53')](_0x60e073);return _0x1440a2['user'][_0x5381('0x75')]({'where':{'type':_0x5381('0x76'),'dialActive':!![],'dialMethod':_0x5381('0x77')},'attributes':['id',_0x5381('0x78')],'raw':!![]});})['then'](function(_0x2c3f35){if(_0x2c3f35&&_0x2c3f35[_0x5381('0x43')]){return db[_0x5381('0x79')]['transaction'](function(_0x2a2bd1){var _0x8a192a={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x5381('0x67')](_0x5381('0x68'))},'VoiceQueueId':{'$in':_[_0x5381('0x7a')](_0x2c3f35,'id')},'$or':[{'UserId':null},{'UserId':_0x1440a2[_0x5381('0x65')]['id']}]};var _0x422818=[];if(_0x1440a2['body'][_0x5381('0x7b')]&&_0x1440a2['body'][_0x5381('0x7b')]===_0x5381('0x7c')){if(!_[_0x5381('0x7d')](_0x1440a2[_0x5381('0x58')][_0x5381('0x7e')])){_0x8a192a['id']={'$in':_0x1440a2['body'][_0x5381('0x7e')]};}_0x422818=[[_0x5381('0x7f'),_0x5381('0x80')],[_0x5381('0x81'),_0x2c3f35[0x0]['dialOrderByScheduledAt']===_0x5381('0x80')?_0x5381('0x82'):_0x5381('0x80')],db[_0x5381('0x79')][_0x5381('0x83')](_0x5381('0x84')),['id',_0x5381('0x82')]];}else{if(!_['isEmpty'](_0x1440a2['body'][_0x5381('0x7e')])){_0x8a192a['id']={'$notIn':_0x1440a2[_0x5381('0x58')]['hopperIds']};}_0x422818=[[_0x5381('0x7f'),_0x5381('0x82')],[_0x5381('0x81'),_0x2c3f35[0x0][_0x5381('0x78')]],db[_0x5381('0x79')]['literal']('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id',_0x5381('0x80')]];}return db[_0x5381('0x29')][_0x5381('0x85')]({'attributes':['id',_0x5381('0x86')],'where':_0x8a192a,'order':_0x422818,'transaction':_0x2a2bd1,'lock':_0x2a2bd1[_0x5381('0x87')]['UPDATE'],'include':[{'model':db[_0x5381('0x74')],'as':_0x5381('0x88'),'attributes':_0x14071a,'include':[{'model':db[_0x5381('0x89')],'as':_0x5381('0x8a'),'attributes':['id',_0x5381('0x26')]}]},{'model':db[_0x5381('0x8b')],'as':_0x5381('0x8c'),'attributes':['id',_0x5381('0x26')]},{'model':db[_0x5381('0x8d')],'as':_0x5381('0x8e'),'attributes':['id',_0x5381('0x26'),_0x5381('0x8f')]}]})['then'](function(_0x149fb3){if(_0x149fb3){return _0x149fb3['update']({'UserId':_0x1440a2[_0x5381('0x65')]['id']},{'transaction':_0x2a2bd1});}});});}})['then'](handleEntityNotFound(_0x4b47e9,null))[_0x5381('0x22')](respondWithResult(_0x4b47e9,null))[_0x5381('0x50')](handleError(_0x4b47e9,null));};exports[_0x5381('0x90')]=function(_0x1d1293,_0x21a00c,_0x46a0b7){return _0x1d1293[_0x5381('0x65')]['getVoiceQueues']({'where':{'type':_0x5381('0x76'),'dialActive':!![],'dialMethod':_0x5381('0x77')},'attributes':['id'],'raw':!![]})[_0x5381('0x22')](function(_0x533d89){if(_0x533d89&&_0x533d89[_0x5381('0x43')]){return db['CmHopper']['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x5381('0x67')](_0x5381('0x68'))},'VoiceQueueId':{'$in':_[_0x5381('0x7a')](_0x533d89,'id')},'$or':[{'UserId':null},{'UserId':_0x1d1293[_0x5381('0x65')]['id']}]}});}return 0x0;})[_0x5381('0x22')](function(_0x13fb8c){if(!_[_0x5381('0x70')](_0x13fb8c)&&_[_0x5381('0x91')](_0x13fb8c)){return _0x21a00c['status'](0xc8)[_0x5381('0x1e')]({'contacts':_0x13fb8c});}else{logger[_0x5381('0x24')](_0x5381('0x92'),_0x5381('0x90'),0x194,_0x5381('0x93'));_0x21a00c[_0x5381('0x16')](0x194);}})[_0x5381('0x50')](handleError(_0x21a00c,null));};