Built motion from commit 25580385.|2.6.2
[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 _0x345e=['filter','VIRTUAL','merge','options','VoiceChanSpy','includeAll','include','findAll','rows','show','params','find','catch','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','ChanSpies','UserProfileResource','error','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick'];(function(_0x2416af,_0x360bcc){var _0x418741=function(_0x1fe9cf){while(--_0x1fe9cf){_0x2416af['push'](_0x2416af['shift']());}};_0x418741(++_0x360bcc);}(_0x345e,0x168));var _0xe345=function(_0x326f81,_0x57c9d8){_0x326f81=_0x326f81-0x0;var _0x8a3c6e=_0x345e[_0x326f81];return _0x8a3c6e;};'use strict';var emlformat=require(_0xe345('0x0'));var rimraf=require(_0xe345('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe345('0x2'));var rp=require(_0xe345('0x3'));var moment=require(_0xe345('0x4'));var BPromise=require(_0xe345('0x5'));var Mustache=require(_0xe345('0x6'));var util=require(_0xe345('0x7'));var path=require(_0xe345('0x8'));var sox=require(_0xe345('0x9'));var csv=require(_0xe345('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe345('0xb'));var _=require(_0xe345('0xc'));var squel=require(_0xe345('0xd'));var crypto=require(_0xe345('0xe'));var jsforce=require(_0xe345('0xf'));var deskjs=require(_0xe345('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe345('0x11'));var Redis=require(_0xe345('0x12'));var authService=require(_0xe345('0x13'));var qs=require(_0xe345('0x14'));var as=require(_0xe345('0x15'));var hardwareService=require(_0xe345('0x16'));var logger=require(_0xe345('0x17'))(_0xe345('0x18'));var utils=require(_0xe345('0x19'));var config=require(_0xe345('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0xe345('0x1b'))['db'];function respondWithStatusCode(_0x1a8ced,_0x5a5df4){_0x5a5df4=_0x5a5df4||0xcc;return function(_0x5d9379){if(_0x5d9379){return _0x1a8ced[_0xe345('0x1c')](_0x5a5df4);}return _0x1a8ced['status'](_0x5a5df4)[_0xe345('0x1d')]();};}function respondWithResult(_0x4ee2e9,_0x510923){_0x510923=_0x510923||0xc8;return function(_0x28af76){if(_0x28af76){return _0x4ee2e9[_0xe345('0x1e')](_0x510923)[_0xe345('0x1f')](_0x28af76);}};}function respondWithFilteredResult(_0x60ee31,_0x263ee0){return function(_0x1ce318){if(_0x1ce318){var _0x1d3717=typeof _0x263ee0[_0xe345('0x20')]===_0xe345('0x21')&&typeof _0x263ee0[_0xe345('0x22')]==='undefined';var _0x4f3887=_0x1ce318[_0xe345('0x23')];var _0x21f20a=_0x1d3717?0x0:_0x263ee0[_0xe345('0x20')];var _0x11332c=_0x1d3717?_0x1ce318[_0xe345('0x23')]:_0x263ee0['offset']+_0x263ee0[_0xe345('0x22')];var _0x143856;if(_0x11332c>=_0x4f3887){_0x11332c=_0x4f3887;_0x143856=0xc8;}else{_0x143856=0xce;}_0x60ee31['status'](_0x143856);return _0x60ee31[_0xe345('0x24')](_0xe345('0x25'),_0x21f20a+'-'+_0x11332c+'/'+_0x4f3887)[_0xe345('0x1f')](_0x1ce318);}return null;};}function patchUpdates(_0x6ea93d){return function(_0xe94a03){try{jsonpatch[_0xe345('0x26')](_0xe94a03,_0x6ea93d,!![]);}catch(_0x5a8c9b){return BPromise[_0xe345('0x27')](_0x5a8c9b);}return _0xe94a03['save']();};}function saveUpdates(_0x176e04,_0x5e3308){return function(_0x2d77ff){if(_0x2d77ff){return _0x2d77ff[_0xe345('0x28')](_0x176e04)[_0xe345('0x29')](function(_0x442811){return _0x442811;});}return null;};}function removeEntity(_0x47cb89,_0x5f2641){return function(_0x46f64d){if(_0x46f64d){return _0x46f64d[_0xe345('0x2a')]()['then'](function(){var _0x575c9a=_0x46f64d['get']({'plain':!![]});var _0x3dac93=_0xe345('0x2b');return db[_0xe345('0x2c')]['destroy']({'where':{'type':_0x3dac93,'resourceId':_0x575c9a['id']}})['then'](function(){return _0x46f64d;});})[_0xe345('0x29')](function(){_0x47cb89['status'](0xcc)[_0xe345('0x1d')]();});}};}function handleEntityNotFound(_0x76b74c,_0x4cd00e){return function(_0x517ffa){if(!_0x517ffa){_0x76b74c[_0xe345('0x1c')](0x194);}return _0x517ffa;};}function handleError(_0x5b527a,_0xa1c821){_0xa1c821=_0xa1c821||0x1f4;return function(_0x4aee1f){logger[_0xe345('0x2d')](_0x4aee1f['stack']);if(_0x4aee1f['name']){delete _0x4aee1f[_0xe345('0x2e')];}_0x5b527a[_0xe345('0x1e')](_0xa1c821)[_0xe345('0x2f')](_0x4aee1f);};}exports[_0xe345('0x30')]=function(_0x256585,_0x4c650a){var _0x13a4d4={},_0x34ec29={},_0x246a91={'count':0x0,'rows':[]};var _0x1bb9f7=_[_0xe345('0x31')](db['VoiceChanSpy'][_0xe345('0x32')],function(_0x374349){return{'name':_0x374349['fieldName'],'type':_0x374349[_0xe345('0x33')][_0xe345('0x34')]};});_0x34ec29[_0xe345('0x35')]=_['map'](_0x1bb9f7,'name');_0x34ec29[_0xe345('0x36')]=_[_0xe345('0x37')](_0x256585['query']);_0x34ec29[_0xe345('0x38')]=_[_0xe345('0x39')](_0x34ec29[_0xe345('0x35')],_0x34ec29[_0xe345('0x36')]);_0x13a4d4[_0xe345('0x3a')]=_[_0xe345('0x39')](_0x34ec29[_0xe345('0x35')],qs[_0xe345('0x3b')](_0x256585[_0xe345('0x36')]['fields']));_0x13a4d4[_0xe345('0x3a')]=_0x13a4d4[_0xe345('0x3a')][_0xe345('0x3c')]?_0x13a4d4[_0xe345('0x3a')]:_0x34ec29[_0xe345('0x35')];if(!_0x256585[_0xe345('0x36')]['hasOwnProperty']('nolimit')){_0x13a4d4['limit']=qs[_0xe345('0x22')](_0x256585['query'][_0xe345('0x22')]);_0x13a4d4[_0xe345('0x20')]=qs[_0xe345('0x20')](_0x256585[_0xe345('0x36')]['offset']);}_0x13a4d4[_0xe345('0x3d')]=qs[_0xe345('0x3e')](_0x256585[_0xe345('0x36')]['sort']);_0x13a4d4[_0xe345('0x3f')]=qs[_0xe345('0x38')](_[_0xe345('0x40')](_0x256585['query'],_0x34ec29['filters']),_0x1bb9f7);if(_0x256585[_0xe345('0x36')][_0xe345('0x41')]){_0x13a4d4[_0xe345('0x3f')]=_['merge'](_0x13a4d4['where'],{'$or':_[_0xe345('0x31')](_0x1bb9f7,function(_0x20007e){if(_0x20007e[_0xe345('0x33')]!==_0xe345('0x42')){var _0x3452f9={};_0x3452f9[_0x20007e[_0xe345('0x2e')]]={'$like':'%'+_0x256585[_0xe345('0x36')][_0xe345('0x41')]+'%'};return _0x3452f9;}})});}_0x13a4d4=_[_0xe345('0x43')]({},_0x13a4d4,_0x256585[_0xe345('0x44')]);var _0x4dfb17={'where':_0x13a4d4[_0xe345('0x3f')]};return db[_0xe345('0x45')][_0xe345('0x23')](_0x4dfb17)[_0xe345('0x29')](function(_0x52b848){_0x246a91['count']=_0x52b848;if(_0x256585['query'][_0xe345('0x46')]){_0x13a4d4[_0xe345('0x47')]=[{'all':!![]}];}return db[_0xe345('0x45')][_0xe345('0x48')](_0x13a4d4);})[_0xe345('0x29')](function(_0x7ce549){_0x246a91[_0xe345('0x49')]=_0x7ce549;return _0x246a91;})[_0xe345('0x29')](respondWithFilteredResult(_0x4c650a,_0x13a4d4))['catch'](handleError(_0x4c650a,null));};exports[_0xe345('0x4a')]=function(_0x4704ba,_0x4e8cac){var _0x53dbc7={'raw':![],'where':{'id':_0x4704ba[_0xe345('0x4b')]['id']}},_0x3fa377={};_0x3fa377[_0xe345('0x35')]=_['keys'](db[_0xe345('0x45')][_0xe345('0x32')]);_0x3fa377['query']=_['keys'](_0x4704ba[_0xe345('0x36')]);_0x3fa377[_0xe345('0x38')]=_['intersection'](_0x3fa377['model'],_0x3fa377[_0xe345('0x36')]);_0x53dbc7['attributes']=_[_0xe345('0x39')](_0x3fa377['model'],qs['fields'](_0x4704ba[_0xe345('0x36')][_0xe345('0x3b')]));_0x53dbc7[_0xe345('0x3a')]=_0x53dbc7[_0xe345('0x3a')][_0xe345('0x3c')]?_0x53dbc7[_0xe345('0x3a')]:_0x3fa377[_0xe345('0x35')];if(_0x4704ba[_0xe345('0x36')][_0xe345('0x46')]){_0x53dbc7['include']=[{'all':!![]}];}_0x53dbc7=_['merge']({},_0x53dbc7,_0x4704ba[_0xe345('0x44')]);return db[_0xe345('0x45')][_0xe345('0x4c')](_0x53dbc7)['then'](handleEntityNotFound(_0x4e8cac,null))[_0xe345('0x29')](respondWithResult(_0x4e8cac,null))[_0xe345('0x4d')](handleError(_0x4e8cac,null));};exports[_0xe345('0x4e')]=function(_0x22d1fe,_0x45ef35){return db['VoiceChanSpy']['create'](_0x22d1fe['body'],{})[_0xe345('0x29')](function(_0x1d924e){var _0x6f3a55=_0x22d1fe[_0xe345('0x4f')][_0xe345('0x50')]({'plain':!![]});if(!_0x6f3a55)throw new Error(_0xe345('0x51'));if(_0x6f3a55['role']===_0xe345('0x4f')){var _0x4a9b7f=_0x1d924e[_0xe345('0x50')]({'plain':!![]});var _0x2cac09=_0xe345('0x2b');return db['UserProfileSection'][_0xe345('0x4c')]({'where':{'name':_0x2cac09,'userProfileId':_0x6f3a55[_0xe345('0x52')]},'raw':!![]})['then'](function(_0x349c72){if(_0x349c72&&_0x349c72[_0xe345('0x53')]===0x0){return db[_0xe345('0x2c')]['create']({'name':_0x4a9b7f[_0xe345('0x2e')],'resourceId':_0x4a9b7f['id'],'type':_0x349c72['name'],'sectionId':_0x349c72['id']},{})[_0xe345('0x29')](function(){return _0x1d924e;});}else{return _0x1d924e;}})[_0xe345('0x4d')](function(_0x4e9b9f){logger[_0xe345('0x2d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4e9b9f);throw _0x4e9b9f;});}return _0x1d924e;})['then'](respondWithResult(_0x45ef35,0xc9))[_0xe345('0x4d')](handleError(_0x45ef35,null));};exports[_0xe345('0x28')]=function(_0x3388d3,_0x5b8e1f){if(_0x3388d3['body']['id']){delete _0x3388d3['body']['id'];}return db[_0xe345('0x45')][_0xe345('0x4c')]({'where':{'id':_0x3388d3['params']['id']}})[_0xe345('0x29')](handleEntityNotFound(_0x5b8e1f,null))[_0xe345('0x29')](saveUpdates(_0x3388d3[_0xe345('0x54')],null))[_0xe345('0x29')](respondWithResult(_0x5b8e1f,null))['catch'](handleError(_0x5b8e1f,null));};exports[_0xe345('0x2a')]=function(_0x2663e7,_0x2333c0){return db['VoiceChanSpy'][_0xe345('0x4c')]({'where':{'id':_0x2663e7[_0xe345('0x4b')]['id']}})[_0xe345('0x29')](handleEntityNotFound(_0x2333c0,null))[_0xe345('0x29')](removeEntity(_0x2333c0,null))[_0xe345('0x4d')](handleError(_0x2333c0,null));};