Built motion from commit (unavailable).|2.5.23
[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 _0xce3a=['keys','filters','intersection','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$in','$notIn','$notLike','$iLike','$notILike','$like','$overlap','$contains','$contained','$any','attributes','model','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','CmHopper','count','findAll','catch','show','params','includeAll','options','find','create','body','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','updatedAt','statedesc','deleted','campaign','user','deletedat','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','ivr','ContactId','firstName','lastName','isNil','calleridname','CmHopperFinal','CmContact','getVoiceQueues','preview','dialOrderByScheduledAt','length','sequelize','transaction','format','direction','prev','isEmpty','hopperIds','scheduledAt','ASC','DESC','priority','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','CmCompany','Company','CmList','List','Queue','dialActive','update','getOpenContacts','outbound','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','sendStatus','end','status','json','offset','limit','set','Content-Range','reject','destroy','then','error','name','send','index','map','fieldName','type','key','query'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xce3a,0x194));var _0xace3=function(_0xe94bcd,_0x20fcee){_0xe94bcd=_0xe94bcd-0x0;var _0x277fa8=_0xce3a[_0xe94bcd];return _0x277fa8;};'use strict';var pdf=require(_0xace3('0x0'));var emlformat=require(_0xace3('0x1'));var rimraf=require(_0xace3('0x2'));var zipdir=require(_0xace3('0x3'));var jsonpatch=require(_0xace3('0x4'));var rp=require(_0xace3('0x5'));var moment=require(_0xace3('0x6'));var BPromise=require(_0xace3('0x7'));var Mustache=require(_0xace3('0x8'));var util=require(_0xace3('0x9'));var path=require(_0xace3('0xa'));var sox=require(_0xace3('0xb'));var csv=require('to-csv');var ejs=require(_0xace3('0xc'));var fs=require('fs');var _=require(_0xace3('0xd'));var squel=require(_0xace3('0xe'));var crypto=require(_0xace3('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xace3('0x10'));var toCsv=require('to-csv');var querystring=require(_0xace3('0x11'));var Papa=require(_0xace3('0x12'));var Redis=require(_0xace3('0x13'));var authService=require(_0xace3('0x14'));var qs=require(_0xace3('0x15'));var as=require(_0xace3('0x16'));var hardwareService=require(_0xace3('0x17'));var logger=require(_0xace3('0x18'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xace3('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4be1f1,_0x3566ad){_0x3566ad=_0x3566ad||0xcc;return function(_0x5ac505){if(_0x5ac505){return _0x4be1f1[_0xace3('0x1a')](_0x3566ad);}return _0x4be1f1['status'](_0x3566ad)[_0xace3('0x1b')]();};}function respondWithResult(_0x19dc11,_0x16ef3e){_0x16ef3e=_0x16ef3e||0xc8;return function(_0x5983b9){if(_0x5983b9){return _0x19dc11[_0xace3('0x1c')](_0x16ef3e)[_0xace3('0x1d')](_0x5983b9);}};}function respondWithFilteredResult(_0x1cfa39,_0x54ec35){return function(_0x51ed6c){if(_0x51ed6c){var _0x1ad5c0=_0x51ed6c['count'],_0x2e48eb=_0x54ec35[_0xace3('0x1e')],_0x3e426b=_0x54ec35[_0xace3('0x1e')]+_0x54ec35[_0xace3('0x1f')],_0x142bb6;if(_0x3e426b>=_0x1ad5c0){_0x3e426b=_0x1ad5c0;_0x142bb6=0xc8;}else{_0x142bb6=0xce;}_0x1cfa39[_0xace3('0x1c')](_0x142bb6);return _0x1cfa39[_0xace3('0x20')](_0xace3('0x21'),_0x2e48eb+'-'+_0x3e426b+'/'+_0x1ad5c0)['json'](_0x51ed6c);}return null;};}function patchUpdates(_0x57d08e){return function(_0x2ee18d){try{jsonpatch['apply'](_0x2ee18d,_0x57d08e,!![]);}catch(_0x1f0c42){return BPromise[_0xace3('0x22')](_0x1f0c42);}return _0x2ee18d['save']();};}function saveUpdates(_0xab91f7,_0x16f406){return function(_0x542c37){if(_0x542c37){return _0x542c37['update'](_0xab91f7)['then'](function(_0x1df41f){return _0x1df41f;});}return null;};}function removeEntity(_0x1ed5fe,_0x3bbe41){return function(_0x34a7a5){if(_0x34a7a5){return _0x34a7a5[_0xace3('0x23')]()[_0xace3('0x24')](function(){_0x1ed5fe[_0xace3('0x1c')](0xcc)[_0xace3('0x1b')]();});}};}function handleEntityNotFound(_0x5a4c02,_0x5980fe){return function(_0x5e9d6a){if(!_0x5e9d6a){_0x5a4c02['sendStatus'](0x194);}return _0x5e9d6a;};}function handleError(_0x46a155,_0x3fadd4){_0x3fadd4=_0x3fadd4||0x1f4;return function(_0x2c137d){logger[_0xace3('0x25')](_0x2c137d['stack']);if(_0x2c137d[_0xace3('0x26')]){delete _0x2c137d[_0xace3('0x26')];}_0x46a155[_0xace3('0x1c')](_0x3fadd4)[_0xace3('0x27')](_0x2c137d);};}exports[_0xace3('0x28')]=function(_0x3d1231,_0x3aabeb){var _0x56c992={},_0x1a1d73={},_0x2f672a={'count':0x0,'rows':[]};var _0x4443b8=_[_0xace3('0x29')](db['CmHopper']['rawAttributes'],function(_0x3b1ad1){return{'name':_0x3b1ad1[_0xace3('0x2a')],'type':_0x3b1ad1[_0xace3('0x2b')][_0xace3('0x2c')]};});_0x1a1d73['model']=_[_0xace3('0x29')](_0x4443b8,_0xace3('0x26'));_0x1a1d73[_0xace3('0x2d')]=_[_0xace3('0x2e')](_0x3d1231[_0xace3('0x2d')]);_0x1a1d73[_0xace3('0x2f')]=_[_0xace3('0x30')](_0x1a1d73['model'],_0x1a1d73['query']);_0x1a1d73[_0xace3('0x2f')]=_[_0xace3('0x31')](_0x1a1d73[_0xace3('0x2f')],[_0xace3('0x32'),_0xace3('0x33'),_0xace3('0x34'),_0xace3('0x35'),_0xace3('0x36'),_0xace3('0x37'),_0xace3('0x38'),_0xace3('0x39'),_0xace3('0x3a'),_0xace3('0x3b'),_0xace3('0x3c'),_0xace3('0x3d'),_0xace3('0x3e'),'$like',_0xace3('0x3f'),_0xace3('0x40'),_0xace3('0x41'),_0xace3('0x42'),_0xace3('0x43'),_0xace3('0x44'),_0xace3('0x45'),_0xace3('0x46')]);_0x56c992[_0xace3('0x47')]=_['intersection'](_0x1a1d73[_0xace3('0x48')],qs[_0xace3('0x49')](_0x3d1231[_0xace3('0x2d')][_0xace3('0x49')]));_0x56c992['attributes']=_0x56c992['attributes']['length']?_0x56c992['attributes']:_0x1a1d73[_0xace3('0x48')];if(!_0x3d1231[_0xace3('0x2d')]['hasOwnProperty'](_0xace3('0x4a'))){_0x56c992['limit']=qs['limit'](_0x3d1231[_0xace3('0x2d')][_0xace3('0x1f')]);_0x56c992[_0xace3('0x1e')]=qs[_0xace3('0x1e')](_0x3d1231['query'][_0xace3('0x1e')]);}_0x56c992[_0xace3('0x4b')]=qs[_0xace3('0x4c')](_0x3d1231['query'][_0xace3('0x4c')]);_0x56c992[_0xace3('0x4d')]=qs[_0xace3('0x2f')](_[_0xace3('0x4e')](_0x3d1231[_0xace3('0x2d')],_0x1a1d73[_0xace3('0x2f')]),_0x4443b8);if(_0x3d1231[_0xace3('0x2d')][_0xace3('0x4f')]){_0x56c992['where']=_[_0xace3('0x50')](_0x56c992[_0xace3('0x4d')],{'$or':_[_0xace3('0x29')](_0x4443b8,function(_0x5be0df){if(_0x5be0df[_0xace3('0x2b')]!==_0xace3('0x51')){var _0x19ef40={};_0x19ef40[_0x5be0df[_0xace3('0x26')]]={'$like':'%'+_0x3d1231[_0xace3('0x2d')]['filter']+'%'};return _0x19ef40;}})});}_0x56c992=_['merge']({},_0x56c992,_0x3d1231['options']);var _0xad4d5e={'where':_0x56c992[_0xace3('0x4d')]};return db[_0xace3('0x52')][_0xace3('0x53')](_0xad4d5e)[_0xace3('0x24')](function(_0x3b8a7d){_0x2f672a[_0xace3('0x53')]=_0x3b8a7d;if(_0x3d1231[_0xace3('0x2d')]['includeAll']){_0x56c992['include']=[{'all':!![]}];}return db[_0xace3('0x52')][_0xace3('0x54')](_0x56c992);})[_0xace3('0x24')](function(_0x567c1c){_0x2f672a['rows']=_0x567c1c;return _0x2f672a;})[_0xace3('0x24')](respondWithFilteredResult(_0x3aabeb,_0x56c992))[_0xace3('0x55')](handleError(_0x3aabeb,null));};exports[_0xace3('0x56')]=function(_0x56ac3e,_0x57808f){var _0x60968f={'raw':!![],'where':{'id':_0x56ac3e[_0xace3('0x57')]['id']}},_0x2a6a0b={};_0x2a6a0b['model']=_[_0xace3('0x2e')](db[_0xace3('0x52')]['rawAttributes']);_0x2a6a0b[_0xace3('0x2d')]=_[_0xace3('0x2e')](_0x56ac3e[_0xace3('0x2d')]);_0x2a6a0b[_0xace3('0x2f')]=_[_0xace3('0x30')](_0x2a6a0b[_0xace3('0x48')],_0x2a6a0b[_0xace3('0x2d')]);_0x60968f[_0xace3('0x47')]=_[_0xace3('0x30')](_0x2a6a0b[_0xace3('0x48')],qs[_0xace3('0x49')](_0x56ac3e['query'][_0xace3('0x49')]));_0x60968f['attributes']=_0x60968f[_0xace3('0x47')]['length']?_0x60968f[_0xace3('0x47')]:_0x2a6a0b['model'];if(_0x56ac3e['query'][_0xace3('0x58')]){_0x60968f['include']=[{'all':!![]}];}_0x60968f=_['merge']({},_0x60968f,_0x56ac3e[_0xace3('0x59')]);return db[_0xace3('0x52')][_0xace3('0x5a')](_0x60968f)[_0xace3('0x24')](handleEntityNotFound(_0x57808f,null))['then'](respondWithResult(_0x57808f,null))[_0xace3('0x55')](handleError(_0x57808f,null));};exports[_0xace3('0x5b')]=function(_0x4b9fb5,_0x558123){return db[_0xace3('0x52')][_0xace3('0x5b')](_0x4b9fb5[_0xace3('0x5c')],{})[_0xace3('0x24')](respondWithResult(_0x558123,0xc9))[_0xace3('0x55')](handleError(_0x558123,null));};exports['update']=function(_0x11d5f5,_0x4f36e4){if(_0x11d5f5[_0xace3('0x5c')]['id']){delete _0x11d5f5[_0xace3('0x5c')]['id'];}return db[_0xace3('0x52')]['find']({'where':{'id':_0x11d5f5['params']['id']}})[_0xace3('0x24')](handleEntityNotFound(_0x4f36e4,null))[_0xace3('0x24')](saveUpdates(_0x11d5f5['body'],null))['then'](respondWithResult(_0x4f36e4,null))[_0xace3('0x55')](handleError(_0x4f36e4,null));};exports[_0xace3('0x5d')]=function(_0x54f10b,_0xc9d9fa){return db[_0xace3('0x52')][_0xace3('0x5d')]()['then'](respondWithResult(_0xc9d9fa,null))['catch'](handleError(_0xc9d9fa,null));};exports[_0xace3('0x23')]=function(_0xf5a4ab,_0x560277){var _0xf63b9b;return db[_0xace3('0x52')][_0xace3('0x5a')]({'where':{'id':_0xf5a4ab[_0xace3('0x57')]['id']}})[_0xace3('0x24')](handleEntityNotFound(_0x560277,null))['then'](function(_0x12271a){if(_0x12271a){return _0x12271a['destroy']()[_0xace3('0x24')](function(_0x3c1408){return _0x3c1408;});}})['then'](function(_0x1b149e){_0xf63b9b=_0x1b149e;if(_0x1b149e){if(_0x1b149e[_0xace3('0x5e')]||_0x1b149e[_0xace3('0x5f')]){return db[_0x1b149e[_0xace3('0x5e')]?_0xace3('0x60'):_0xace3('0x61')]['find']({'where':{'id':_0x1b149e[_0xace3('0x5e')]?_0x1b149e[_0xace3('0x5e')]:_0x1b149e[_0xace3('0x5f')]},'attributes':['id',_0xace3('0x26')],'raw':!![]});}}})['then'](function(_0x5237b0){var _0xda22f0={};if(_0x5237b0){_['merge'](_0xda22f0,_[_0xace3('0x62')](_0xf63b9b[_0xace3('0x63')],[_0xace3('0x64'),_0xace3('0x65'),'id']));_0xda22f0['state']=0x15;_0xda22f0[_0xace3('0x66')]=_0xace3('0x67');_0xda22f0[_0xace3('0x68')]=_0x5237b0[_0xace3('0x26')];_0xda22f0['membername']=_0xf5a4ab['user'][_0xace3('0x26')];_0xda22f0['UserId']=_0xf5a4ab[_0xace3('0x69')]['id'];_0xda22f0[_0xace3('0x67')]=!![];_0xda22f0[_0xace3('0x6a')]=moment()['format'](_0xace3('0x6b'));_0xda22f0[_0xace3('0x6c')]=_0xf63b9b[_0xace3('0x6d')];_0xda22f0['campaigntype']=_0xf63b9b[_0xace3('0x5e')]?'queue':_0xace3('0x6e');return db['CmContact'][_0xace3('0x5a')]({'where':{'id':_0xda22f0[_0xace3('0x6f')]},'attributes':[_0xace3('0x70'),_0xace3('0x71')]})[_0xace3('0x24')](function(_0x445df8){if(!_[_0xace3('0x72')](_0x560277)&&!_[_0xace3('0x72')](_0x445df8[_0xace3('0x70')])){_0xda22f0[_0xace3('0x73')]=_0x445df8[_0xace3('0x70')];if(!_[_0xace3('0x72')](_0x445df8[_0xace3('0x71')])){_0xda22f0[_0xace3('0x73')]+='\x20'+_0x445df8[_0xace3('0x71')];}}})['finally'](function(){return db[_0xace3('0x74')][_0xace3('0x5b')](_0xda22f0);});}})[_0xace3('0x24')](function(){return _0x560277[_0xace3('0x1c')](0xcc)[_0xace3('0x1b')]();})[_0xace3('0x55')](handleError(_0x560277,null));};exports['getPreview']=function(_0x34631e,_0x4e1ddd,_0x30ea0f){var _0x46b99b=[];return db[_0xace3('0x75')]['describe']()[_0xace3('0x24')](function(_0x1ceff7){_0x46b99b=_[_0xace3('0x2e')](_0x1ceff7);return _0x34631e[_0xace3('0x69')][_0xace3('0x76')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0xace3('0x77')},'attributes':['id',_0xace3('0x78')],'raw':!![]});})[_0xace3('0x24')](function(_0x275ec7){if(_0x275ec7&&_0x275ec7[_0xace3('0x79')]){return db[_0xace3('0x7a')][_0xace3('0x7b')](function(_0x179d15){var _0x277a20={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xace3('0x7c')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_['map'](_0x275ec7,'id')},'$or':[{'UserId':null},{'UserId':_0x34631e[_0xace3('0x69')]['id']}]};var _0x4df164=[];if(_0x34631e[_0xace3('0x5c')][_0xace3('0x7d')]&&_0x34631e[_0xace3('0x5c')][_0xace3('0x7d')]===_0xace3('0x7e')){if(!_[_0xace3('0x7f')](_0x34631e[_0xace3('0x5c')][_0xace3('0x80')])){_0x277a20['id']={'$in':_0x34631e[_0xace3('0x5c')][_0xace3('0x80')]};}_0x4df164=[['priority','ASC'],[_0xace3('0x81'),_0x275ec7[0x0][_0xace3('0x78')]===_0xace3('0x82')?_0xace3('0x83'):_0xace3('0x82')],db[_0xace3('0x7a')]['literal']('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0xace3('0x83')]];}else{if(!_[_0xace3('0x7f')](_0x34631e[_0xace3('0x5c')]['hopperIds'])){_0x277a20['id']={'$notIn':_0x34631e[_0xace3('0x5c')]['hopperIds']};}_0x4df164=[[_0xace3('0x84'),_0xace3('0x83')],[_0xace3('0x81'),_0x275ec7[0x0][_0xace3('0x78')]],db[_0xace3('0x7a')][_0xace3('0x85')](_0xace3('0x86')),['id',_0xace3('0x82')]];}return db['CmHopper'][_0xace3('0x87')]({'attributes':['id',_0xace3('0x88')],'where':_0x277a20,'order':_0x4df164,'transaction':_0x179d15,'lock':_0x179d15[_0xace3('0x89')]['UPDATE'],'include':[{'model':db[_0xace3('0x75')],'as':'Contact','attributes':_0x46b99b,'include':[{'model':db[_0xace3('0x8a')],'as':_0xace3('0x8b'),'attributes':['id',_0xace3('0x26')]}]},{'model':db[_0xace3('0x8c')],'as':_0xace3('0x8d'),'attributes':['id',_0xace3('0x26')]},{'model':db[_0xace3('0x60')],'as':_0xace3('0x8e'),'attributes':['id',_0xace3('0x26'),_0xace3('0x8f')]}]})[_0xace3('0x24')](function(_0x2a6b20){if(_0x2a6b20){return _0x2a6b20[_0xace3('0x90')]({'UserId':_0x34631e[_0xace3('0x69')]['id']},{'transaction':_0x179d15});}});});}})[_0xace3('0x24')](handleEntityNotFound(_0x4e1ddd,null))[_0xace3('0x24')](respondWithResult(_0x4e1ddd,null))[_0xace3('0x55')](handleError(_0x4e1ddd,null));};exports[_0xace3('0x91')]=function(_0x2fe364,_0x42a7e5,_0x167179){return _0x2fe364[_0xace3('0x69')][_0xace3('0x76')]({'where':{'type':_0xace3('0x92'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})['then'](function(_0x7090fe){if(_0x7090fe&&_0x7090fe['length']){return db['CmHopper'][_0xace3('0x53')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xace3('0x7c')](_0xace3('0x6b'))},'VoiceQueueId':{'$in':_[_0xace3('0x29')](_0x7090fe,'id')},'$or':[{'UserId':null},{'UserId':_0x2fe364[_0xace3('0x69')]['id']}]}});}return 0x0;})[_0xace3('0x24')](function(_0x139a4e){if(!_['isNil'](_0x139a4e)&&_[_0xace3('0x93')](_0x139a4e)){return _0x42a7e5[_0xace3('0x1c')](0xc8)['json']({'contacts':_0x139a4e});}else{logger[_0xace3('0x25')](_0xace3('0x94'),_0xace3('0x91'),0x194,_0xace3('0x95'));_0x42a7e5['sendStatus'](0x194);}})[_0xace3('0x55')](handleError(_0x42a7e5,null));};