Built motion from commit (unavailable).|2.2.0
[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 _0xf40e=['destroy','end','error','stack','name','send','CmHopper','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','concat','$and','$gt','$lt','$eq','$not','$between','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$any','attributes','fields','length','nolimit','order','sort','where','pick','add','day','merge','filter','map','type','key','VIRTUAL','field','options','count','includeAll','include','rows','catch','show','params','find','create','body','describe','CampaignId','VoiceQueue','VoiceQueueId','omit','dataValues','createdAt','state','statedesc','deleted','membername','user','UserId','deletedat','format','phone','campaigntype','queue','CmContact','ContactId','lastName','firstName','isNil','calleridname','finally','preview','dialOrderByScheduledAt','sequelize','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','hopperIds','priority','ASC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','Contact','CmCompany','Company','List','Queue','getOpenContacts','getVoiceQueues','outbound','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','json','offset','limit','Content-Range','apply','reject','save','update','then'];(function(_0x22c725,_0x4882fd){var _0x55a32e=function(_0x2e70d6){while(--_0x2e70d6){_0x22c725['push'](_0x22c725['shift']());}};_0x55a32e(++_0x4882fd);}(_0xf40e,0x70));var _0xef40=function(_0x121a56,_0x13d349){_0x121a56=_0x121a56-0x0;var _0x12d2c4=_0xf40e[_0x121a56];return _0x12d2c4;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xef40('0x0'));var rimraf=require(_0xef40('0x1'));var zipdir=require(_0xef40('0x2'));var jsonpatch=require(_0xef40('0x3'));var rp=require(_0xef40('0x4'));var moment=require(_0xef40('0x5'));var BPromise=require(_0xef40('0x6'));var Mustache=require(_0xef40('0x7'));var util=require(_0xef40('0x8'));var path=require(_0xef40('0x9'));var sox=require(_0xef40('0xa'));var csv=require(_0xef40('0xb'));var ejs=require(_0xef40('0xc'));var fs=require('fs');var _=require(_0xef40('0xd'));var squel=require(_0xef40('0xe'));var crypto=require(_0xef40('0xf'));var jsforce=require(_0xef40('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xef40('0xb'));var querystring=require(_0xef40('0x11'));var Papa=require(_0xef40('0x12'));var Redis=require(_0xef40('0x13'));var qs=require(_0xef40('0x14'));var logger=require(_0xef40('0x15'))('api');var utils=require(_0xef40('0x16'));var config=require(_0xef40('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xc15ef0,_0x22a1eb){_0x22a1eb=_0x22a1eb||0xcc;return function(_0x4ac1ce){if(_0x4ac1ce){return _0xc15ef0[_0xef40('0x18')](_0x22a1eb);}return _0xc15ef0[_0xef40('0x19')](_0x22a1eb)['end']();};}function respondWithResult(_0x2dcdd2,_0x2d8d4d){_0x2d8d4d=_0x2d8d4d||0xc8;return function(_0x536158){if(_0x536158){return _0x2dcdd2[_0xef40('0x19')](_0x2d8d4d)[_0xef40('0x1a')](_0x536158);}};}function respondWithFilteredResult(_0x2f54e4,_0x81e15b){return function(_0xce1dcc){if(_0xce1dcc){var _0x4dfc4f=_0xce1dcc['count'],_0x3551c1=_0x81e15b[_0xef40('0x1b')],_0x2b39bd=_0x81e15b[_0xef40('0x1b')]+_0x81e15b[_0xef40('0x1c')],_0x41d3fa;if(_0x2b39bd>=_0x4dfc4f){_0x2b39bd=_0x4dfc4f;_0x41d3fa=0xc8;}else{_0x41d3fa=0xce;}_0x2f54e4[_0xef40('0x19')](_0x41d3fa);return _0x2f54e4['set'](_0xef40('0x1d'),_0x3551c1+'-'+_0x2b39bd+'/'+_0x4dfc4f)[_0xef40('0x1a')](_0xce1dcc);}return null;};}function patchUpdates(_0x3598df){return function(_0x360204){try{jsonpatch[_0xef40('0x1e')](_0x360204,_0x3598df,!![]);}catch(_0x53c745){return BPromise[_0xef40('0x1f')](_0x53c745);}return _0x360204[_0xef40('0x20')]();};}function saveUpdates(_0x4bc3e6,_0x3c9bad){return function(_0x53587b){if(_0x53587b){return _0x53587b[_0xef40('0x21')](_0x4bc3e6)[_0xef40('0x22')](function(_0x4927c2){return _0x4927c2;});}return null;};}function removeEntity(_0x5afe78,_0x427ffd){return function(_0x42c5ab){if(_0x42c5ab){return _0x42c5ab[_0xef40('0x23')]()['then'](function(){_0x5afe78['status'](0xcc)[_0xef40('0x24')]();});}};}function handleEntityNotFound(_0x1d4fa7,_0x442e52){return function(_0x1fc2e3){if(!_0x1fc2e3){_0x1d4fa7[_0xef40('0x18')](0x194);}return _0x1fc2e3;};}function handleError(_0x1af9f9,_0xdab6c0){_0xdab6c0=_0xdab6c0||0x1f4;return function(_0x440f4a){logger[_0xef40('0x25')](_0x440f4a[_0xef40('0x26')]);if(_0x440f4a[_0xef40('0x27')]){delete _0x440f4a[_0xef40('0x27')];}_0x1af9f9[_0xef40('0x19')](_0xdab6c0)[_0xef40('0x28')](_0x440f4a);};}exports['index']=function(_0x490235,_0x6039eb){var _0x464ec7={},_0x4d7ff7={},_0x21f149={'count':0x0,'rows':[]};var _0x1af801=db[_0xef40('0x29')][_0xef40('0x2a')];_0x4d7ff7[_0xef40('0x2b')]=_['keys'](_0x1af801);var _0x515c7b={'dateStart':_0x490235[_0xef40('0x2c')][_0xef40('0x2d')],'dateEnd':_0x490235[_0xef40('0x2c')][_0xef40('0x2e')]};delete _0x490235[_0xef40('0x2c')]['dateStart'];delete _0x490235[_0xef40('0x2c')][_0xef40('0x2e')];_0x4d7ff7[_0xef40('0x2c')]=_[_0xef40('0x2f')](_0x490235[_0xef40('0x2c')]);_0x4d7ff7[_0xef40('0x30')]=_[_0xef40('0x31')](_0x4d7ff7[_0xef40('0x2b')],_0x4d7ff7[_0xef40('0x2c')]);_0x4d7ff7[_0xef40('0x30')]=_[_0xef40('0x32')](_0x4d7ff7['filters'],[_0xef40('0x33'),'$or',_0xef40('0x34'),'$gte',_0xef40('0x35'),'$lte','$ne',_0xef40('0x36'),_0xef40('0x37'),_0xef40('0x38'),'$notBetween',_0xef40('0x39'),_0xef40('0x3a'),_0xef40('0x3b'),_0xef40('0x3c'),_0xef40('0x3d'),_0xef40('0x3e'),_0xef40('0x3b'),_0xef40('0x3f'),_0xef40('0x40'),'$contained',_0xef40('0x41')]);_0x464ec7[_0xef40('0x42')]=_[_0xef40('0x31')](_0x4d7ff7['model'],qs[_0xef40('0x43')](_0x490235['query']['fields']));_0x464ec7[_0xef40('0x42')]=_0x464ec7[_0xef40('0x42')][_0xef40('0x44')]?_0x464ec7[_0xef40('0x42')]:_0x4d7ff7[_0xef40('0x2b')];if(!_0x490235[_0xef40('0x2c')]['hasOwnProperty'](_0xef40('0x45'))){_0x464ec7[_0xef40('0x1c')]=qs[_0xef40('0x1c')](_0x490235[_0xef40('0x2c')][_0xef40('0x1c')]);_0x464ec7[_0xef40('0x1b')]=qs[_0xef40('0x1b')](_0x490235[_0xef40('0x2c')]['offset']);}_0x464ec7[_0xef40('0x46')]=qs['sort'](_0x490235[_0xef40('0x2c')][_0xef40('0x47')]);_0x464ec7[_0xef40('0x48')]=qs[_0xef40('0x30')](_[_0xef40('0x49')](_0x490235[_0xef40('0x2c')],_0x4d7ff7[_0xef40('0x30')]));if(_0x515c7b[_0xef40('0x2d')]){if(_0x515c7b[_0xef40('0x2e')]){_0x515c7b[_0xef40('0x2e')]=moment(_0x515c7b[_0xef40('0x2e')])[_0xef40('0x4a')](0x1,_0xef40('0x4b'));}else{_0x515c7b[_0xef40('0x2e')]=moment(_0x515c7b[_0xef40('0x2d')])['add'](0x1,_0xef40('0x4b'));}_[_0xef40('0x4c')](_0x464ec7[_0xef40('0x48')],{'createdAt':{'$gte':_0x515c7b[_0xef40('0x2d')],'$lte':_0x515c7b[_0xef40('0x2e')]}});}if(_0x490235[_0xef40('0x2c')][_0xef40('0x4d')]){_0x464ec7[_0xef40('0x48')]=_['merge'](_0x464ec7['where'],{'$or':_[_0xef40('0x4e')](_0x1af801,function(_0x58ff31){if(_0x58ff31[_0xef40('0x4f')][_0xef40('0x50')]!==_0xef40('0x51')){var _0x125b9f={};_0x125b9f[_0x58ff31[_0xef40('0x52')]]={'$like':'%'+_0x490235[_0xef40('0x2c')][_0xef40('0x4d')]+'%'};return _0x125b9f;}})});}_0x464ec7=_['merge']({},_0x464ec7,_0x490235[_0xef40('0x53')]);var _0x32cada={'where':_0x464ec7[_0xef40('0x48')]};return db[_0xef40('0x29')][_0xef40('0x54')](_0x32cada)[_0xef40('0x22')](function(_0x5277fc){_0x21f149[_0xef40('0x54')]=_0x5277fc;if(_0x490235[_0xef40('0x2c')][_0xef40('0x55')]){_0x464ec7[_0xef40('0x56')]=[{'all':!![]}];}return db[_0xef40('0x29')]['findAll'](_0x464ec7);})[_0xef40('0x22')](function(_0x12868e){_0x21f149[_0xef40('0x57')]=_0x12868e;return _0x21f149;})[_0xef40('0x22')](respondWithFilteredResult(_0x6039eb,_0x464ec7))[_0xef40('0x58')](handleError(_0x6039eb,null));};exports[_0xef40('0x59')]=function(_0x10adf2,_0x535a40){var _0x2e1f5c={'raw':!![],'where':{'id':_0x10adf2[_0xef40('0x5a')]['id']}},_0x69b0d1={};_0x69b0d1[_0xef40('0x2b')]=_[_0xef40('0x2f')](db[_0xef40('0x29')][_0xef40('0x2a')]);_0x69b0d1[_0xef40('0x2c')]=_[_0xef40('0x2f')](_0x10adf2[_0xef40('0x2c')]);_0x69b0d1[_0xef40('0x30')]=_[_0xef40('0x31')](_0x69b0d1[_0xef40('0x2b')],_0x69b0d1['query']);_0x2e1f5c[_0xef40('0x42')]=_[_0xef40('0x31')](_0x69b0d1['model'],qs['fields'](_0x10adf2[_0xef40('0x2c')]['fields']));_0x2e1f5c['attributes']=_0x2e1f5c[_0xef40('0x42')][_0xef40('0x44')]?_0x2e1f5c['attributes']:_0x69b0d1[_0xef40('0x2b')];if(_0x10adf2[_0xef40('0x2c')][_0xef40('0x55')]){_0x2e1f5c[_0xef40('0x56')]=[{'all':!![]}];}_0x2e1f5c=_[_0xef40('0x4c')]({},_0x2e1f5c,_0x10adf2[_0xef40('0x53')]);return db[_0xef40('0x29')][_0xef40('0x5b')](_0x2e1f5c)['then'](handleEntityNotFound(_0x535a40,null))[_0xef40('0x22')](respondWithResult(_0x535a40,null))[_0xef40('0x58')](handleError(_0x535a40,null));};exports[_0xef40('0x5c')]=function(_0x2f0ddb,_0x36e526){return db[_0xef40('0x29')]['create'](_0x2f0ddb[_0xef40('0x5d')],{})['then'](respondWithResult(_0x36e526,0xc9))['catch'](handleError(_0x36e526,null));};exports[_0xef40('0x21')]=function(_0x284155,_0xc718a6){if(_0x284155[_0xef40('0x5d')]['id']){delete _0x284155[_0xef40('0x5d')]['id'];}return db['CmHopper'][_0xef40('0x5b')]({'where':{'id':_0x284155['params']['id']}})[_0xef40('0x22')](handleEntityNotFound(_0xc718a6,null))[_0xef40('0x22')](saveUpdates(_0x284155[_0xef40('0x5d')],null))['then'](respondWithResult(_0xc718a6,null))[_0xef40('0x58')](handleError(_0xc718a6,null));};exports[_0xef40('0x5e')]=function(_0x4af0fa,_0x20e024){return db[_0xef40('0x29')][_0xef40('0x5e')]()[_0xef40('0x22')](respondWithResult(_0x20e024,null))[_0xef40('0x58')](handleError(_0x20e024,null));};exports[_0xef40('0x23')]=function(_0x5936ce,_0x5a2c1b){var _0x4b1e0c;return db[_0xef40('0x29')][_0xef40('0x5b')]({'where':{'id':_0x5936ce[_0xef40('0x5a')]['id']}})['then'](handleEntityNotFound(_0x5a2c1b,null))[_0xef40('0x22')](function(_0x245c8d){if(_0x245c8d){return _0x245c8d[_0xef40('0x23')]()['then'](function(_0x492fe3){return _0x492fe3;});}})[_0xef40('0x22')](function(_0x57c1bb){_0x4b1e0c=_0x57c1bb;if(_0x57c1bb){if(_0x57c1bb['VoiceQueueId']||_0x57c1bb[_0xef40('0x5f')]){return db[_0x57c1bb['VoiceQueueId']?_0xef40('0x60'):'Campaign'][_0xef40('0x5b')]({'where':{'id':_0x57c1bb[_0xef40('0x61')]?_0x57c1bb[_0xef40('0x61')]:_0x57c1bb['CampaignId']},'attributes':['id','name'],'raw':!![]});}}})[_0xef40('0x22')](function(_0x794c2c){var _0x19726c={};if(_0x794c2c){_['merge'](_0x19726c,_[_0xef40('0x62')](_0x4b1e0c[_0xef40('0x63')],[_0xef40('0x64'),'updatedAt','id']));_0x19726c[_0xef40('0x65')]=0x15;_0x19726c[_0xef40('0x66')]=_0xef40('0x67');_0x19726c['campaign']=_0x794c2c[_0xef40('0x27')];_0x19726c[_0xef40('0x68')]=_0x5936ce[_0xef40('0x69')][_0xef40('0x27')];_0x19726c[_0xef40('0x6a')]=_0x5936ce[_0xef40('0x69')]['id'];_0x19726c[_0xef40('0x67')]=!![];_0x19726c[_0xef40('0x6b')]=moment()[_0xef40('0x6c')]('YYYY-MM-DD\x20HH:mm:ss');_0x19726c['calleridnum']=_0x4b1e0c[_0xef40('0x6d')];_0x19726c[_0xef40('0x6e')]=_0x4b1e0c[_0xef40('0x61')]?_0xef40('0x6f'):'ivr';return db[_0xef40('0x70')][_0xef40('0x5b')]({'where':{'id':_0x19726c[_0xef40('0x71')]},'attributes':['firstName',_0xef40('0x72')]})[_0xef40('0x22')](function(_0x3168dc){if(!_['isNil'](_0x5a2c1b)&&!_['isNil'](_0x3168dc[_0xef40('0x73')])){_0x19726c['calleridname']=_0x3168dc[_0xef40('0x73')];if(!_[_0xef40('0x74')](_0x3168dc[_0xef40('0x72')])){_0x19726c[_0xef40('0x75')]+='\x20'+_0x3168dc['lastName'];}}})[_0xef40('0x76')](function(){return db['CmHopperFinal'][_0xef40('0x5c')](_0x19726c);});}})[_0xef40('0x22')](function(){return _0x5a2c1b['status'](0xcc)[_0xef40('0x24')]();})[_0xef40('0x58')](handleError(_0x5a2c1b,null));};exports['getPreview']=function(_0x2d75ff,_0x1f9483,_0x4186bb){var _0x3f8e11=[];return db['CmContact'][_0xef40('0x5e')]()[_0xef40('0x22')](function(_0x520d50){_0x3f8e11=_[_0xef40('0x2f')](_0x520d50);return _0x2d75ff[_0xef40('0x69')]['getVoiceQueues']({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0xef40('0x77')},'attributes':['id',_0xef40('0x78')],'raw':!![]});})[_0xef40('0x22')](function(_0x1af92c){if(_0x1af92c&&_0x1af92c[_0xef40('0x44')]){return db[_0xef40('0x79')]['transaction'](function(_0x175609){var _0x5554e1={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xef40('0x6c')](_0xef40('0x7a'))},'VoiceQueueId':{'$in':_['map'](_0x1af92c,'id')},'$or':[{'UserId':null},{'UserId':_0x2d75ff[_0xef40('0x69')]['id']}]};var _0xe74489=[];if(_0x2d75ff[_0xef40('0x5d')]['direction']&&_0x2d75ff[_0xef40('0x5d')][_0xef40('0x7b')]===_0xef40('0x7c')){if(!_[_0xef40('0x7d')](_0x2d75ff['body'][_0xef40('0x7e')])){_0x5554e1['id']={'$in':_0x2d75ff[_0xef40('0x5d')][_0xef40('0x7e')]};}_0xe74489=[[_0xef40('0x7f'),_0xef40('0x80')],['scheduledAt',_0x1af92c[0x0]['dialOrderByScheduledAt']==='ASC'?'DESC':_0xef40('0x80')],db[_0xef40('0x79')][_0xef40('0x81')](_0xef40('0x82')),['id',_0xef40('0x83')]];}else{if(!_['isEmpty'](_0x2d75ff[_0xef40('0x5d')][_0xef40('0x7e')])){_0x5554e1['id']={'$notIn':_0x2d75ff[_0xef40('0x5d')][_0xef40('0x7e')]};}_0xe74489=[['priority',_0xef40('0x83')],['scheduledAt',_0x1af92c[0x0]['dialOrderByScheduledAt']],db[_0xef40('0x79')][_0xef40('0x81')](_0xef40('0x84')),['id',_0xef40('0x80')]];}return db[_0xef40('0x29')][_0xef40('0x85')]({'attributes':['id',_0xef40('0x86')],'where':_0x5554e1,'order':_0xe74489,'transaction':_0x175609,'lock':_0x175609[_0xef40('0x87')]['UPDATE'],'include':[{'model':db[_0xef40('0x70')],'as':_0xef40('0x88'),'attributes':_0x3f8e11,'include':[{'model':db[_0xef40('0x89')],'as':_0xef40('0x8a'),'attributes':['id',_0xef40('0x27')]}]},{'model':db['CmList'],'as':_0xef40('0x8b'),'attributes':['id',_0xef40('0x27')]},{'model':db[_0xef40('0x60')],'as':_0xef40('0x8c'),'attributes':['id',_0xef40('0x27'),'dialActive']}]})['then'](function(_0x2a2332){if(_0x2a2332){return _0x2a2332[_0xef40('0x21')]({'UserId':_0x2d75ff[_0xef40('0x69')]['id']},{'transaction':_0x175609});}});});}})[_0xef40('0x22')](handleEntityNotFound(_0x1f9483,null))[_0xef40('0x22')](respondWithResult(_0x1f9483,null))[_0xef40('0x58')](handleError(_0x1f9483,null));};exports[_0xef40('0x8d')]=function(_0x2d705b,_0x9c50ad,_0xe67773){return _0x2d705b[_0xef40('0x69')][_0xef40('0x8e')]({'where':{'type':_0xef40('0x8f'),'dialActive':!![],'dialMethod':_0xef40('0x77')},'attributes':['id'],'raw':!![]})[_0xef40('0x22')](function(_0x1ec511){if(_0x1ec511&&_0x1ec511['length']){return db[_0xef40('0x29')][_0xef40('0x54')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0xef40('0x4e')](_0x1ec511,'id')},'$or':[{'UserId':null},{'UserId':_0x2d705b[_0xef40('0x69')]['id']}]}});}return 0x0;})[_0xef40('0x22')](function(_0x4965da){if(!_[_0xef40('0x74')](_0x4965da)&&_[_0xef40('0x90')](_0x4965da)){return _0x9c50ad[_0xef40('0x19')](0xc8)[_0xef40('0x1a')]({'contacts':_0x4965da});}else{logger['error'](_0xef40('0x91'),_0xef40('0x8d'),0x194,_0xef40('0x92'));_0x9c50ad['sendStatus'](0x194);}})[_0xef40('0x58')](handleError(_0x9c50ad,null));};