e57a61a546ff317f0a8d243ab459f7373fbf2cf4
[motion2.git] / server / api / voiceChanSpy / voiceChanSpy.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 _0xbbfa=['hasOwnProperty','nolimit','order','sort','filters','pick','merge','VIRTUAL','filter','options','VoiceChanSpy','includeAll','include','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','update','then','destroy','get','ChanSpies','UserProfileResource','name','send','index','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0xbbfa,0x1e9));var _0xabbf=function(_0x16b47f,_0x56cdd5){_0x16b47f=_0x16b47f-0x0;var _0x2070d4=_0xbbfa[_0x16b47f];return _0x2070d4;};'use strict';var emlformat=require(_0xabbf('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xabbf('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xabbf('0x2'));var moment=require(_0xabbf('0x3'));var BPromise=require(_0xabbf('0x4'));var Mustache=require(_0xabbf('0x5'));var util=require(_0xabbf('0x6'));var path=require(_0xabbf('0x7'));var sox=require(_0xabbf('0x8'));var csv=require(_0xabbf('0x9'));var ejs=require(_0xabbf('0xa'));var fs=require('fs');var fs_extra=require(_0xabbf('0xb'));var _=require(_0xabbf('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xabbf('0xd'));var toCsv=require(_0xabbf('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xabbf('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xabbf('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xabbf('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xabbf('0x11'));var config=require(_0xabbf('0x12'));var licenseUtil=require(_0xabbf('0x13'));var db=require(_0xabbf('0x14'))['db'];function respondWithStatusCode(_0x265487,_0x1cc1a0){_0x1cc1a0=_0x1cc1a0||0xcc;return function(_0x28fb83){if(_0x28fb83){return _0x265487[_0xabbf('0x15')](_0x1cc1a0);}return _0x265487[_0xabbf('0x16')](_0x1cc1a0)['end']();};}function respondWithResult(_0x3c85e8,_0x5e6866){_0x5e6866=_0x5e6866||0xc8;return function(_0x3c6e6d){if(_0x3c6e6d){return _0x3c85e8['status'](_0x5e6866)[_0xabbf('0x17')](_0x3c6e6d);}};}function respondWithFilteredResult(_0x23a44a,_0x1df763){return function(_0x13b970){if(_0x13b970){var _0x529af0=typeof _0x1df763[_0xabbf('0x18')]===_0xabbf('0x19')&&typeof _0x1df763[_0xabbf('0x1a')]===_0xabbf('0x19');var _0xbfddcf=_0x13b970['count'];var _0x4252e1=_0x529af0?0x0:_0x1df763[_0xabbf('0x18')];var _0x57002d=_0x529af0?_0x13b970[_0xabbf('0x1b')]:_0x1df763[_0xabbf('0x18')]+_0x1df763['limit'];var _0x1269d9;if(_0x57002d>=_0xbfddcf){_0x57002d=_0xbfddcf;_0x1269d9=0xc8;}else{_0x1269d9=0xce;}_0x23a44a[_0xabbf('0x16')](_0x1269d9);return _0x23a44a[_0xabbf('0x1c')]('Content-Range',_0x4252e1+'-'+_0x57002d+'/'+_0xbfddcf)['json'](_0x13b970);}return null;};}function patchUpdates(_0xdf7640){return function(_0x4d4efb){try{jsonpatch[_0xabbf('0x1d')](_0x4d4efb,_0xdf7640,!![]);}catch(_0x918fc8){return BPromise['reject'](_0x918fc8);}return _0x4d4efb['save']();};}function saveUpdates(_0x44248b,_0x45cf44){return function(_0x2eaa02){if(_0x2eaa02){return _0x2eaa02[_0xabbf('0x1e')](_0x44248b)[_0xabbf('0x1f')](function(_0x35313f){return _0x35313f;});}return null;};}function removeEntity(_0x17d684,_0x573d83){return function(_0x281b36){if(_0x281b36){return _0x281b36[_0xabbf('0x20')]()[_0xabbf('0x1f')](function(){var _0x5b9380=_0x281b36[_0xabbf('0x21')]({'plain':!![]});var _0x26ebc6=_0xabbf('0x22');return db[_0xabbf('0x23')][_0xabbf('0x20')]({'where':{'type':_0x26ebc6,'resourceId':_0x5b9380['id']}})['then'](function(){return _0x281b36;});})[_0xabbf('0x1f')](function(){_0x17d684['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x20e61d,_0x649d52){return function(_0x51d38d){if(!_0x51d38d){_0x20e61d[_0xabbf('0x15')](0x194);}return _0x51d38d;};}function handleError(_0xa39ccd,_0x527838){_0x527838=_0x527838||0x1f4;return function(_0x4f8ed7){logger['error'](_0x4f8ed7['stack']);if(_0x4f8ed7[_0xabbf('0x24')]){delete _0x4f8ed7[_0xabbf('0x24')];}_0xa39ccd[_0xabbf('0x16')](_0x527838)[_0xabbf('0x25')](_0x4f8ed7);};}exports[_0xabbf('0x26')]=function(_0xeae198,_0x1ed1fd){var _0x3d8ffc={},_0x40c3bf={},_0x3d8b20={'count':0x0,'rows':[]};var _0x50fd8d=_[_0xabbf('0x27')](db['VoiceChanSpy'][_0xabbf('0x28')],function(_0x18b390){return{'name':_0x18b390['fieldName'],'type':_0x18b390[_0xabbf('0x29')][_0xabbf('0x2a')]};});_0x40c3bf[_0xabbf('0x2b')]=_[_0xabbf('0x27')](_0x50fd8d,_0xabbf('0x24'));_0x40c3bf[_0xabbf('0x2c')]=_[_0xabbf('0x2d')](_0xeae198['query']);_0x40c3bf['filters']=_[_0xabbf('0x2e')](_0x40c3bf['model'],_0x40c3bf[_0xabbf('0x2c')]);_0x3d8ffc[_0xabbf('0x2f')]=_[_0xabbf('0x2e')](_0x40c3bf[_0xabbf('0x2b')],qs[_0xabbf('0x30')](_0xeae198[_0xabbf('0x2c')][_0xabbf('0x30')]));_0x3d8ffc['attributes']=_0x3d8ffc[_0xabbf('0x2f')][_0xabbf('0x31')]?_0x3d8ffc[_0xabbf('0x2f')]:_0x40c3bf['model'];if(!_0xeae198[_0xabbf('0x2c')][_0xabbf('0x32')](_0xabbf('0x33'))){_0x3d8ffc[_0xabbf('0x1a')]=qs[_0xabbf('0x1a')](_0xeae198[_0xabbf('0x2c')][_0xabbf('0x1a')]);_0x3d8ffc[_0xabbf('0x18')]=qs[_0xabbf('0x18')](_0xeae198['query'][_0xabbf('0x18')]);}_0x3d8ffc[_0xabbf('0x34')]=qs[_0xabbf('0x35')](_0xeae198[_0xabbf('0x2c')][_0xabbf('0x35')]);_0x3d8ffc['where']=qs[_0xabbf('0x36')](_[_0xabbf('0x37')](_0xeae198[_0xabbf('0x2c')],_0x40c3bf[_0xabbf('0x36')]),_0x50fd8d);if(_0xeae198[_0xabbf('0x2c')]['filter']){_0x3d8ffc['where']=_[_0xabbf('0x38')](_0x3d8ffc['where'],{'$or':_[_0xabbf('0x27')](_0x50fd8d,function(_0x3fc1f6){if(_0x3fc1f6['type']!==_0xabbf('0x39')){var _0xb05c7e={};_0xb05c7e[_0x3fc1f6[_0xabbf('0x24')]]={'$like':'%'+_0xeae198['query'][_0xabbf('0x3a')]+'%'};return _0xb05c7e;}})});}_0x3d8ffc=_['merge']({},_0x3d8ffc,_0xeae198[_0xabbf('0x3b')]);var _0x11de8b={'where':_0x3d8ffc['where']};return db[_0xabbf('0x3c')][_0xabbf('0x1b')](_0x11de8b)[_0xabbf('0x1f')](function(_0x22cb8d){_0x3d8b20[_0xabbf('0x1b')]=_0x22cb8d;if(_0xeae198[_0xabbf('0x2c')][_0xabbf('0x3d')]){_0x3d8ffc[_0xabbf('0x3e')]=[{'all':!![]}];}return db[_0xabbf('0x3c')]['findAll'](_0x3d8ffc);})[_0xabbf('0x1f')](function(_0x547672){_0x3d8b20['rows']=_0x547672;return _0x3d8b20;})[_0xabbf('0x1f')](respondWithFilteredResult(_0x1ed1fd,_0x3d8ffc))[_0xabbf('0x3f')](handleError(_0x1ed1fd,null));};exports[_0xabbf('0x40')]=function(_0x109817,_0x291f7e){var _0x3450e8={'raw':![],'where':{'id':_0x109817[_0xabbf('0x41')]['id']}},_0xec2a82={};_0xec2a82[_0xabbf('0x2b')]=_[_0xabbf('0x2d')](db[_0xabbf('0x3c')][_0xabbf('0x28')]);_0xec2a82[_0xabbf('0x2c')]=_['keys'](_0x109817[_0xabbf('0x2c')]);_0xec2a82[_0xabbf('0x36')]=_['intersection'](_0xec2a82[_0xabbf('0x2b')],_0xec2a82[_0xabbf('0x2c')]);_0x3450e8[_0xabbf('0x2f')]=_[_0xabbf('0x2e')](_0xec2a82[_0xabbf('0x2b')],qs[_0xabbf('0x30')](_0x109817[_0xabbf('0x2c')][_0xabbf('0x30')]));_0x3450e8[_0xabbf('0x2f')]=_0x3450e8[_0xabbf('0x2f')][_0xabbf('0x31')]?_0x3450e8[_0xabbf('0x2f')]:_0xec2a82[_0xabbf('0x2b')];if(_0x109817[_0xabbf('0x2c')][_0xabbf('0x3d')]){_0x3450e8[_0xabbf('0x3e')]=[{'all':!![]}];}_0x3450e8=_[_0xabbf('0x38')]({},_0x3450e8,_0x109817[_0xabbf('0x3b')]);return db[_0xabbf('0x3c')][_0xabbf('0x42')](_0x3450e8)['then'](handleEntityNotFound(_0x291f7e,null))[_0xabbf('0x1f')](respondWithResult(_0x291f7e,null))[_0xabbf('0x3f')](handleError(_0x291f7e,null));};exports[_0xabbf('0x43')]=function(_0x370f66,_0x60d9d6){return db['VoiceChanSpy'][_0xabbf('0x43')](_0x370f66[_0xabbf('0x44')],{})['then'](function(_0x2b4cf5){var _0x1c156d=_0x370f66[_0xabbf('0x45')][_0xabbf('0x21')]({'plain':!![]});if(!_0x1c156d)throw new Error(_0xabbf('0x46'));if(_0x1c156d[_0xabbf('0x47')]===_0xabbf('0x45')){var _0x4fa51f=_0x2b4cf5[_0xabbf('0x21')]({'plain':!![]});var _0x41dc9d='ChanSpies';return db[_0xabbf('0x48')][_0xabbf('0x42')]({'where':{'name':_0x41dc9d,'userProfileId':_0x1c156d[_0xabbf('0x49')]},'raw':!![]})[_0xabbf('0x1f')](function(_0x29c051){if(_0x29c051&&_0x29c051[_0xabbf('0x4a')]===0x0){return db[_0xabbf('0x23')][_0xabbf('0x43')]({'name':_0x4fa51f[_0xabbf('0x24')],'resourceId':_0x4fa51f['id'],'type':_0x29c051[_0xabbf('0x24')],'sectionId':_0x29c051['id']},{})['then'](function(){return _0x2b4cf5;});}else{return _0x2b4cf5;}})[_0xabbf('0x3f')](function(_0x4fcc5b){logger[_0xabbf('0x4b')](_0xabbf('0x4c'),_0x4fcc5b);throw _0x4fcc5b;});}return _0x2b4cf5;})[_0xabbf('0x1f')](respondWithResult(_0x60d9d6,0xc9))[_0xabbf('0x3f')](handleError(_0x60d9d6,null));};exports[_0xabbf('0x1e')]=function(_0x216972,_0x18324f){if(_0x216972[_0xabbf('0x44')]['id']){delete _0x216972[_0xabbf('0x44')]['id'];}return db[_0xabbf('0x3c')][_0xabbf('0x42')]({'where':{'id':_0x216972[_0xabbf('0x41')]['id']}})['then'](handleEntityNotFound(_0x18324f,null))['then'](saveUpdates(_0x216972['body'],null))[_0xabbf('0x1f')](respondWithResult(_0x18324f,null))[_0xabbf('0x3f')](handleError(_0x18324f,null));};exports[_0xabbf('0x20')]=function(_0x5cf6ff,_0x278a01){return db[_0xabbf('0x3c')][_0xabbf('0x42')]({'where':{'id':_0x5cf6ff['params']['id']}})['then'](handleEntityNotFound(_0x278a01,null))[_0xabbf('0x1f')](removeEntity(_0x278a01,null))[_0xabbf('0x3f')](handleError(_0x278a01,null));};