Built motion from commit (unavailable).|2.5.7
[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 _0x1a5c=['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','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','concat','$and','$or','$gt','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$in','$like','$notLike','$iLike','$notILike','$overlap','$contained','$any','attributes','fields','length','order','sort','where','pick','merge','VIRTUAL','CmHopper','includeAll','include','findAll','catch','show','params','keys','find','create','body','describe','VoiceQueueId','CampaignId','dataValues','createdAt','updatedAt','state','statedesc','deleted','campaign','membername','user','UserId','format','campaigntype','queue','ivr','CmContact','firstName','lastName','isNil','calleridname','finally','getPreview','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','hopperIds','priority','ASC','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','Company','CmList','List','Queue','dialActive','getOpenContacts','isNumber'];(function(_0x394c91,_0x206d6a){var _0x3e4eec=function(_0x32edbf){while(--_0x32edbf){_0x394c91['push'](_0x394c91['shift']());}};_0x3e4eec(++_0x206d6a);}(_0x1a5c,0x12c));var _0xc1a5=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0x1a5c[_0x1ccdf7];return _0x52a0ae;};'use strict';var pdf=require(_0xc1a5('0x0'));var emlformat=require(_0xc1a5('0x1'));var rimraf=require(_0xc1a5('0x2'));var zipdir=require(_0xc1a5('0x3'));var jsonpatch=require(_0xc1a5('0x4'));var rp=require(_0xc1a5('0x5'));var moment=require(_0xc1a5('0x6'));var BPromise=require(_0xc1a5('0x7'));var Mustache=require(_0xc1a5('0x8'));var util=require(_0xc1a5('0x9'));var path=require('path');var sox=require(_0xc1a5('0xa'));var csv=require(_0xc1a5('0xb'));var ejs=require(_0xc1a5('0xc'));var fs=require('fs');var _=require(_0xc1a5('0xd'));var squel=require(_0xc1a5('0xe'));var crypto=require(_0xc1a5('0xf'));var jsforce=require(_0xc1a5('0x10'));var deskjs=require(_0xc1a5('0x11'));var toCsv=require('to-csv');var querystring=require(_0xc1a5('0x12'));var Papa=require(_0xc1a5('0x13'));var Redis=require('ioredis');var authService=require(_0xc1a5('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc1a5('0x15'));var logger=require(_0xc1a5('0x16'))('api');var utils=require(_0xc1a5('0x17'));var config=require(_0xc1a5('0x18'));var licenseUtil=require(_0xc1a5('0x19'));var db=require(_0xc1a5('0x1a'))['db'];function respondWithStatusCode(_0x1fb066,_0x52fe6d){_0x52fe6d=_0x52fe6d||0xcc;return function(_0x428ccf){if(_0x428ccf){return _0x1fb066[_0xc1a5('0x1b')](_0x52fe6d);}return _0x1fb066[_0xc1a5('0x1c')](_0x52fe6d)[_0xc1a5('0x1d')]();};}function respondWithResult(_0x1aec58,_0x1dabb5){_0x1dabb5=_0x1dabb5||0xc8;return function(_0x24e513){if(_0x24e513){return _0x1aec58[_0xc1a5('0x1c')](_0x1dabb5)[_0xc1a5('0x1e')](_0x24e513);}};}function respondWithFilteredResult(_0x4fcced,_0x4b2590){return function(_0x1b2cfb){if(_0x1b2cfb){var _0xfdb88e=_0x1b2cfb[_0xc1a5('0x1f')],_0x677442=_0x4b2590[_0xc1a5('0x20')],_0x57d474=_0x4b2590['offset']+_0x4b2590[_0xc1a5('0x21')],_0x1f23c4;if(_0x57d474>=_0xfdb88e){_0x57d474=_0xfdb88e;_0x1f23c4=0xc8;}else{_0x1f23c4=0xce;}_0x4fcced['status'](_0x1f23c4);return _0x4fcced[_0xc1a5('0x22')](_0xc1a5('0x23'),_0x677442+'-'+_0x57d474+'/'+_0xfdb88e)[_0xc1a5('0x1e')](_0x1b2cfb);}return null;};}function patchUpdates(_0x5d73a7){return function(_0xcbdda5){try{jsonpatch[_0xc1a5('0x24')](_0xcbdda5,_0x5d73a7,!![]);}catch(_0x307e5c){return BPromise[_0xc1a5('0x25')](_0x307e5c);}return _0xcbdda5[_0xc1a5('0x26')]();};}function saveUpdates(_0x1f327c,_0x45a3f5){return function(_0x267ee0){if(_0x267ee0){return _0x267ee0[_0xc1a5('0x27')](_0x1f327c)[_0xc1a5('0x28')](function(_0x5c7b98){return _0x5c7b98;});}return null;};}function removeEntity(_0xb93792,_0x12002d){return function(_0x4b424c){if(_0x4b424c){return _0x4b424c[_0xc1a5('0x29')]()[_0xc1a5('0x28')](function(){_0xb93792[_0xc1a5('0x1c')](0xcc)[_0xc1a5('0x1d')]();});}};}function handleEntityNotFound(_0x232666,_0x2e2351){return function(_0x22e02e){if(!_0x22e02e){_0x232666[_0xc1a5('0x1b')](0x194);}return _0x22e02e;};}function handleError(_0x4ba053,_0x5ab00b){_0x5ab00b=_0x5ab00b||0x1f4;return function(_0x2b19c5){logger[_0xc1a5('0x2a')](_0x2b19c5[_0xc1a5('0x2b')]);if(_0x2b19c5['name']){delete _0x2b19c5[_0xc1a5('0x2c')];}_0x4ba053['status'](_0x5ab00b)['send'](_0x2b19c5);};}exports[_0xc1a5('0x2d')]=function(_0x41f861,_0x20c65b){var _0x33ea9a={},_0x52135a={},_0x47f09f={'count':0x0,'rows':[]};var _0x4f3f99=_[_0xc1a5('0x2e')](db['CmHopper'][_0xc1a5('0x2f')],function(_0x4dc158){return{'name':_0x4dc158[_0xc1a5('0x30')],'type':_0x4dc158[_0xc1a5('0x31')][_0xc1a5('0x32')]};});_0x52135a[_0xc1a5('0x33')]=_['map'](_0x4f3f99,'name');_0x52135a[_0xc1a5('0x34')]=_['keys'](_0x41f861[_0xc1a5('0x34')]);_0x52135a[_0xc1a5('0x35')]=_[_0xc1a5('0x36')](_0x52135a[_0xc1a5('0x33')],_0x52135a['query']);_0x52135a['filters']=_[_0xc1a5('0x37')](_0x52135a[_0xc1a5('0x35')],[_0xc1a5('0x38'),_0xc1a5('0x39'),_0xc1a5('0x3a'),_0xc1a5('0x3b'),_0xc1a5('0x3c'),_0xc1a5('0x3d'),_0xc1a5('0x3e'),_0xc1a5('0x3f'),_0xc1a5('0x40'),_0xc1a5('0x41'),_0xc1a5('0x42'),_0xc1a5('0x43'),'$notIn',_0xc1a5('0x44'),_0xc1a5('0x45'),_0xc1a5('0x46'),_0xc1a5('0x47'),_0xc1a5('0x44'),_0xc1a5('0x48'),'$contains',_0xc1a5('0x49'),_0xc1a5('0x4a')]);_0x33ea9a[_0xc1a5('0x4b')]=_[_0xc1a5('0x36')](_0x52135a['model'],qs[_0xc1a5('0x4c')](_0x41f861[_0xc1a5('0x34')][_0xc1a5('0x4c')]));_0x33ea9a['attributes']=_0x33ea9a['attributes'][_0xc1a5('0x4d')]?_0x33ea9a[_0xc1a5('0x4b')]:_0x52135a['model'];if(!_0x41f861[_0xc1a5('0x34')]['hasOwnProperty']('nolimit')){_0x33ea9a[_0xc1a5('0x21')]=qs[_0xc1a5('0x21')](_0x41f861[_0xc1a5('0x34')][_0xc1a5('0x21')]);_0x33ea9a[_0xc1a5('0x20')]=qs['offset'](_0x41f861[_0xc1a5('0x34')][_0xc1a5('0x20')]);}_0x33ea9a[_0xc1a5('0x4e')]=qs[_0xc1a5('0x4f')](_0x41f861['query'][_0xc1a5('0x4f')]);_0x33ea9a[_0xc1a5('0x50')]=qs[_0xc1a5('0x35')](_[_0xc1a5('0x51')](_0x41f861[_0xc1a5('0x34')],_0x52135a[_0xc1a5('0x35')]),_0x4f3f99);if(_0x41f861[_0xc1a5('0x34')]['filter']){_0x33ea9a['where']=_[_0xc1a5('0x52')](_0x33ea9a[_0xc1a5('0x50')],{'$or':_[_0xc1a5('0x2e')](_0x4f3f99,function(_0x322190){if(_0x322190[_0xc1a5('0x31')]!==_0xc1a5('0x53')){var _0x2f3c62={};_0x2f3c62[_0x322190[_0xc1a5('0x2c')]]={'$like':'%'+_0x41f861['query']['filter']+'%'};return _0x2f3c62;}})});}_0x33ea9a=_['merge']({},_0x33ea9a,_0x41f861['options']);var _0x2aaf8f={'where':_0x33ea9a[_0xc1a5('0x50')]};return db[_0xc1a5('0x54')]['count'](_0x2aaf8f)[_0xc1a5('0x28')](function(_0x5b9b16){_0x47f09f['count']=_0x5b9b16;if(_0x41f861['query'][_0xc1a5('0x55')]){_0x33ea9a[_0xc1a5('0x56')]=[{'all':!![]}];}return db[_0xc1a5('0x54')][_0xc1a5('0x57')](_0x33ea9a);})[_0xc1a5('0x28')](function(_0xf31149){_0x47f09f['rows']=_0xf31149;return _0x47f09f;})[_0xc1a5('0x28')](respondWithFilteredResult(_0x20c65b,_0x33ea9a))[_0xc1a5('0x58')](handleError(_0x20c65b,null));};exports[_0xc1a5('0x59')]=function(_0xf10b3e,_0x1446d2){var _0x171dc5={'raw':!![],'where':{'id':_0xf10b3e[_0xc1a5('0x5a')]['id']}},_0x549a36={};_0x549a36[_0xc1a5('0x33')]=_[_0xc1a5('0x5b')](db[_0xc1a5('0x54')]['rawAttributes']);_0x549a36['query']=_[_0xc1a5('0x5b')](_0xf10b3e['query']);_0x549a36['filters']=_[_0xc1a5('0x36')](_0x549a36[_0xc1a5('0x33')],_0x549a36['query']);_0x171dc5[_0xc1a5('0x4b')]=_[_0xc1a5('0x36')](_0x549a36['model'],qs[_0xc1a5('0x4c')](_0xf10b3e['query'][_0xc1a5('0x4c')]));_0x171dc5[_0xc1a5('0x4b')]=_0x171dc5['attributes'][_0xc1a5('0x4d')]?_0x171dc5[_0xc1a5('0x4b')]:_0x549a36[_0xc1a5('0x33')];if(_0xf10b3e[_0xc1a5('0x34')][_0xc1a5('0x55')]){_0x171dc5[_0xc1a5('0x56')]=[{'all':!![]}];}_0x171dc5=_[_0xc1a5('0x52')]({},_0x171dc5,_0xf10b3e['options']);return db[_0xc1a5('0x54')][_0xc1a5('0x5c')](_0x171dc5)[_0xc1a5('0x28')](handleEntityNotFound(_0x1446d2,null))[_0xc1a5('0x28')](respondWithResult(_0x1446d2,null))[_0xc1a5('0x58')](handleError(_0x1446d2,null));};exports[_0xc1a5('0x5d')]=function(_0x5b2118,_0x2242eb){return db[_0xc1a5('0x54')]['create'](_0x5b2118[_0xc1a5('0x5e')],{})[_0xc1a5('0x28')](respondWithResult(_0x2242eb,0xc9))['catch'](handleError(_0x2242eb,null));};exports[_0xc1a5('0x27')]=function(_0x6ae82a,_0x544e9a){if(_0x6ae82a[_0xc1a5('0x5e')]['id']){delete _0x6ae82a[_0xc1a5('0x5e')]['id'];}return db[_0xc1a5('0x54')][_0xc1a5('0x5c')]({'where':{'id':_0x6ae82a[_0xc1a5('0x5a')]['id']}})[_0xc1a5('0x28')](handleEntityNotFound(_0x544e9a,null))[_0xc1a5('0x28')](saveUpdates(_0x6ae82a['body'],null))[_0xc1a5('0x28')](respondWithResult(_0x544e9a,null))[_0xc1a5('0x58')](handleError(_0x544e9a,null));};exports[_0xc1a5('0x5f')]=function(_0x5d836f,_0x263ccf){return db[_0xc1a5('0x54')]['describe']()[_0xc1a5('0x28')](respondWithResult(_0x263ccf,null))[_0xc1a5('0x58')](handleError(_0x263ccf,null));};exports['destroy']=function(_0x21f1aa,_0x52703c){var _0x28cb9c;return db[_0xc1a5('0x54')][_0xc1a5('0x5c')]({'where':{'id':_0x21f1aa[_0xc1a5('0x5a')]['id']}})[_0xc1a5('0x28')](handleEntityNotFound(_0x52703c,null))[_0xc1a5('0x28')](function(_0x13c127){if(_0x13c127){return _0x13c127['destroy']()['then'](function(_0x5e99a0){return _0x5e99a0;});}})[_0xc1a5('0x28')](function(_0x36f472){_0x28cb9c=_0x36f472;if(_0x36f472){if(_0x36f472[_0xc1a5('0x60')]||_0x36f472['CampaignId']){return db[_0x36f472[_0xc1a5('0x60')]?'VoiceQueue':'Campaign']['find']({'where':{'id':_0x36f472['VoiceQueueId']?_0x36f472[_0xc1a5('0x60')]:_0x36f472[_0xc1a5('0x61')]},'attributes':['id',_0xc1a5('0x2c')],'raw':!![]});}}})[_0xc1a5('0x28')](function(_0x436f1c){var _0x122f84={};if(_0x436f1c){_[_0xc1a5('0x52')](_0x122f84,_['omit'](_0x28cb9c[_0xc1a5('0x62')],[_0xc1a5('0x63'),_0xc1a5('0x64'),'id']));_0x122f84[_0xc1a5('0x65')]=0x15;_0x122f84[_0xc1a5('0x66')]=_0xc1a5('0x67');_0x122f84[_0xc1a5('0x68')]=_0x436f1c[_0xc1a5('0x2c')];_0x122f84[_0xc1a5('0x69')]=_0x21f1aa[_0xc1a5('0x6a')][_0xc1a5('0x2c')];_0x122f84[_0xc1a5('0x6b')]=_0x21f1aa['user']['id'];_0x122f84[_0xc1a5('0x67')]=!![];_0x122f84['deletedat']=moment()[_0xc1a5('0x6c')]('YYYY-MM-DD\x20HH:mm:ss');_0x122f84['calleridnum']=_0x28cb9c['phone'];_0x122f84[_0xc1a5('0x6d')]=_0x28cb9c['VoiceQueueId']?_0xc1a5('0x6e'):_0xc1a5('0x6f');return db[_0xc1a5('0x70')][_0xc1a5('0x5c')]({'where':{'id':_0x122f84['ContactId']},'attributes':[_0xc1a5('0x71'),_0xc1a5('0x72')]})[_0xc1a5('0x28')](function(_0x8742fe){if(!_['isNil'](_0x52703c)&&!_[_0xc1a5('0x73')](_0x8742fe['firstName'])){_0x122f84[_0xc1a5('0x74')]=_0x8742fe[_0xc1a5('0x71')];if(!_[_0xc1a5('0x73')](_0x8742fe[_0xc1a5('0x72')])){_0x122f84[_0xc1a5('0x74')]+='\x20'+_0x8742fe[_0xc1a5('0x72')];}}})[_0xc1a5('0x75')](function(){return db['CmHopperFinal'][_0xc1a5('0x5d')](_0x122f84);});}})[_0xc1a5('0x28')](function(){return _0x52703c[_0xc1a5('0x1c')](0xcc)[_0xc1a5('0x1d')]();})[_0xc1a5('0x58')](handleError(_0x52703c,null));};exports[_0xc1a5('0x76')]=function(_0x231f4b,_0x542625,_0x414155){var _0x23bbf=[];return db[_0xc1a5('0x70')][_0xc1a5('0x5f')]()[_0xc1a5('0x28')](function(_0x99f3f4){_0x23bbf=_[_0xc1a5('0x5b')](_0x99f3f4);return _0x231f4b[_0xc1a5('0x6a')][_0xc1a5('0x77')]({'where':{'type':_0xc1a5('0x78'),'dialActive':!![],'dialMethod':_0xc1a5('0x79')},'attributes':['id',_0xc1a5('0x7a')],'raw':!![]});})[_0xc1a5('0x28')](function(_0x1714cb){if(_0x1714cb&&_0x1714cb[_0xc1a5('0x4d')]){return db[_0xc1a5('0x7b')][_0xc1a5('0x7c')](function(_0x1d33c4){var _0x3500fd={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xc1a5('0x6c')](_0xc1a5('0x7d'))},'VoiceQueueId':{'$in':_[_0xc1a5('0x2e')](_0x1714cb,'id')},'$or':[{'UserId':null},{'UserId':_0x231f4b['user']['id']}]};var _0x11c4a1=[];if(_0x231f4b[_0xc1a5('0x5e')][_0xc1a5('0x7e')]&&_0x231f4b[_0xc1a5('0x5e')]['direction']===_0xc1a5('0x7f')){if(!_[_0xc1a5('0x80')](_0x231f4b[_0xc1a5('0x5e')][_0xc1a5('0x81')])){_0x3500fd['id']={'$in':_0x231f4b[_0xc1a5('0x5e')][_0xc1a5('0x81')]};}_0x11c4a1=[[_0xc1a5('0x82'),_0xc1a5('0x83')],['scheduledAt',_0x1714cb[0x0][_0xc1a5('0x7a')]==='ASC'?_0xc1a5('0x84'):_0xc1a5('0x83')],db[_0xc1a5('0x7b')][_0xc1a5('0x85')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id','DESC']];}else{if(!_[_0xc1a5('0x80')](_0x231f4b[_0xc1a5('0x5e')][_0xc1a5('0x81')])){_0x3500fd['id']={'$notIn':_0x231f4b[_0xc1a5('0x5e')]['hopperIds']};}_0x11c4a1=[[_0xc1a5('0x82'),_0xc1a5('0x84')],['scheduledAt',_0x1714cb[0x0]['dialOrderByScheduledAt']],db[_0xc1a5('0x7b')]['literal'](_0xc1a5('0x86')),['id',_0xc1a5('0x83')]];}return db[_0xc1a5('0x54')][_0xc1a5('0x87')]({'attributes':['id',_0xc1a5('0x88')],'where':_0x3500fd,'order':_0x11c4a1,'transaction':_0x1d33c4,'lock':_0x1d33c4[_0xc1a5('0x89')][_0xc1a5('0x8a')],'include':[{'model':db[_0xc1a5('0x70')],'as':_0xc1a5('0x8b'),'attributes':_0x23bbf,'include':[{'model':db['CmCompany'],'as':_0xc1a5('0x8c'),'attributes':['id','name']}]},{'model':db[_0xc1a5('0x8d')],'as':_0xc1a5('0x8e'),'attributes':['id',_0xc1a5('0x2c')]},{'model':db['VoiceQueue'],'as':_0xc1a5('0x8f'),'attributes':['id','name',_0xc1a5('0x90')]}]})[_0xc1a5('0x28')](function(_0x30f0f2){if(_0x30f0f2){return _0x30f0f2[_0xc1a5('0x27')]({'UserId':_0x231f4b[_0xc1a5('0x6a')]['id']},{'transaction':_0x1d33c4});}});});}})['then'](handleEntityNotFound(_0x542625,null))[_0xc1a5('0x28')](respondWithResult(_0x542625,null))[_0xc1a5('0x58')](handleError(_0x542625,null));};exports[_0xc1a5('0x91')]=function(_0xa15f82,_0x400c9e,_0x59d009){return _0xa15f82[_0xc1a5('0x6a')]['getVoiceQueues']({'where':{'type':_0xc1a5('0x78'),'dialActive':!![],'dialMethod':_0xc1a5('0x79')},'attributes':['id'],'raw':!![]})['then'](function(_0x223868){if(_0x223868&&_0x223868['length']){return db['CmHopper'][_0xc1a5('0x1f')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xc1a5('0x7d'))},'VoiceQueueId':{'$in':_[_0xc1a5('0x2e')](_0x223868,'id')},'$or':[{'UserId':null},{'UserId':_0xa15f82[_0xc1a5('0x6a')]['id']}]}});}return 0x0;})['then'](function(_0x25abc1){if(!_['isNil'](_0x25abc1)&&_[_0xc1a5('0x92')](_0x25abc1)){return _0x400c9e[_0xc1a5('0x1c')](0xc8)[_0xc1a5('0x1e')]({'contacts':_0x25abc1});}else{logger[_0xc1a5('0x2a')](_0xc1a5('0x93'),_0xc1a5('0x91'),0x194,_0xc1a5('0x94'));_0x400c9e[_0xc1a5('0x1b')](0x194);}})[_0xc1a5('0x58')](handleError(_0x400c9e,null));};