7f596dd828aeb00acd432594500ad24e76d4e7a3
[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 _0xb75c=['offset','limit','undefined','count','Content-Range','json','apply','save','then','destroy','get','UserProfileResource','error','stack','name','send','index','VoiceChanSpy','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','include','findAll','rows','catch','show','params','rawAttributes','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ChanSpies','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','fs-extra','lodash','squel','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x77d310,_0x2b2fe7){var _0x2cdce4=function(_0xbaa481){while(--_0xbaa481){_0x77d310['push'](_0x77d310['shift']());}};_0x2cdce4(++_0x2b2fe7);}(_0xb75c,0x1ce));var _0xcb75=function(_0x364874,_0x567de7){_0x364874=_0x364874-0x0;var _0x4e6003=_0xb75c[_0x364874];return _0x4e6003;};'use strict';var emlformat=require(_0xcb75('0x0'));var rimraf=require(_0xcb75('0x1'));var zipdir=require(_0xcb75('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcb75('0x3'));var moment=require('moment');var BPromise=require(_0xcb75('0x4'));var Mustache=require(_0xcb75('0x5'));var util=require(_0xcb75('0x6'));var path=require('path');var sox=require(_0xcb75('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcb75('0x8'));var _=require(_0xcb75('0x9'));var squel=require(_0xcb75('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xcb75('0xb'));var querystring=require(_0xcb75('0xc'));var Papa=require(_0xcb75('0xd'));var Redis=require('ioredis');var authService=require(_0xcb75('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xcb75('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcb75('0x10'))('api');var utils=require(_0xcb75('0x11'));var config=require(_0xcb75('0x12'));var licenseUtil=require(_0xcb75('0x13'));var db=require(_0xcb75('0x14'))['db'];function respondWithStatusCode(_0x526c03,_0x1e0bba){_0x1e0bba=_0x1e0bba||0xcc;return function(_0x13c953){if(_0x13c953){return _0x526c03[_0xcb75('0x15')](_0x1e0bba);}return _0x526c03[_0xcb75('0x16')](_0x1e0bba)[_0xcb75('0x17')]();};}function respondWithResult(_0x3ae629,_0x23c719){_0x23c719=_0x23c719||0xc8;return function(_0x2c14a1){if(_0x2c14a1){return _0x3ae629['status'](_0x23c719)['json'](_0x2c14a1);}};}function respondWithFilteredResult(_0xa0ce25,_0x1af8c1){return function(_0x589afc){if(_0x589afc){var _0x1b9765=typeof _0x1af8c1[_0xcb75('0x18')]==='undefined'&&typeof _0x1af8c1[_0xcb75('0x19')]===_0xcb75('0x1a');var _0x1a0413=_0x589afc[_0xcb75('0x1b')];var _0x57ad84=_0x1b9765?0x0:_0x1af8c1[_0xcb75('0x18')];var _0x32a66f=_0x1b9765?_0x589afc['count']:_0x1af8c1[_0xcb75('0x18')]+_0x1af8c1[_0xcb75('0x19')];var _0x6be8f0;if(_0x32a66f>=_0x1a0413){_0x32a66f=_0x1a0413;_0x6be8f0=0xc8;}else{_0x6be8f0=0xce;}_0xa0ce25[_0xcb75('0x16')](_0x6be8f0);return _0xa0ce25['set'](_0xcb75('0x1c'),_0x57ad84+'-'+_0x32a66f+'/'+_0x1a0413)[_0xcb75('0x1d')](_0x589afc);}return null;};}function patchUpdates(_0x14bba7){return function(_0x2489e9){try{jsonpatch[_0xcb75('0x1e')](_0x2489e9,_0x14bba7,!![]);}catch(_0x232c57){return BPromise['reject'](_0x232c57);}return _0x2489e9[_0xcb75('0x1f')]();};}function saveUpdates(_0x4ca28b,_0x265cf2){return function(_0x78e743){if(_0x78e743){return _0x78e743['update'](_0x4ca28b)[_0xcb75('0x20')](function(_0x1a7154){return _0x1a7154;});}return null;};}function removeEntity(_0x5b0874,_0x29a56e){return function(_0x338222){if(_0x338222){return _0x338222[_0xcb75('0x21')]()[_0xcb75('0x20')](function(){var _0x3c22fa=_0x338222[_0xcb75('0x22')]({'plain':!![]});var _0x1f6df6='ChanSpies';return db[_0xcb75('0x23')][_0xcb75('0x21')]({'where':{'type':_0x1f6df6,'resourceId':_0x3c22fa['id']}})['then'](function(){return _0x338222;});})[_0xcb75('0x20')](function(){_0x5b0874[_0xcb75('0x16')](0xcc)[_0xcb75('0x17')]();});}};}function handleEntityNotFound(_0x11b9c3,_0x2a3a6a){return function(_0x39e9d1){if(!_0x39e9d1){_0x11b9c3[_0xcb75('0x15')](0x194);}return _0x39e9d1;};}function handleError(_0x14e356,_0x10950e){_0x10950e=_0x10950e||0x1f4;return function(_0x54d718){logger[_0xcb75('0x24')](_0x54d718[_0xcb75('0x25')]);if(_0x54d718['name']){delete _0x54d718[_0xcb75('0x26')];}_0x14e356[_0xcb75('0x16')](_0x10950e)[_0xcb75('0x27')](_0x54d718);};}exports[_0xcb75('0x28')]=function(_0x203bcd,_0x4bd240){var _0x562b4a={},_0x551844={},_0x5898da={'count':0x0,'rows':[]};var _0x1c59fa=_['map'](db[_0xcb75('0x29')]['rawAttributes'],function(_0x1ed0c2){return{'name':_0x1ed0c2[_0xcb75('0x2a')],'type':_0x1ed0c2[_0xcb75('0x2b')]['key']};});_0x551844['model']=_[_0xcb75('0x2c')](_0x1c59fa,_0xcb75('0x26'));_0x551844[_0xcb75('0x2d')]=_[_0xcb75('0x2e')](_0x203bcd[_0xcb75('0x2d')]);_0x551844[_0xcb75('0x2f')]=_[_0xcb75('0x30')](_0x551844[_0xcb75('0x31')],_0x551844[_0xcb75('0x2d')]);_0x562b4a[_0xcb75('0x32')]=_[_0xcb75('0x30')](_0x551844[_0xcb75('0x31')],qs['fields'](_0x203bcd[_0xcb75('0x2d')][_0xcb75('0x33')]));_0x562b4a['attributes']=_0x562b4a[_0xcb75('0x32')][_0xcb75('0x34')]?_0x562b4a[_0xcb75('0x32')]:_0x551844['model'];if(!_0x203bcd['query'][_0xcb75('0x35')](_0xcb75('0x36'))){_0x562b4a['limit']=qs[_0xcb75('0x19')](_0x203bcd['query'][_0xcb75('0x19')]);_0x562b4a[_0xcb75('0x18')]=qs[_0xcb75('0x18')](_0x203bcd['query'][_0xcb75('0x18')]);}_0x562b4a[_0xcb75('0x37')]=qs[_0xcb75('0x38')](_0x203bcd[_0xcb75('0x2d')][_0xcb75('0x38')]);_0x562b4a[_0xcb75('0x39')]=qs[_0xcb75('0x2f')](_[_0xcb75('0x3a')](_0x203bcd[_0xcb75('0x2d')],_0x551844[_0xcb75('0x2f')]),_0x1c59fa);if(_0x203bcd[_0xcb75('0x2d')]['filter']){_0x562b4a['where']=_['merge'](_0x562b4a[_0xcb75('0x39')],{'$or':_[_0xcb75('0x2c')](_0x1c59fa,function(_0x2fe0a6){if(_0x2fe0a6[_0xcb75('0x2b')]!=='VIRTUAL'){var _0x2eb5ac={};_0x2eb5ac[_0x2fe0a6[_0xcb75('0x26')]]={'$like':'%'+_0x203bcd[_0xcb75('0x2d')][_0xcb75('0x3b')]+'%'};return _0x2eb5ac;}})});}_0x562b4a=_[_0xcb75('0x3c')]({},_0x562b4a,_0x203bcd['options']);var _0x31331d={'where':_0x562b4a[_0xcb75('0x39')]};return db[_0xcb75('0x29')][_0xcb75('0x1b')](_0x31331d)[_0xcb75('0x20')](function(_0x53db83){_0x5898da[_0xcb75('0x1b')]=_0x53db83;if(_0x203bcd[_0xcb75('0x2d')]['includeAll']){_0x562b4a[_0xcb75('0x3d')]=[{'all':!![]}];}return db['VoiceChanSpy'][_0xcb75('0x3e')](_0x562b4a);})[_0xcb75('0x20')](function(_0x20996a){_0x5898da[_0xcb75('0x3f')]=_0x20996a;return _0x5898da;})[_0xcb75('0x20')](respondWithFilteredResult(_0x4bd240,_0x562b4a))[_0xcb75('0x40')](handleError(_0x4bd240,null));};exports[_0xcb75('0x41')]=function(_0x30efa9,_0x3ae1e0){var _0x509de1={'raw':![],'where':{'id':_0x30efa9[_0xcb75('0x42')]['id']}},_0x27456a={};_0x27456a[_0xcb75('0x31')]=_[_0xcb75('0x2e')](db[_0xcb75('0x29')][_0xcb75('0x43')]);_0x27456a[_0xcb75('0x2d')]=_[_0xcb75('0x2e')](_0x30efa9[_0xcb75('0x2d')]);_0x27456a[_0xcb75('0x2f')]=_[_0xcb75('0x30')](_0x27456a[_0xcb75('0x31')],_0x27456a[_0xcb75('0x2d')]);_0x509de1[_0xcb75('0x32')]=_[_0xcb75('0x30')](_0x27456a[_0xcb75('0x31')],qs['fields'](_0x30efa9['query'][_0xcb75('0x33')]));_0x509de1[_0xcb75('0x32')]=_0x509de1[_0xcb75('0x32')][_0xcb75('0x34')]?_0x509de1['attributes']:_0x27456a[_0xcb75('0x31')];if(_0x30efa9[_0xcb75('0x2d')]['includeAll']){_0x509de1[_0xcb75('0x3d')]=[{'all':!![]}];}_0x509de1=_[_0xcb75('0x3c')]({},_0x509de1,_0x30efa9[_0xcb75('0x44')]);return db[_0xcb75('0x29')][_0xcb75('0x45')](_0x509de1)[_0xcb75('0x20')](handleEntityNotFound(_0x3ae1e0,null))[_0xcb75('0x20')](respondWithResult(_0x3ae1e0,null))[_0xcb75('0x40')](handleError(_0x3ae1e0,null));};exports['create']=function(_0x1fb0a3,_0x122f3e){return db['VoiceChanSpy'][_0xcb75('0x46')](_0x1fb0a3['body'],{})['then'](function(_0x106f7d){var _0x473d42=_0x1fb0a3[_0xcb75('0x47')][_0xcb75('0x22')]({'plain':!![]});if(!_0x473d42)throw new Error(_0xcb75('0x48'));if(_0x473d42[_0xcb75('0x49')]===_0xcb75('0x47')){var _0x12fa20=_0x106f7d[_0xcb75('0x22')]({'plain':!![]});var _0x69d49a=_0xcb75('0x4a');return db[_0xcb75('0x4b')][_0xcb75('0x45')]({'where':{'name':_0x69d49a,'userProfileId':_0x473d42[_0xcb75('0x4c')]},'raw':!![]})[_0xcb75('0x20')](function(_0x1ec88b){if(_0x1ec88b&&_0x1ec88b[_0xcb75('0x4d')]===0x0){return db['UserProfileResource']['create']({'name':_0x12fa20[_0xcb75('0x26')],'resourceId':_0x12fa20['id'],'type':_0x1ec88b[_0xcb75('0x26')],'sectionId':_0x1ec88b['id']},{})[_0xcb75('0x20')](function(){return _0x106f7d;});}else{return _0x106f7d;}})['catch'](function(_0x5c19fc){logger[_0xcb75('0x24')](_0xcb75('0x4e'),_0x5c19fc);throw _0x5c19fc;});}return _0x106f7d;})[_0xcb75('0x20')](respondWithResult(_0x122f3e,0xc9))[_0xcb75('0x40')](handleError(_0x122f3e,null));};exports[_0xcb75('0x4f')]=function(_0xd27f71,_0x160964){if(_0xd27f71['body']['id']){delete _0xd27f71['body']['id'];}return db['VoiceChanSpy'][_0xcb75('0x45')]({'where':{'id':_0xd27f71['params']['id']}})['then'](handleEntityNotFound(_0x160964,null))['then'](saveUpdates(_0xd27f71[_0xcb75('0x50')],null))[_0xcb75('0x20')](respondWithResult(_0x160964,null))[_0xcb75('0x40')](handleError(_0x160964,null));};exports[_0xcb75('0x21')]=function(_0x361e94,_0x558410){return db['VoiceChanSpy']['find']({'where':{'id':_0x361e94[_0xcb75('0x42')]['id']}})[_0xcb75('0x20')](handleEntityNotFound(_0x558410,null))[_0xcb75('0x20')](removeEntity(_0x558410,null))[_0xcb75('0x40')](handleError(_0x558410,null));};