24f2d57108261a21179677ef2232b4e027191540
[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 _0x5620=['model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','findAll','rows','catch','show','keys','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','name','params','eml-format','zip-dir','fast-json-patch','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','undefined','count','offset','limit','set','Content-Range','json','apply','update','then','destroy','get','ChanSpies','UserProfileResource','end','error','stack','index','map','VoiceChanSpy','rawAttributes','fieldName','key'];(function(_0x4a6708,_0x4f5b6b){var _0x3da5db=function(_0x1e3aac){while(--_0x1e3aac){_0x4a6708['push'](_0x4a6708['shift']());}};_0x3da5db(++_0x4f5b6b);}(_0x5620,0xbf));var _0x0562=function(_0x23c3f4,_0x24f0b3){_0x23c3f4=_0x23c3f4-0x0;var _0x82f0f1=_0x5620[_0x23c3f4];return _0x82f0f1;};'use strict';var emlformat=require(_0x0562('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0562('0x1'));var jsonpatch=require(_0x0562('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x0562('0x3'));var util=require('util');var path=require(_0x0562('0x4'));var sox=require('sox');var csv=require(_0x0562('0x5'));var ejs=require(_0x0562('0x6'));var fs=require('fs');var fs_extra=require(_0x0562('0x7'));var _=require(_0x0562('0x8'));var squel=require(_0x0562('0x9'));var crypto=require(_0x0562('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x0562('0x5'));var querystring=require('querystring');var Papa=require(_0x0562('0xb'));var Redis=require(_0x0562('0xc'));var authService=require(_0x0562('0xd'));var qs=require(_0x0562('0xe'));var as=require(_0x0562('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0562('0x10'))(_0x0562('0x11'));var utils=require(_0x0562('0x12'));var config=require(_0x0562('0x13'));var licenseUtil=require(_0x0562('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x57555a,_0x24989c){_0x24989c=_0x24989c||0xcc;return function(_0x30b337){if(_0x30b337){return _0x57555a[_0x0562('0x15')](_0x24989c);}return _0x57555a[_0x0562('0x16')](_0x24989c)['end']();};}function respondWithResult(_0x160656,_0xe654c7){_0xe654c7=_0xe654c7||0xc8;return function(_0x3ed2c8){if(_0x3ed2c8){return _0x160656[_0x0562('0x16')](_0xe654c7)['json'](_0x3ed2c8);}};}function respondWithFilteredResult(_0x37e9c6,_0x4ed54d){return function(_0x4711c1){if(_0x4711c1){var _0x31579e=typeof _0x4ed54d['offset']===_0x0562('0x17')&&typeof _0x4ed54d['limit']===_0x0562('0x17');var _0x16d18e=_0x4711c1[_0x0562('0x18')];var _0x554527=_0x31579e?0x0:_0x4ed54d[_0x0562('0x19')];var _0x5d6341=_0x31579e?_0x4711c1[_0x0562('0x18')]:_0x4ed54d['offset']+_0x4ed54d[_0x0562('0x1a')];var _0x1a13e5;if(_0x5d6341>=_0x16d18e){_0x5d6341=_0x16d18e;_0x1a13e5=0xc8;}else{_0x1a13e5=0xce;}_0x37e9c6['status'](_0x1a13e5);return _0x37e9c6[_0x0562('0x1b')](_0x0562('0x1c'),_0x554527+'-'+_0x5d6341+'/'+_0x16d18e)[_0x0562('0x1d')](_0x4711c1);}return null;};}function patchUpdates(_0x90626d){return function(_0x5dbc61){try{jsonpatch[_0x0562('0x1e')](_0x5dbc61,_0x90626d,!![]);}catch(_0x5819b8){return BPromise['reject'](_0x5819b8);}return _0x5dbc61['save']();};}function saveUpdates(_0x4bbcf7,_0x35f245){return function(_0x37f493){if(_0x37f493){return _0x37f493[_0x0562('0x1f')](_0x4bbcf7)[_0x0562('0x20')](function(_0x14024b){return _0x14024b;});}return null;};}function removeEntity(_0x541e82,_0x5121ee){return function(_0x3e06ab){if(_0x3e06ab){return _0x3e06ab[_0x0562('0x21')]()[_0x0562('0x20')](function(){var _0x3eb41c=_0x3e06ab[_0x0562('0x22')]({'plain':!![]});var _0x57c34f=_0x0562('0x23');return db[_0x0562('0x24')][_0x0562('0x21')]({'where':{'type':_0x57c34f,'resourceId':_0x3eb41c['id']}})[_0x0562('0x20')](function(){return _0x3e06ab;});})[_0x0562('0x20')](function(){_0x541e82[_0x0562('0x16')](0xcc)[_0x0562('0x25')]();});}};}function handleEntityNotFound(_0x15f1e7,_0x39132f){return function(_0x44b4b8){if(!_0x44b4b8){_0x15f1e7[_0x0562('0x15')](0x194);}return _0x44b4b8;};}function handleError(_0x4fdac1,_0x229669){_0x229669=_0x229669||0x1f4;return function(_0x4ea641){logger[_0x0562('0x26')](_0x4ea641[_0x0562('0x27')]);if(_0x4ea641['name']){delete _0x4ea641['name'];}_0x4fdac1['status'](_0x229669)['send'](_0x4ea641);};}exports[_0x0562('0x28')]=function(_0x4b1ad1,_0x16b3bb){var _0x2e67d4={},_0x2d3772={},_0xc2a12f={'count':0x0,'rows':[]};var _0x28051f=_[_0x0562('0x29')](db[_0x0562('0x2a')][_0x0562('0x2b')],function(_0x263185){return{'name':_0x263185[_0x0562('0x2c')],'type':_0x263185['type'][_0x0562('0x2d')]};});_0x2d3772[_0x0562('0x2e')]=_['map'](_0x28051f,'name');_0x2d3772[_0x0562('0x2f')]=_['keys'](_0x4b1ad1['query']);_0x2d3772[_0x0562('0x30')]=_[_0x0562('0x31')](_0x2d3772['model'],_0x2d3772[_0x0562('0x2f')]);_0x2e67d4[_0x0562('0x32')]=_[_0x0562('0x31')](_0x2d3772['model'],qs[_0x0562('0x33')](_0x4b1ad1[_0x0562('0x2f')][_0x0562('0x33')]));_0x2e67d4[_0x0562('0x32')]=_0x2e67d4[_0x0562('0x32')][_0x0562('0x34')]?_0x2e67d4['attributes']:_0x2d3772[_0x0562('0x2e')];if(!_0x4b1ad1[_0x0562('0x2f')][_0x0562('0x35')](_0x0562('0x36'))){_0x2e67d4['limit']=qs[_0x0562('0x1a')](_0x4b1ad1['query'][_0x0562('0x1a')]);_0x2e67d4[_0x0562('0x19')]=qs[_0x0562('0x19')](_0x4b1ad1[_0x0562('0x2f')][_0x0562('0x19')]);}_0x2e67d4[_0x0562('0x37')]=qs[_0x0562('0x38')](_0x4b1ad1['query']['sort']);_0x2e67d4[_0x0562('0x39')]=qs[_0x0562('0x30')](_[_0x0562('0x3a')](_0x4b1ad1['query'],_0x2d3772[_0x0562('0x30')]),_0x28051f);if(_0x4b1ad1['query'][_0x0562('0x3b')]){_0x2e67d4['where']=_['merge'](_0x2e67d4['where'],{'$or':_[_0x0562('0x29')](_0x28051f,function(_0xd3b10e){if(_0xd3b10e[_0x0562('0x3c')]!==_0x0562('0x3d')){var _0x12437c={};_0x12437c[_0xd3b10e['name']]={'$like':'%'+_0x4b1ad1[_0x0562('0x2f')][_0x0562('0x3b')]+'%'};return _0x12437c;}})});}_0x2e67d4=_[_0x0562('0x3e')]({},_0x2e67d4,_0x4b1ad1[_0x0562('0x3f')]);var _0x1beb6e={'where':_0x2e67d4[_0x0562('0x39')]};return db['VoiceChanSpy'][_0x0562('0x18')](_0x1beb6e)['then'](function(_0x1646a7){_0xc2a12f[_0x0562('0x18')]=_0x1646a7;if(_0x4b1ad1[_0x0562('0x2f')]['includeAll']){_0x2e67d4['include']=[{'all':!![]}];}return db[_0x0562('0x2a')][_0x0562('0x40')](_0x2e67d4);})[_0x0562('0x20')](function(_0x4d3ec0){_0xc2a12f[_0x0562('0x41')]=_0x4d3ec0;return _0xc2a12f;})[_0x0562('0x20')](respondWithFilteredResult(_0x16b3bb,_0x2e67d4))[_0x0562('0x42')](handleError(_0x16b3bb,null));};exports[_0x0562('0x43')]=function(_0x173490,_0x15cdc5){var _0x173fe7={'raw':![],'where':{'id':_0x173490['params']['id']}},_0x563863={};_0x563863['model']=_[_0x0562('0x44')](db[_0x0562('0x2a')][_0x0562('0x2b')]);_0x563863[_0x0562('0x2f')]=_['keys'](_0x173490['query']);_0x563863[_0x0562('0x30')]=_[_0x0562('0x31')](_0x563863[_0x0562('0x2e')],_0x563863['query']);_0x173fe7[_0x0562('0x32')]=_['intersection'](_0x563863[_0x0562('0x2e')],qs['fields'](_0x173490[_0x0562('0x2f')][_0x0562('0x33')]));_0x173fe7[_0x0562('0x32')]=_0x173fe7[_0x0562('0x32')][_0x0562('0x34')]?_0x173fe7[_0x0562('0x32')]:_0x563863[_0x0562('0x2e')];if(_0x173490['query'][_0x0562('0x45')]){_0x173fe7['include']=[{'all':!![]}];}_0x173fe7=_['merge']({},_0x173fe7,_0x173490['options']);return db['VoiceChanSpy'][_0x0562('0x46')](_0x173fe7)[_0x0562('0x20')](handleEntityNotFound(_0x15cdc5,null))[_0x0562('0x20')](respondWithResult(_0x15cdc5,null))[_0x0562('0x42')](handleError(_0x15cdc5,null));};exports[_0x0562('0x47')]=function(_0x4fbab8,_0x58f228){return db['VoiceChanSpy'][_0x0562('0x47')](_0x4fbab8[_0x0562('0x48')],{})[_0x0562('0x20')](function(_0x9af18b){var _0x4cec5e=_0x4fbab8[_0x0562('0x49')][_0x0562('0x22')]({'plain':!![]});if(!_0x4cec5e)throw new Error(_0x0562('0x4a'));if(_0x4cec5e[_0x0562('0x4b')]==='user'){var _0x40759d=_0x9af18b[_0x0562('0x22')]({'plain':!![]});var _0x114896=_0x0562('0x23');return db['UserProfileSection'][_0x0562('0x46')]({'where':{'name':_0x114896,'userProfileId':_0x4cec5e['userProfileId']},'raw':!![]})['then'](function(_0x1b9470){if(_0x1b9470&&_0x1b9470[_0x0562('0x4c')]===0x0){return db[_0x0562('0x24')]['create']({'name':_0x40759d[_0x0562('0x4d')],'resourceId':_0x40759d['id'],'type':_0x1b9470['name'],'sectionId':_0x1b9470['id']},{})[_0x0562('0x20')](function(){return _0x9af18b;});}else{return _0x9af18b;}})[_0x0562('0x42')](function(_0x120544){logger[_0x0562('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x120544);throw _0x120544;});}return _0x9af18b;})[_0x0562('0x20')](respondWithResult(_0x58f228,0xc9))[_0x0562('0x42')](handleError(_0x58f228,null));};exports[_0x0562('0x1f')]=function(_0x5ea3c6,_0x3f6941){if(_0x5ea3c6[_0x0562('0x48')]['id']){delete _0x5ea3c6[_0x0562('0x48')]['id'];}return db[_0x0562('0x2a')][_0x0562('0x46')]({'where':{'id':_0x5ea3c6[_0x0562('0x4e')]['id']}})[_0x0562('0x20')](handleEntityNotFound(_0x3f6941,null))[_0x0562('0x20')](saveUpdates(_0x5ea3c6['body'],null))[_0x0562('0x20')](respondWithResult(_0x3f6941,null))[_0x0562('0x42')](handleError(_0x3f6941,null));};exports[_0x0562('0x21')]=function(_0x5551d5,_0x2c2951){return db[_0x0562('0x2a')][_0x0562('0x46')]({'where':{'id':_0x5551d5[_0x0562('0x4e')]['id']}})[_0x0562('0x20')](handleEntityNotFound(_0x2c2951,null))[_0x0562('0x20')](removeEntity(_0x2c2951,null))[_0x0562('0x42')](handleError(_0x2c2951,null));};