Built motion from commit (unavailable).|2.5.10
[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 _0xcecc=['$gt','$gte','$lt','$ne','$eq','$not','$in','$notIn','$like','$notLike','$notILike','$contains','$contained','$any','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','rawAttributes','keys','includeAll','create','body','find','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','deleted','campaign','membername','user','deletedat','format','calleridnum','phone','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','getPreview','getVoiceQueues','outbound','dialOrderByScheduledAt','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','direction','prev','isEmpty','hopperIds','priority','scheduledAt','ASC','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','List','Queue','getOpenContacts','preview','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','rimraf','request-promise','moment','bluebird','mustache','sox','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','count','offset','set','json','reject','save','update','destroy','then','error','stack','name','map','CmHopper','type','key','query','filters','intersection','model','concat','$and','$or'];(function(_0x4cb9e4,_0x225f56){var _0x4cfffe=function(_0x559054){while(--_0x559054){_0x4cb9e4['push'](_0x4cb9e4['shift']());}};_0x4cfffe(++_0x225f56);}(_0xcecc,0x186));var _0xccec=function(_0x515eba,_0x540195){_0x515eba=_0x515eba-0x0;var _0x5240ab=_0xcecc[_0x515eba];return _0x5240ab;};'use strict';var pdf=require(_0xccec('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xccec('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xccec('0x2'));var moment=require(_0xccec('0x3'));var BPromise=require(_0xccec('0x4'));var Mustache=require(_0xccec('0x5'));var util=require('util');var path=require('path');var sox=require(_0xccec('0x6'));var csv=require('to-csv');var ejs=require(_0xccec('0x7'));var fs=require('fs');var _=require(_0xccec('0x8'));var squel=require(_0xccec('0x9'));var crypto=require('crypto');var jsforce=require(_0xccec('0xa'));var deskjs=require(_0xccec('0xb'));var toCsv=require('to-csv');var querystring=require(_0xccec('0xc'));var Papa=require(_0xccec('0xd'));var Redis=require(_0xccec('0xe'));var authService=require(_0xccec('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xccec('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xccec('0x11'))(_0xccec('0x12'));var utils=require('../../config/utils');var config=require(_0xccec('0x13'));var licenseUtil=require(_0xccec('0x14'));var db=require(_0xccec('0x15'))['db'];function respondWithStatusCode(_0x5ad07a,_0x349054){_0x349054=_0x349054||0xcc;return function(_0x2ac888){if(_0x2ac888){return _0x5ad07a[_0xccec('0x16')](_0x349054);}return _0x5ad07a[_0xccec('0x17')](_0x349054)[_0xccec('0x18')]();};}function respondWithResult(_0x4b4c3d,_0x2882d9){_0x2882d9=_0x2882d9||0xc8;return function(_0x566a81){if(_0x566a81){return _0x4b4c3d['status'](_0x2882d9)['json'](_0x566a81);}};}function respondWithFilteredResult(_0x8ff6a6,_0x3482d4){return function(_0x18e7d0){if(_0x18e7d0){var _0x69a776=_0x18e7d0[_0xccec('0x19')],_0x1d588f=_0x3482d4[_0xccec('0x1a')],_0x3b8786=_0x3482d4['offset']+_0x3482d4['limit'],_0x7abe38;if(_0x3b8786>=_0x69a776){_0x3b8786=_0x69a776;_0x7abe38=0xc8;}else{_0x7abe38=0xce;}_0x8ff6a6['status'](_0x7abe38);return _0x8ff6a6[_0xccec('0x1b')]('Content-Range',_0x1d588f+'-'+_0x3b8786+'/'+_0x69a776)[_0xccec('0x1c')](_0x18e7d0);}return null;};}function patchUpdates(_0x4fbb88){return function(_0x88741b){try{jsonpatch['apply'](_0x88741b,_0x4fbb88,!![]);}catch(_0x2a78cf){return BPromise[_0xccec('0x1d')](_0x2a78cf);}return _0x88741b[_0xccec('0x1e')]();};}function saveUpdates(_0x4a7f08,_0x2fedff){return function(_0x3bd5fa){if(_0x3bd5fa){return _0x3bd5fa[_0xccec('0x1f')](_0x4a7f08)['then'](function(_0x22731b){return _0x22731b;});}return null;};}function removeEntity(_0x57c27c,_0x9065a3){return function(_0x4b2666){if(_0x4b2666){return _0x4b2666[_0xccec('0x20')]()[_0xccec('0x21')](function(){_0x57c27c[_0xccec('0x17')](0xcc)[_0xccec('0x18')]();});}};}function handleEntityNotFound(_0x3d83e1,_0x6be7ac){return function(_0x2412f3){if(!_0x2412f3){_0x3d83e1[_0xccec('0x16')](0x194);}return _0x2412f3;};}function handleError(_0xb1489a,_0x5e5a78){_0x5e5a78=_0x5e5a78||0x1f4;return function(_0x44bc44){logger[_0xccec('0x22')](_0x44bc44[_0xccec('0x23')]);if(_0x44bc44[_0xccec('0x24')]){delete _0x44bc44['name'];}_0xb1489a[_0xccec('0x17')](_0x5e5a78)['send'](_0x44bc44);};}exports['index']=function(_0x561d5e,_0x26ecef){var _0xa69d0d={},_0x207892={},_0x14095b={'count':0x0,'rows':[]};var _0xdabcf=_[_0xccec('0x25')](db[_0xccec('0x26')]['rawAttributes'],function(_0x11085d){return{'name':_0x11085d['fieldName'],'type':_0x11085d[_0xccec('0x27')][_0xccec('0x28')]};});_0x207892['model']=_['map'](_0xdabcf,_0xccec('0x24'));_0x207892[_0xccec('0x29')]=_['keys'](_0x561d5e[_0xccec('0x29')]);_0x207892[_0xccec('0x2a')]=_[_0xccec('0x2b')](_0x207892[_0xccec('0x2c')],_0x207892['query']);_0x207892[_0xccec('0x2a')]=_[_0xccec('0x2d')](_0x207892[_0xccec('0x2a')],[_0xccec('0x2e'),_0xccec('0x2f'),_0xccec('0x30'),_0xccec('0x31'),_0xccec('0x32'),'$lte',_0xccec('0x33'),_0xccec('0x34'),_0xccec('0x35'),'$between','$notBetween',_0xccec('0x36'),_0xccec('0x37'),_0xccec('0x38'),_0xccec('0x39'),'$iLike',_0xccec('0x3a'),'$like','$overlap',_0xccec('0x3b'),_0xccec('0x3c'),_0xccec('0x3d')]);_0xa69d0d[_0xccec('0x3e')]=_[_0xccec('0x2b')](_0x207892[_0xccec('0x2c')],qs['fields'](_0x561d5e['query'][_0xccec('0x3f')]));_0xa69d0d[_0xccec('0x3e')]=_0xa69d0d[_0xccec('0x3e')][_0xccec('0x40')]?_0xa69d0d['attributes']:_0x207892[_0xccec('0x2c')];if(!_0x561d5e['query'][_0xccec('0x41')](_0xccec('0x42'))){_0xa69d0d[_0xccec('0x43')]=qs[_0xccec('0x43')](_0x561d5e[_0xccec('0x29')]['limit']);_0xa69d0d[_0xccec('0x1a')]=qs[_0xccec('0x1a')](_0x561d5e['query'][_0xccec('0x1a')]);}_0xa69d0d[_0xccec('0x44')]=qs[_0xccec('0x45')](_0x561d5e[_0xccec('0x29')]['sort']);_0xa69d0d[_0xccec('0x46')]=qs[_0xccec('0x2a')](_[_0xccec('0x47')](_0x561d5e['query'],_0x207892[_0xccec('0x2a')]),_0xdabcf);if(_0x561d5e['query'][_0xccec('0x48')]){_0xa69d0d[_0xccec('0x46')]=_[_0xccec('0x49')](_0xa69d0d['where'],{'$or':_['map'](_0xdabcf,function(_0xaacc1d){if(_0xaacc1d[_0xccec('0x27')]!==_0xccec('0x4a')){var _0x4c0184={};_0x4c0184[_0xaacc1d[_0xccec('0x24')]]={'$like':'%'+_0x561d5e[_0xccec('0x29')][_0xccec('0x48')]+'%'};return _0x4c0184;}})});}_0xa69d0d=_['merge']({},_0xa69d0d,_0x561d5e[_0xccec('0x4b')]);var _0x3b0472={'where':_0xa69d0d[_0xccec('0x46')]};return db[_0xccec('0x26')]['count'](_0x3b0472)['then'](function(_0x12039a){_0x14095b[_0xccec('0x19')]=_0x12039a;if(_0x561d5e[_0xccec('0x29')]['includeAll']){_0xa69d0d[_0xccec('0x4c')]=[{'all':!![]}];}return db[_0xccec('0x26')][_0xccec('0x4d')](_0xa69d0d);})[_0xccec('0x21')](function(_0xfe2c5f){_0x14095b[_0xccec('0x4e')]=_0xfe2c5f;return _0x14095b;})['then'](respondWithFilteredResult(_0x26ecef,_0xa69d0d))[_0xccec('0x4f')](handleError(_0x26ecef,null));};exports[_0xccec('0x50')]=function(_0x441218,_0x33763e){var _0x2d5981={'raw':!![],'where':{'id':_0x441218[_0xccec('0x51')]['id']}},_0x355537={};_0x355537[_0xccec('0x2c')]=_['keys'](db[_0xccec('0x26')][_0xccec('0x52')]);_0x355537[_0xccec('0x29')]=_[_0xccec('0x53')](_0x441218['query']);_0x355537[_0xccec('0x2a')]=_[_0xccec('0x2b')](_0x355537[_0xccec('0x2c')],_0x355537['query']);_0x2d5981[_0xccec('0x3e')]=_['intersection'](_0x355537[_0xccec('0x2c')],qs[_0xccec('0x3f')](_0x441218[_0xccec('0x29')]['fields']));_0x2d5981[_0xccec('0x3e')]=_0x2d5981[_0xccec('0x3e')][_0xccec('0x40')]?_0x2d5981['attributes']:_0x355537[_0xccec('0x2c')];if(_0x441218[_0xccec('0x29')][_0xccec('0x54')]){_0x2d5981[_0xccec('0x4c')]=[{'all':!![]}];}_0x2d5981=_[_0xccec('0x49')]({},_0x2d5981,_0x441218['options']);return db['CmHopper']['find'](_0x2d5981)[_0xccec('0x21')](handleEntityNotFound(_0x33763e,null))[_0xccec('0x21')](respondWithResult(_0x33763e,null))[_0xccec('0x4f')](handleError(_0x33763e,null));};exports[_0xccec('0x55')]=function(_0xfc7da6,_0x1b16ed){return db['CmHopper'][_0xccec('0x55')](_0xfc7da6['body'],{})[_0xccec('0x21')](respondWithResult(_0x1b16ed,0xc9))[_0xccec('0x4f')](handleError(_0x1b16ed,null));};exports['update']=function(_0x303aa6,_0x362844){if(_0x303aa6[_0xccec('0x56')]['id']){delete _0x303aa6[_0xccec('0x56')]['id'];}return db[_0xccec('0x26')][_0xccec('0x57')]({'where':{'id':_0x303aa6[_0xccec('0x51')]['id']}})[_0xccec('0x21')](handleEntityNotFound(_0x362844,null))['then'](saveUpdates(_0x303aa6['body'],null))['then'](respondWithResult(_0x362844,null))[_0xccec('0x4f')](handleError(_0x362844,null));};exports[_0xccec('0x58')]=function(_0x3a65c7,_0xfd6776){return db[_0xccec('0x26')]['describe']()[_0xccec('0x21')](respondWithResult(_0xfd6776,null))[_0xccec('0x4f')](handleError(_0xfd6776,null));};exports['destroy']=function(_0x3cf04d,_0x2d2fe2){var _0x4198ac;return db['CmHopper']['find']({'where':{'id':_0x3cf04d[_0xccec('0x51')]['id']}})['then'](handleEntityNotFound(_0x2d2fe2,null))[_0xccec('0x21')](function(_0x24ddee){if(_0x24ddee){return _0x24ddee['destroy']()[_0xccec('0x21')](function(_0x2ad465){return _0x2ad465;});}})[_0xccec('0x21')](function(_0x41766f){_0x4198ac=_0x41766f;if(_0x41766f){if(_0x41766f[_0xccec('0x59')]||_0x41766f[_0xccec('0x5a')]){return db[_0x41766f[_0xccec('0x59')]?_0xccec('0x5b'):_0xccec('0x5c')][_0xccec('0x57')]({'where':{'id':_0x41766f[_0xccec('0x59')]?_0x41766f[_0xccec('0x59')]:_0x41766f[_0xccec('0x5a')]},'attributes':['id',_0xccec('0x24')],'raw':!![]});}}})['then'](function(_0x25c1ef){var _0x5c9a7c={};if(_0x25c1ef){_[_0xccec('0x49')](_0x5c9a7c,_[_0xccec('0x5d')](_0x4198ac[_0xccec('0x5e')],[_0xccec('0x5f'),'updatedAt','id']));_0x5c9a7c['state']=0x15;_0x5c9a7c['statedesc']=_0xccec('0x60');_0x5c9a7c[_0xccec('0x61')]=_0x25c1ef[_0xccec('0x24')];_0x5c9a7c[_0xccec('0x62')]=_0x3cf04d['user']['name'];_0x5c9a7c['UserId']=_0x3cf04d[_0xccec('0x63')]['id'];_0x5c9a7c['deleted']=!![];_0x5c9a7c[_0xccec('0x64')]=moment()[_0xccec('0x65')]('YYYY-MM-DD\x20HH:mm:ss');_0x5c9a7c[_0xccec('0x66')]=_0x4198ac[_0xccec('0x67')];_0x5c9a7c['campaigntype']=_0x4198ac[_0xccec('0x59')]?_0xccec('0x68'):_0xccec('0x69');return db[_0xccec('0x6a')][_0xccec('0x57')]({'where':{'id':_0x5c9a7c[_0xccec('0x6b')]},'attributes':[_0xccec('0x6c'),_0xccec('0x6d')]})[_0xccec('0x21')](function(_0x135898){if(!_['isNil'](_0x2d2fe2)&&!_[_0xccec('0x6e')](_0x135898[_0xccec('0x6c')])){_0x5c9a7c[_0xccec('0x6f')]=_0x135898[_0xccec('0x6c')];if(!_[_0xccec('0x6e')](_0x135898['lastName'])){_0x5c9a7c[_0xccec('0x6f')]+='\x20'+_0x135898[_0xccec('0x6d')];}}})[_0xccec('0x70')](function(){return db['CmHopperFinal'][_0xccec('0x55')](_0x5c9a7c);});}})[_0xccec('0x21')](function(){return _0x2d2fe2[_0xccec('0x17')](0xcc)[_0xccec('0x18')]();})['catch'](handleError(_0x2d2fe2,null));};exports[_0xccec('0x71')]=function(_0x3e9433,_0x19dd3c,_0x33c721){var _0x4f1bd9=[];return db[_0xccec('0x6a')][_0xccec('0x58')]()[_0xccec('0x21')](function(_0x3148d7){_0x4f1bd9=_['keys'](_0x3148d7);return _0x3e9433[_0xccec('0x63')][_0xccec('0x72')]({'where':{'type':_0xccec('0x73'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0xccec('0x74')],'raw':!![]});})[_0xccec('0x21')](function(_0x4c6fc7){if(_0x4c6fc7&&_0x4c6fc7[_0xccec('0x40')]){return db[_0xccec('0x75')][_0xccec('0x76')](function(_0x2ae9dd){var _0x1009c9={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xccec('0x77'))},'VoiceQueueId':{'$in':_[_0xccec('0x25')](_0x4c6fc7,'id')},'$or':[{'UserId':null},{'UserId':_0x3e9433[_0xccec('0x63')]['id']}]};var _0x5937e2=[];if(_0x3e9433[_0xccec('0x56')][_0xccec('0x78')]&&_0x3e9433[_0xccec('0x56')][_0xccec('0x78')]===_0xccec('0x79')){if(!_[_0xccec('0x7a')](_0x3e9433['body'][_0xccec('0x7b')])){_0x1009c9['id']={'$in':_0x3e9433[_0xccec('0x56')][_0xccec('0x7b')]};}_0x5937e2=[[_0xccec('0x7c'),'ASC'],[_0xccec('0x7d'),_0x4c6fc7[0x0]['dialOrderByScheduledAt']===_0xccec('0x7e')?_0xccec('0x7f'):_0xccec('0x7e')],db['sequelize'][_0xccec('0x80')](_0xccec('0x81')),['id',_0xccec('0x7f')]];}else{if(!_['isEmpty'](_0x3e9433[_0xccec('0x56')][_0xccec('0x7b')])){_0x1009c9['id']={'$notIn':_0x3e9433[_0xccec('0x56')][_0xccec('0x7b')]};}_0x5937e2=[[_0xccec('0x7c'),'DESC'],['scheduledAt',_0x4c6fc7[0x0][_0xccec('0x74')]],db[_0xccec('0x75')]['literal'](_0xccec('0x82')),['id','ASC']];}return db[_0xccec('0x26')][_0xccec('0x83')]({'attributes':['id',_0xccec('0x84')],'where':_0x1009c9,'order':_0x5937e2,'transaction':_0x2ae9dd,'lock':_0x2ae9dd[_0xccec('0x85')][_0xccec('0x86')],'include':[{'model':db[_0xccec('0x6a')],'as':_0xccec('0x87'),'attributes':_0x4f1bd9,'include':[{'model':db[_0xccec('0x88')],'as':_0xccec('0x89'),'attributes':['id','name']}]},{'model':db[_0xccec('0x8a')],'as':_0xccec('0x8b'),'attributes':['id',_0xccec('0x24')]},{'model':db[_0xccec('0x5b')],'as':_0xccec('0x8c'),'attributes':['id',_0xccec('0x24'),'dialActive']}]})[_0xccec('0x21')](function(_0x54aeeb){if(_0x54aeeb){return _0x54aeeb[_0xccec('0x1f')]({'UserId':_0x3e9433[_0xccec('0x63')]['id']},{'transaction':_0x2ae9dd});}});});}})[_0xccec('0x21')](handleEntityNotFound(_0x19dd3c,null))[_0xccec('0x21')](respondWithResult(_0x19dd3c,null))['catch'](handleError(_0x19dd3c,null));};exports[_0xccec('0x8d')]=function(_0x3cdf40,_0x3c1bb0,_0x5c7b3c){return _0x3cdf40[_0xccec('0x63')][_0xccec('0x72')]({'where':{'type':_0xccec('0x73'),'dialActive':!![],'dialMethod':_0xccec('0x8e')},'attributes':['id'],'raw':!![]})[_0xccec('0x21')](function(_0x4b5743){if(_0x4b5743&&_0x4b5743[_0xccec('0x40')]){return db[_0xccec('0x26')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xccec('0x65')](_0xccec('0x77'))},'VoiceQueueId':{'$in':_[_0xccec('0x25')](_0x4b5743,'id')},'$or':[{'UserId':null},{'UserId':_0x3cdf40[_0xccec('0x63')]['id']}]}});}return 0x0;})['then'](function(_0x28cdc0){if(!_[_0xccec('0x6e')](_0x28cdc0)&&_[_0xccec('0x8f')](_0x28cdc0)){return _0x3c1bb0[_0xccec('0x17')](0xc8)['json']({'contacts':_0x28cdc0});}else{logger['error'](_0xccec('0x90'),'getOpenContacts',0x194,_0xccec('0x91'));_0x3c1bb0[_0xccec('0x16')](0x194);}})[_0xccec('0x4f')](handleError(_0x3c1bb0,null));};