dc9dfe89db5981d4e3035a02fe281aec3b0d6f4b
[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 _0x8533=['isEmpty','priority','ASC','scheduledAt','sequelize','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','hopperIds','literal','scheduledat','LOCK','UPDATE','Contact','Company','CmList','List','VoiceQueue','Queue','dialActive','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','count','offset','limit','status','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','index','map','CmHopper','rawAttributes','fieldName','type','query','keys','filters','intersection','model','concat','$or','$gte','$lt','$lte','$not','$notBetween','$in','$notIn','$like','$iLike','$notILike','$overlap','$contains','$contained','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','catch','show','params','create','body','find','describe','VoiceQueueId','CampaignId','Campaign','omit','dataValues','createdAt','updatedAt','state','statedesc','campaign','membername','user','deleted','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','ivr','lastName','isNil','firstName','calleridname','finally','CmHopperFinal','getPreview','CmContact','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','transaction','direction','prev'];(function(_0x274638,_0x578968){var _0x5755df=function(_0x3227d5){while(--_0x3227d5){_0x274638['push'](_0x274638['shift']());}};_0x5755df(++_0x578968);}(_0x8533,0x141));var _0x3853=function(_0xb00a50,_0x114be5){_0xb00a50=_0xb00a50-0x0;var _0x1e35d8=_0x8533[_0xb00a50];return _0x1e35d8;};'use strict';var pdf=require(_0x3853('0x0'));var emlformat=require(_0x3853('0x1'));var rimraf=require(_0x3853('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3853('0x3'));var rp=require(_0x3853('0x4'));var moment=require('moment');var BPromise=require(_0x3853('0x5'));var Mustache=require('mustache');var util=require(_0x3853('0x6'));var path=require('path');var sox=require(_0x3853('0x7'));var csv=require(_0x3853('0x8'));var ejs=require(_0x3853('0x9'));var fs=require('fs');var _=require(_0x3853('0xa'));var squel=require('squel');var crypto=require(_0x3853('0xb'));var jsforce=require(_0x3853('0xc'));var deskjs=require(_0x3853('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x3853('0xe'));var Redis=require(_0x3853('0xf'));var authService=require(_0x3853('0x10'));var qs=require(_0x3853('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3853('0x12'));var logger=require(_0x3853('0x13'))(_0x3853('0x14'));var utils=require(_0x3853('0x15'));var config=require(_0x3853('0x16'));var licenseUtil=require(_0x3853('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1ddbfe,_0x1927d8){_0x1927d8=_0x1927d8||0xcc;return function(_0x330363){if(_0x330363){return _0x1ddbfe[_0x3853('0x18')](_0x1927d8);}return _0x1ddbfe['status'](_0x1927d8)[_0x3853('0x19')]();};}function respondWithResult(_0x32ffe1,_0x96cfef){_0x96cfef=_0x96cfef||0xc8;return function(_0x97c5d9){if(_0x97c5d9){return _0x32ffe1['status'](_0x96cfef)['json'](_0x97c5d9);}};}function respondWithFilteredResult(_0x510e99,_0x130b7b){return function(_0x77518){if(_0x77518){var _0x378431=_0x77518[_0x3853('0x1a')],_0x387d3c=_0x130b7b['offset'],_0x42c263=_0x130b7b[_0x3853('0x1b')]+_0x130b7b[_0x3853('0x1c')],_0x59eb33;if(_0x42c263>=_0x378431){_0x42c263=_0x378431;_0x59eb33=0xc8;}else{_0x59eb33=0xce;}_0x510e99[_0x3853('0x1d')](_0x59eb33);return _0x510e99[_0x3853('0x1e')](_0x3853('0x1f'),_0x387d3c+'-'+_0x42c263+'/'+_0x378431)[_0x3853('0x20')](_0x77518);}return null;};}function patchUpdates(_0x485591){return function(_0x5464f3){try{jsonpatch[_0x3853('0x21')](_0x5464f3,_0x485591,!![]);}catch(_0x52cbad){return BPromise[_0x3853('0x22')](_0x52cbad);}return _0x5464f3[_0x3853('0x23')]();};}function saveUpdates(_0x5b211d,_0x24223c){return function(_0x40b1c6){if(_0x40b1c6){return _0x40b1c6[_0x3853('0x24')](_0x5b211d)[_0x3853('0x25')](function(_0x20bbf3){return _0x20bbf3;});}return null;};}function removeEntity(_0x54252e,_0x1140e3){return function(_0x233c9c){if(_0x233c9c){return _0x233c9c[_0x3853('0x26')]()[_0x3853('0x25')](function(){_0x54252e[_0x3853('0x1d')](0xcc)[_0x3853('0x19')]();});}};}function handleEntityNotFound(_0x464fc2,_0x5ea629){return function(_0xb851bb){if(!_0xb851bb){_0x464fc2['sendStatus'](0x194);}return _0xb851bb;};}function handleError(_0x3cdbab,_0x51cc38){_0x51cc38=_0x51cc38||0x1f4;return function(_0x5068fa){logger[_0x3853('0x27')](_0x5068fa[_0x3853('0x28')]);if(_0x5068fa[_0x3853('0x29')]){delete _0x5068fa[_0x3853('0x29')];}_0x3cdbab[_0x3853('0x1d')](_0x51cc38)['send'](_0x5068fa);};}exports[_0x3853('0x2a')]=function(_0x2b6bab,_0x5c0e8e){var _0x23b888={},_0x540736={},_0x47dfcc={'count':0x0,'rows':[]};var _0x4ad20b=_[_0x3853('0x2b')](db[_0x3853('0x2c')][_0x3853('0x2d')],function(_0x50e181){return{'name':_0x50e181[_0x3853('0x2e')],'type':_0x50e181[_0x3853('0x2f')]['key']};});_0x540736['model']=_['map'](_0x4ad20b,_0x3853('0x29'));_0x540736[_0x3853('0x30')]=_[_0x3853('0x31')](_0x2b6bab[_0x3853('0x30')]);_0x540736[_0x3853('0x32')]=_[_0x3853('0x33')](_0x540736[_0x3853('0x34')],_0x540736[_0x3853('0x30')]);_0x540736['filters']=_[_0x3853('0x35')](_0x540736[_0x3853('0x32')],['$and',_0x3853('0x36'),'$gt',_0x3853('0x37'),_0x3853('0x38'),_0x3853('0x39'),'$ne','$eq',_0x3853('0x3a'),'$between',_0x3853('0x3b'),_0x3853('0x3c'),_0x3853('0x3d'),_0x3853('0x3e'),'$notLike',_0x3853('0x3f'),_0x3853('0x40'),_0x3853('0x3e'),_0x3853('0x41'),_0x3853('0x42'),_0x3853('0x43'),'$any']);_0x23b888[_0x3853('0x44')]=_[_0x3853('0x33')](_0x540736[_0x3853('0x34')],qs['fields'](_0x2b6bab[_0x3853('0x30')][_0x3853('0x45')]));_0x23b888['attributes']=_0x23b888[_0x3853('0x44')][_0x3853('0x46')]?_0x23b888['attributes']:_0x540736[_0x3853('0x34')];if(!_0x2b6bab[_0x3853('0x30')][_0x3853('0x47')](_0x3853('0x48'))){_0x23b888[_0x3853('0x1c')]=qs[_0x3853('0x1c')](_0x2b6bab[_0x3853('0x30')]['limit']);_0x23b888[_0x3853('0x1b')]=qs[_0x3853('0x1b')](_0x2b6bab['query'][_0x3853('0x1b')]);}_0x23b888[_0x3853('0x49')]=qs[_0x3853('0x4a')](_0x2b6bab[_0x3853('0x30')][_0x3853('0x4a')]);_0x23b888['where']=qs[_0x3853('0x32')](_[_0x3853('0x4b')](_0x2b6bab[_0x3853('0x30')],_0x540736[_0x3853('0x32')]),_0x4ad20b);if(_0x2b6bab[_0x3853('0x30')][_0x3853('0x4c')]){_0x23b888['where']=_[_0x3853('0x4d')](_0x23b888[_0x3853('0x4e')],{'$or':_[_0x3853('0x2b')](_0x4ad20b,function(_0x4d01a9){if(_0x4d01a9[_0x3853('0x2f')]!==_0x3853('0x4f')){var _0x1bf89c={};_0x1bf89c[_0x4d01a9[_0x3853('0x29')]]={'$like':'%'+_0x2b6bab[_0x3853('0x30')]['filter']+'%'};return _0x1bf89c;}})});}_0x23b888=_[_0x3853('0x4d')]({},_0x23b888,_0x2b6bab[_0x3853('0x50')]);var _0x1ba10a={'where':_0x23b888[_0x3853('0x4e')]};return db['CmHopper'][_0x3853('0x1a')](_0x1ba10a)[_0x3853('0x25')](function(_0x214764){_0x47dfcc[_0x3853('0x1a')]=_0x214764;if(_0x2b6bab[_0x3853('0x30')][_0x3853('0x51')]){_0x23b888[_0x3853('0x52')]=[{'all':!![]}];}return db[_0x3853('0x2c')][_0x3853('0x53')](_0x23b888);})[_0x3853('0x25')](function(_0x373bab){_0x47dfcc['rows']=_0x373bab;return _0x47dfcc;})[_0x3853('0x25')](respondWithFilteredResult(_0x5c0e8e,_0x23b888))[_0x3853('0x54')](handleError(_0x5c0e8e,null));};exports[_0x3853('0x55')]=function(_0x2a669b,_0x4f38a7){var _0x47f1ee={'raw':!![],'where':{'id':_0x2a669b[_0x3853('0x56')]['id']}},_0x35f921={};_0x35f921[_0x3853('0x34')]=_[_0x3853('0x31')](db['CmHopper']['rawAttributes']);_0x35f921[_0x3853('0x30')]=_[_0x3853('0x31')](_0x2a669b['query']);_0x35f921[_0x3853('0x32')]=_[_0x3853('0x33')](_0x35f921[_0x3853('0x34')],_0x35f921['query']);_0x47f1ee[_0x3853('0x44')]=_['intersection'](_0x35f921[_0x3853('0x34')],qs[_0x3853('0x45')](_0x2a669b[_0x3853('0x30')][_0x3853('0x45')]));_0x47f1ee[_0x3853('0x44')]=_0x47f1ee[_0x3853('0x44')][_0x3853('0x46')]?_0x47f1ee['attributes']:_0x35f921[_0x3853('0x34')];if(_0x2a669b[_0x3853('0x30')][_0x3853('0x51')]){_0x47f1ee[_0x3853('0x52')]=[{'all':!![]}];}_0x47f1ee=_[_0x3853('0x4d')]({},_0x47f1ee,_0x2a669b[_0x3853('0x50')]);return db[_0x3853('0x2c')]['find'](_0x47f1ee)[_0x3853('0x25')](handleEntityNotFound(_0x4f38a7,null))[_0x3853('0x25')](respondWithResult(_0x4f38a7,null))[_0x3853('0x54')](handleError(_0x4f38a7,null));};exports[_0x3853('0x57')]=function(_0x2fe692,_0x5db000){return db[_0x3853('0x2c')]['create'](_0x2fe692[_0x3853('0x58')],{})[_0x3853('0x25')](respondWithResult(_0x5db000,0xc9))[_0x3853('0x54')](handleError(_0x5db000,null));};exports[_0x3853('0x24')]=function(_0x42c196,_0x93bbee){if(_0x42c196[_0x3853('0x58')]['id']){delete _0x42c196[_0x3853('0x58')]['id'];}return db[_0x3853('0x2c')][_0x3853('0x59')]({'where':{'id':_0x42c196[_0x3853('0x56')]['id']}})[_0x3853('0x25')](handleEntityNotFound(_0x93bbee,null))[_0x3853('0x25')](saveUpdates(_0x42c196[_0x3853('0x58')],null))[_0x3853('0x25')](respondWithResult(_0x93bbee,null))['catch'](handleError(_0x93bbee,null));};exports['describe']=function(_0x1268da,_0x2d453b){return db[_0x3853('0x2c')][_0x3853('0x5a')]()[_0x3853('0x25')](respondWithResult(_0x2d453b,null))[_0x3853('0x54')](handleError(_0x2d453b,null));};exports[_0x3853('0x26')]=function(_0x3ae028,_0x2ec836){var _0x195c23;return db[_0x3853('0x2c')][_0x3853('0x59')]({'where':{'id':_0x3ae028[_0x3853('0x56')]['id']}})[_0x3853('0x25')](handleEntityNotFound(_0x2ec836,null))[_0x3853('0x25')](function(_0xea2c43){if(_0xea2c43){return _0xea2c43[_0x3853('0x26')]()[_0x3853('0x25')](function(_0x2877aa){return _0x2877aa;});}})[_0x3853('0x25')](function(_0x4331dd){_0x195c23=_0x4331dd;if(_0x4331dd){if(_0x4331dd[_0x3853('0x5b')]||_0x4331dd[_0x3853('0x5c')]){return db[_0x4331dd[_0x3853('0x5b')]?'VoiceQueue':_0x3853('0x5d')][_0x3853('0x59')]({'where':{'id':_0x4331dd[_0x3853('0x5b')]?_0x4331dd[_0x3853('0x5b')]:_0x4331dd[_0x3853('0x5c')]},'attributes':['id',_0x3853('0x29')],'raw':!![]});}}})[_0x3853('0x25')](function(_0x2740e4){var _0x416ec4={};if(_0x2740e4){_['merge'](_0x416ec4,_[_0x3853('0x5e')](_0x195c23[_0x3853('0x5f')],[_0x3853('0x60'),_0x3853('0x61'),'id']));_0x416ec4[_0x3853('0x62')]=0x15;_0x416ec4[_0x3853('0x63')]='deleted';_0x416ec4[_0x3853('0x64')]=_0x2740e4[_0x3853('0x29')];_0x416ec4[_0x3853('0x65')]=_0x3ae028[_0x3853('0x66')]['name'];_0x416ec4['UserId']=_0x3ae028[_0x3853('0x66')]['id'];_0x416ec4[_0x3853('0x67')]=!![];_0x416ec4[_0x3853('0x68')]=moment()[_0x3853('0x69')](_0x3853('0x6a'));_0x416ec4[_0x3853('0x6b')]=_0x195c23[_0x3853('0x6c')];_0x416ec4[_0x3853('0x6d')]=_0x195c23['VoiceQueueId']?'queue':_0x3853('0x6e');return db['CmContact'][_0x3853('0x59')]({'where':{'id':_0x416ec4['ContactId']},'attributes':['firstName',_0x3853('0x6f')]})[_0x3853('0x25')](function(_0x3157d4){if(!_[_0x3853('0x70')](_0x2ec836)&&!_[_0x3853('0x70')](_0x3157d4[_0x3853('0x71')])){_0x416ec4[_0x3853('0x72')]=_0x3157d4['firstName'];if(!_['isNil'](_0x3157d4[_0x3853('0x6f')])){_0x416ec4[_0x3853('0x72')]+='\x20'+_0x3157d4[_0x3853('0x6f')];}}})[_0x3853('0x73')](function(){return db[_0x3853('0x74')][_0x3853('0x57')](_0x416ec4);});}})[_0x3853('0x25')](function(){return _0x2ec836[_0x3853('0x1d')](0xcc)[_0x3853('0x19')]();})[_0x3853('0x54')](handleError(_0x2ec836,null));};exports[_0x3853('0x75')]=function(_0x49c8cb,_0x1e849d,_0xb8ee98){var _0x409ae5=[];return db[_0x3853('0x76')][_0x3853('0x5a')]()['then'](function(_0x50c2aa){_0x409ae5=_['keys'](_0x50c2aa);return _0x49c8cb['user'][_0x3853('0x77')]({'where':{'type':_0x3853('0x78'),'dialActive':!![],'dialMethod':_0x3853('0x79')},'attributes':['id',_0x3853('0x7a')],'raw':!![]});})[_0x3853('0x25')](function(_0x4a400e){if(_0x4a400e&&_0x4a400e[_0x3853('0x46')]){return db['sequelize'][_0x3853('0x7b')](function(_0x1347f5){var _0x4969bf={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x3853('0x69')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x3853('0x2b')](_0x4a400e,'id')},'$or':[{'UserId':null},{'UserId':_0x49c8cb['user']['id']}]};var _0x4fc522=[];if(_0x49c8cb['body'][_0x3853('0x7c')]&&_0x49c8cb[_0x3853('0x58')]['direction']===_0x3853('0x7d')){if(!_[_0x3853('0x7e')](_0x49c8cb['body']['hopperIds'])){_0x4969bf['id']={'$in':_0x49c8cb[_0x3853('0x58')]['hopperIds']};}_0x4fc522=[[_0x3853('0x7f'),_0x3853('0x80')],[_0x3853('0x81'),_0x4a400e[0x0][_0x3853('0x7a')]==='ASC'?'DESC':_0x3853('0x80')],db[_0x3853('0x82')]['literal'](_0x3853('0x83')),['id',_0x3853('0x84')]];}else{if(!_[_0x3853('0x7e')](_0x49c8cb[_0x3853('0x58')][_0x3853('0x85')])){_0x4969bf['id']={'$notIn':_0x49c8cb['body'][_0x3853('0x85')]};}_0x4fc522=[['priority',_0x3853('0x84')],[_0x3853('0x81'),_0x4a400e[0x0][_0x3853('0x7a')]],db['sequelize'][_0x3853('0x86')]('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id',_0x3853('0x80')]];}return db[_0x3853('0x2c')]['findOne']({'attributes':['id',_0x3853('0x87')],'where':_0x4969bf,'order':_0x4fc522,'transaction':_0x1347f5,'lock':_0x1347f5[_0x3853('0x88')][_0x3853('0x89')],'include':[{'model':db[_0x3853('0x76')],'as':_0x3853('0x8a'),'attributes':_0x409ae5,'include':[{'model':db['CmCompany'],'as':_0x3853('0x8b'),'attributes':['id',_0x3853('0x29')]}]},{'model':db[_0x3853('0x8c')],'as':_0x3853('0x8d'),'attributes':['id',_0x3853('0x29')]},{'model':db[_0x3853('0x8e')],'as':_0x3853('0x8f'),'attributes':['id',_0x3853('0x29'),_0x3853('0x90')]}]})[_0x3853('0x25')](function(_0x180f03){if(_0x180f03){return _0x180f03[_0x3853('0x24')]({'UserId':_0x49c8cb[_0x3853('0x66')]['id']},{'transaction':_0x1347f5});}});});}})[_0x3853('0x25')](handleEntityNotFound(_0x1e849d,null))[_0x3853('0x25')](respondWithResult(_0x1e849d,null))['catch'](handleError(_0x1e849d,null));};exports[_0x3853('0x91')]=function(_0x4054d7,_0x5b9db7,_0x4aa8fb){return _0x4054d7[_0x3853('0x66')][_0x3853('0x77')]({'where':{'type':_0x3853('0x78'),'dialActive':!![],'dialMethod':_0x3853('0x79')},'attributes':['id'],'raw':!![]})[_0x3853('0x25')](function(_0x1cd6a3){if(_0x1cd6a3&&_0x1cd6a3['length']){return db[_0x3853('0x2c')][_0x3853('0x1a')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x3853('0x69')](_0x3853('0x6a'))},'VoiceQueueId':{'$in':_[_0x3853('0x2b')](_0x1cd6a3,'id')},'$or':[{'UserId':null},{'UserId':_0x4054d7[_0x3853('0x66')]['id']}]}});}return 0x0;})[_0x3853('0x25')](function(_0x44f03b){if(!_['isNil'](_0x44f03b)&&_[_0x3853('0x92')](_0x44f03b)){return _0x5b9db7['status'](0xc8)['json']({'contacts':_0x44f03b});}else{logger[_0x3853('0x27')](_0x3853('0x93'),_0x3853('0x91'),0x194,_0x3853('0x94'));_0x5b9db7['sendStatus'](0x194);}})[_0x3853('0x54')](handleError(_0x5b9db7,null));};