Built motion from commit (unavailable).|2.5.29
[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 _0xb916=['attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','keys','options','body','find','params','describe','VoiceQueueId','VoiceQueue','Campaign','CampaignId','omit','dataValues','createdAt','updatedAt','state','statedesc','campaign','membername','user','UserId','deletedat','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','create','getPreview','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','sequelize','transaction','format','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','LOCK','Contact','CmCompany','CmList','Queue','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../config/logger','../../config/utils','../../config/license/util','status','end','json','offset','count','limit','set','Content-Range','reject','save','update','then','destroy','sendStatus','error','stack','send','index','map','CmHopper','rawAttributes','type','key','model','name','query','filters','$and','$gte','$lt','$ne','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$contains','$any'];(function(_0x10d073,_0x34a8af){var _0x57f47e=function(_0x17eea5){while(--_0x17eea5){_0x10d073['push'](_0x10d073['shift']());}};_0x57f47e(++_0x34a8af);}(_0xb916,0x1f4));var _0x6b91=function(_0x4c1078,_0x279c61){_0x4c1078=_0x4c1078-0x0;var _0x164ffe=_0xb916[_0x4c1078];return _0x164ffe;};'use strict';var emlformat=require(_0x6b91('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6b91('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6b91('0x2'));var moment=require(_0x6b91('0x3'));var BPromise=require(_0x6b91('0x4'));var Mustache=require(_0x6b91('0x5'));var util=require(_0x6b91('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x6b91('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6b91('0x8'));var _=require('lodash');var squel=require(_0x6b91('0x9'));var crypto=require(_0x6b91('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x6b91('0xb'));var toCsv=require(_0x6b91('0x7'));var querystring=require(_0x6b91('0xc'));var Papa=require('papaparse');var Redis=require(_0x6b91('0xd'));var authService=require(_0x6b91('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x6b91('0xf'))('api');var utils=require(_0x6b91('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0x6b91('0x11'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x46753e,_0x321e91){_0x321e91=_0x321e91||0xcc;return function(_0x140337){if(_0x140337){return _0x46753e['sendStatus'](_0x321e91);}return _0x46753e[_0x6b91('0x12')](_0x321e91)[_0x6b91('0x13')]();};}function respondWithResult(_0x5c4a83,_0x1bad7f){_0x1bad7f=_0x1bad7f||0xc8;return function(_0x553c78){if(_0x553c78){return _0x5c4a83[_0x6b91('0x12')](_0x1bad7f)[_0x6b91('0x14')](_0x553c78);}};}function respondWithFilteredResult(_0x4297b5,_0x465622){return function(_0x404107){if(_0x404107){var _0x146cd7=typeof _0x465622[_0x6b91('0x15')]==='undefined'&&typeof _0x465622['limit']==='undefined';var _0x4891d1=_0x404107['count'];var _0x19910=_0x146cd7?0x0:_0x465622[_0x6b91('0x15')];var _0x115142=_0x146cd7?_0x404107[_0x6b91('0x16')]:_0x465622[_0x6b91('0x15')]+_0x465622[_0x6b91('0x17')];var _0x4942ec;if(_0x115142>=_0x4891d1){_0x115142=_0x4891d1;_0x4942ec=0xc8;}else{_0x4942ec=0xce;}_0x4297b5[_0x6b91('0x12')](_0x4942ec);return _0x4297b5[_0x6b91('0x18')](_0x6b91('0x19'),_0x19910+'-'+_0x115142+'/'+_0x4891d1)[_0x6b91('0x14')](_0x404107);}return null;};}function patchUpdates(_0x172d11){return function(_0x45d415){try{jsonpatch['apply'](_0x45d415,_0x172d11,!![]);}catch(_0x3d7dbd){return BPromise[_0x6b91('0x1a')](_0x3d7dbd);}return _0x45d415[_0x6b91('0x1b')]();};}function saveUpdates(_0x88aa6b,_0x1c081b){return function(_0xc04afe){if(_0xc04afe){return _0xc04afe[_0x6b91('0x1c')](_0x88aa6b)[_0x6b91('0x1d')](function(_0x273994){return _0x273994;});}return null;};}function removeEntity(_0x1ec56a,_0x703131){return function(_0x4a7bd8){if(_0x4a7bd8){return _0x4a7bd8[_0x6b91('0x1e')]()['then'](function(){_0x1ec56a[_0x6b91('0x12')](0xcc)[_0x6b91('0x13')]();});}};}function handleEntityNotFound(_0x657344,_0x4170bc){return function(_0x4210ab){if(!_0x4210ab){_0x657344[_0x6b91('0x1f')](0x194);}return _0x4210ab;};}function handleError(_0x4f1d1a,_0x7204b8){_0x7204b8=_0x7204b8||0x1f4;return function(_0x284533){logger[_0x6b91('0x20')](_0x284533[_0x6b91('0x21')]);if(_0x284533['name']){delete _0x284533['name'];}_0x4f1d1a[_0x6b91('0x12')](_0x7204b8)[_0x6b91('0x22')](_0x284533);};}exports[_0x6b91('0x23')]=function(_0x439a86,_0x4524f8){var _0x5afd64={},_0x329435={},_0x3e013e={'count':0x0,'rows':[]};var _0x4d0194=_[_0x6b91('0x24')](db[_0x6b91('0x25')][_0x6b91('0x26')],function(_0x2f0f97){return{'name':_0x2f0f97['fieldName'],'type':_0x2f0f97[_0x6b91('0x27')][_0x6b91('0x28')]};});_0x329435[_0x6b91('0x29')]=_[_0x6b91('0x24')](_0x4d0194,_0x6b91('0x2a'));_0x329435[_0x6b91('0x2b')]=_['keys'](_0x439a86[_0x6b91('0x2b')]);_0x329435[_0x6b91('0x2c')]=_['intersection'](_0x329435['model'],_0x329435[_0x6b91('0x2b')]);_0x329435[_0x6b91('0x2c')]=_['concat'](_0x329435['filters'],[_0x6b91('0x2d'),'$or','$gt',_0x6b91('0x2e'),_0x6b91('0x2f'),'$lte',_0x6b91('0x30'),'$eq',_0x6b91('0x31'),_0x6b91('0x32'),_0x6b91('0x33'),_0x6b91('0x34'),_0x6b91('0x35'),_0x6b91('0x36'),_0x6b91('0x37'),_0x6b91('0x38'),_0x6b91('0x39'),_0x6b91('0x36'),'$overlap',_0x6b91('0x3a'),'$contained',_0x6b91('0x3b')]);_0x5afd64[_0x6b91('0x3c')]=_[_0x6b91('0x3d')](_0x329435[_0x6b91('0x29')],qs[_0x6b91('0x3e')](_0x439a86['query'][_0x6b91('0x3e')]));_0x5afd64[_0x6b91('0x3c')]=_0x5afd64[_0x6b91('0x3c')][_0x6b91('0x3f')]?_0x5afd64[_0x6b91('0x3c')]:_0x329435[_0x6b91('0x29')];if(!_0x439a86[_0x6b91('0x2b')][_0x6b91('0x40')](_0x6b91('0x41'))){_0x5afd64[_0x6b91('0x17')]=qs[_0x6b91('0x17')](_0x439a86[_0x6b91('0x2b')][_0x6b91('0x17')]);_0x5afd64[_0x6b91('0x15')]=qs[_0x6b91('0x15')](_0x439a86[_0x6b91('0x2b')][_0x6b91('0x15')]);}_0x5afd64['order']=qs['sort'](_0x439a86[_0x6b91('0x2b')][_0x6b91('0x42')]);_0x5afd64[_0x6b91('0x43')]=qs[_0x6b91('0x2c')](_[_0x6b91('0x44')](_0x439a86[_0x6b91('0x2b')],_0x329435[_0x6b91('0x2c')]),_0x4d0194);if(_0x439a86[_0x6b91('0x2b')][_0x6b91('0x45')]){_0x5afd64[_0x6b91('0x43')]=_[_0x6b91('0x46')](_0x5afd64[_0x6b91('0x43')],{'$or':_[_0x6b91('0x24')](_0x4d0194,function(_0x91de1b){if(_0x91de1b[_0x6b91('0x27')]!==_0x6b91('0x47')){var _0x366f1f={};_0x366f1f[_0x91de1b[_0x6b91('0x2a')]]={'$like':'%'+_0x439a86[_0x6b91('0x2b')][_0x6b91('0x45')]+'%'};return _0x366f1f;}})});}_0x5afd64=_[_0x6b91('0x46')]({},_0x5afd64,_0x439a86['options']);var _0x1bbdfd={'where':_0x5afd64[_0x6b91('0x43')]};return db['CmHopper'][_0x6b91('0x16')](_0x1bbdfd)[_0x6b91('0x1d')](function(_0x699b83){_0x3e013e[_0x6b91('0x16')]=_0x699b83;if(_0x439a86[_0x6b91('0x2b')][_0x6b91('0x48')]){_0x5afd64[_0x6b91('0x49')]=[{'all':!![]}];}return db[_0x6b91('0x25')][_0x6b91('0x4a')](_0x5afd64);})['then'](function(_0x2600e2){_0x3e013e[_0x6b91('0x4b')]=_0x2600e2;return _0x3e013e;})[_0x6b91('0x1d')](respondWithFilteredResult(_0x4524f8,_0x5afd64))[_0x6b91('0x4c')](handleError(_0x4524f8,null));};exports['show']=function(_0x22f73c,_0x4577e2){var _0x255999={'raw':!![],'where':{'id':_0x22f73c['params']['id']}},_0x18e5b4={};_0x18e5b4['model']=_[_0x6b91('0x4d')](db[_0x6b91('0x25')][_0x6b91('0x26')]);_0x18e5b4[_0x6b91('0x2b')]=_[_0x6b91('0x4d')](_0x22f73c[_0x6b91('0x2b')]);_0x18e5b4[_0x6b91('0x2c')]=_[_0x6b91('0x3d')](_0x18e5b4[_0x6b91('0x29')],_0x18e5b4[_0x6b91('0x2b')]);_0x255999['attributes']=_[_0x6b91('0x3d')](_0x18e5b4[_0x6b91('0x29')],qs[_0x6b91('0x3e')](_0x22f73c[_0x6b91('0x2b')][_0x6b91('0x3e')]));_0x255999[_0x6b91('0x3c')]=_0x255999[_0x6b91('0x3c')][_0x6b91('0x3f')]?_0x255999[_0x6b91('0x3c')]:_0x18e5b4[_0x6b91('0x29')];if(_0x22f73c[_0x6b91('0x2b')]['includeAll']){_0x255999[_0x6b91('0x49')]=[{'all':!![]}];}_0x255999=_[_0x6b91('0x46')]({},_0x255999,_0x22f73c[_0x6b91('0x4e')]);return db['CmHopper']['find'](_0x255999)[_0x6b91('0x1d')](handleEntityNotFound(_0x4577e2,null))[_0x6b91('0x1d')](respondWithResult(_0x4577e2,null))[_0x6b91('0x4c')](handleError(_0x4577e2,null));};exports['create']=function(_0x24aa63,_0x1fcfd0){return db[_0x6b91('0x25')]['create'](_0x24aa63[_0x6b91('0x4f')],{})[_0x6b91('0x1d')](respondWithResult(_0x1fcfd0,0xc9))[_0x6b91('0x4c')](handleError(_0x1fcfd0,null));};exports[_0x6b91('0x1c')]=function(_0x58e5b3,_0x16f5b8){if(_0x58e5b3[_0x6b91('0x4f')]['id']){delete _0x58e5b3[_0x6b91('0x4f')]['id'];}return db[_0x6b91('0x25')][_0x6b91('0x50')]({'where':{'id':_0x58e5b3[_0x6b91('0x51')]['id']}})[_0x6b91('0x1d')](handleEntityNotFound(_0x16f5b8,null))['then'](saveUpdates(_0x58e5b3['body'],null))[_0x6b91('0x1d')](respondWithResult(_0x16f5b8,null))[_0x6b91('0x4c')](handleError(_0x16f5b8,null));};exports['describe']=function(_0x389cd6,_0xa9b5d7){return db[_0x6b91('0x25')][_0x6b91('0x52')]()[_0x6b91('0x1d')](respondWithResult(_0xa9b5d7,null))['catch'](handleError(_0xa9b5d7,null));};exports[_0x6b91('0x1e')]=function(_0x2ddfe1,_0x5d1083){var _0x50f7a6;return db[_0x6b91('0x25')][_0x6b91('0x50')]({'where':{'id':_0x2ddfe1[_0x6b91('0x51')]['id']}})[_0x6b91('0x1d')](handleEntityNotFound(_0x5d1083,null))[_0x6b91('0x1d')](function(_0x475d55){if(_0x475d55){return _0x475d55[_0x6b91('0x1e')]()[_0x6b91('0x1d')](function(_0x1856fd){return _0x1856fd;});}})['then'](function(_0x46529d){_0x50f7a6=_0x46529d;if(_0x46529d){if(_0x46529d[_0x6b91('0x53')]||_0x46529d['CampaignId']){return db[_0x46529d['VoiceQueueId']?_0x6b91('0x54'):_0x6b91('0x55')][_0x6b91('0x50')]({'where':{'id':_0x46529d['VoiceQueueId']?_0x46529d[_0x6b91('0x53')]:_0x46529d[_0x6b91('0x56')]},'attributes':['id','name'],'raw':!![]});}}})[_0x6b91('0x1d')](function(_0x46c68c){var _0x1c06a0={};if(_0x46c68c){_[_0x6b91('0x46')](_0x1c06a0,_[_0x6b91('0x57')](_0x50f7a6[_0x6b91('0x58')],[_0x6b91('0x59'),_0x6b91('0x5a'),'id']));_0x1c06a0[_0x6b91('0x5b')]=0x15;_0x1c06a0[_0x6b91('0x5c')]='deleted';_0x1c06a0[_0x6b91('0x5d')]=_0x46c68c[_0x6b91('0x2a')];_0x1c06a0[_0x6b91('0x5e')]=_0x2ddfe1[_0x6b91('0x5f')][_0x6b91('0x2a')];_0x1c06a0[_0x6b91('0x60')]=_0x2ddfe1[_0x6b91('0x5f')]['id'];_0x1c06a0['deleted']=!![];_0x1c06a0[_0x6b91('0x61')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x1c06a0[_0x6b91('0x62')]=_0x50f7a6[_0x6b91('0x63')];_0x1c06a0[_0x6b91('0x64')]=_0x50f7a6[_0x6b91('0x53')]?_0x6b91('0x65'):_0x6b91('0x66');return db[_0x6b91('0x67')][_0x6b91('0x50')]({'where':{'id':_0x1c06a0[_0x6b91('0x68')]},'attributes':[_0x6b91('0x69'),_0x6b91('0x6a')]})[_0x6b91('0x1d')](function(_0x29b314){if(!_[_0x6b91('0x6b')](_0x5d1083)&&!_[_0x6b91('0x6b')](_0x29b314['firstName'])){_0x1c06a0[_0x6b91('0x6c')]=_0x29b314['firstName'];if(!_[_0x6b91('0x6b')](_0x29b314['lastName'])){_0x1c06a0['calleridname']+='\x20'+_0x29b314[_0x6b91('0x6a')];}}})[_0x6b91('0x6d')](function(){return db[_0x6b91('0x6e')][_0x6b91('0x6f')](_0x1c06a0);});}})[_0x6b91('0x1d')](function(){return _0x5d1083['status'](0xcc)[_0x6b91('0x13')]();})['catch'](handleError(_0x5d1083,null));};exports[_0x6b91('0x70')]=function(_0x138a4d,_0x2fdc4c,_0x4541c3){var _0x124ae2=[];return db[_0x6b91('0x67')][_0x6b91('0x52')]()[_0x6b91('0x1d')](function(_0x4e8108){_0x124ae2=_[_0x6b91('0x4d')](_0x4e8108);return _0x138a4d[_0x6b91('0x5f')][_0x6b91('0x71')]({'where':{'type':_0x6b91('0x72'),'dialActive':!![],'dialMethod':_0x6b91('0x73')},'attributes':['id',_0x6b91('0x74')],'raw':!![]});})[_0x6b91('0x1d')](function(_0x5156b4){if(_0x5156b4&&_0x5156b4[_0x6b91('0x3f')]){return db[_0x6b91('0x75')][_0x6b91('0x76')](function(_0x2804ad){var _0x2d77d7={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x6b91('0x77')](_0x6b91('0x78'))},'VoiceQueueId':{'$in':_[_0x6b91('0x24')](_0x5156b4,'id')},'$or':[{'UserId':null},{'UserId':_0x138a4d['user']['id']}]};var _0x3b10bc=[];if(_0x138a4d[_0x6b91('0x4f')][_0x6b91('0x79')]&&_0x138a4d['body'][_0x6b91('0x79')]===_0x6b91('0x7a')){if(!_[_0x6b91('0x7b')](_0x138a4d[_0x6b91('0x4f')][_0x6b91('0x7c')])){_0x2d77d7['id']={'$in':_0x138a4d[_0x6b91('0x4f')][_0x6b91('0x7c')]};}_0x3b10bc=[[_0x6b91('0x7d'),_0x6b91('0x7e')],[_0x6b91('0x7f'),_0x5156b4[0x0]['dialOrderByScheduledAt']==='ASC'?_0x6b91('0x80'):'ASC'],db['sequelize'][_0x6b91('0x81')](_0x6b91('0x82')),['id','DESC']];}else{if(!_[_0x6b91('0x7b')](_0x138a4d[_0x6b91('0x4f')][_0x6b91('0x7c')])){_0x2d77d7['id']={'$notIn':_0x138a4d[_0x6b91('0x4f')][_0x6b91('0x7c')]};}_0x3b10bc=[[_0x6b91('0x7d'),_0x6b91('0x80')],[_0x6b91('0x7f'),_0x5156b4[0x0][_0x6b91('0x74')]],db['sequelize'][_0x6b91('0x81')]('COALESCE(CmHopper.UserId,\x200)\x20DESC'),['id',_0x6b91('0x7e')]];}return db['CmHopper']['findOne']({'attributes':['id','scheduledat'],'where':_0x2d77d7,'order':_0x3b10bc,'transaction':_0x2804ad,'lock':_0x2804ad[_0x6b91('0x83')]['UPDATE'],'include':[{'model':db[_0x6b91('0x67')],'as':_0x6b91('0x84'),'attributes':_0x124ae2,'include':[{'model':db[_0x6b91('0x85')],'as':'Company','attributes':['id',_0x6b91('0x2a')]}]},{'model':db[_0x6b91('0x86')],'as':'List','attributes':['id','name']},{'model':db[_0x6b91('0x54')],'as':_0x6b91('0x87'),'attributes':['id',_0x6b91('0x2a'),'dialActive']}]})['then'](function(_0x2e3238){if(_0x2e3238){return _0x2e3238[_0x6b91('0x1c')]({'UserId':_0x138a4d['user']['id']},{'transaction':_0x2804ad});}});});}})[_0x6b91('0x1d')](handleEntityNotFound(_0x2fdc4c,null))[_0x6b91('0x1d')](respondWithResult(_0x2fdc4c,null))[_0x6b91('0x4c')](handleError(_0x2fdc4c,null));};exports[_0x6b91('0x88')]=function(_0x142d94,_0x3f6c36,_0x4a81c7){return _0x142d94[_0x6b91('0x5f')][_0x6b91('0x71')]({'where':{'type':_0x6b91('0x72'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id'],'raw':!![]})[_0x6b91('0x1d')](function(_0x7936b1){if(_0x7936b1&&_0x7936b1[_0x6b91('0x3f')]){return db[_0x6b91('0x25')][_0x6b91('0x16')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x6b91('0x77')](_0x6b91('0x78'))},'VoiceQueueId':{'$in':_['map'](_0x7936b1,'id')},'$or':[{'UserId':null},{'UserId':_0x142d94[_0x6b91('0x5f')]['id']}]}});}return 0x0;})[_0x6b91('0x1d')](function(_0x25e6e8){if(!_[_0x6b91('0x6b')](_0x25e6e8)&&_[_0x6b91('0x89')](_0x25e6e8)){return _0x3f6c36[_0x6b91('0x12')](0xc8)[_0x6b91('0x14')]({'contacts':_0x25e6e8});}else{logger[_0x6b91('0x20')](_0x6b91('0x8a'),_0x6b91('0x88'),0x194,_0x6b91('0x8b'));_0x3f6c36['sendStatus'](0x194);}})['catch'](handleError(_0x3f6c36,null));};