623c7d09e9a34121618b7031a4e89009f80a5334
[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 _0x9535=['../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','end','json','count','offset','limit','status','Content-Range','apply','reject','then','destroy','get','ChanSpies','UserProfileResource','error','stack','name','send','index','VoiceChanSpy','fieldName','map','query','keys','intersection','attributes','model','fields','hasOwnProperty','order','sort','where','filters','pick','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','rimraf','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x4443d8,_0x3af849){var _0xacebfc=function(_0x3219fe){while(--_0x3219fe){_0x4443d8['push'](_0x4443d8['shift']());}};_0xacebfc(++_0x3af849);}(_0x9535,0x179));var _0x5953=function(_0x31d181,_0x4ea766){_0x31d181=_0x31d181-0x0;var _0x1d52d9=_0x9535[_0x31d181];return _0x1d52d9;};'use strict';var emlformat=require(_0x5953('0x0'));var rimraf=require(_0x5953('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5953('0x2'));var BPromise=require(_0x5953('0x3'));var Mustache=require(_0x5953('0x4'));var util=require(_0x5953('0x5'));var path=require(_0x5953('0x6'));var sox=require('sox');var csv=require(_0x5953('0x7'));var ejs=require(_0x5953('0x8'));var fs=require('fs');var fs_extra=require(_0x5953('0x9'));var _=require(_0x5953('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5953('0xb'));var deskjs=require(_0x5953('0xc'));var toCsv=require(_0x5953('0x7'));var querystring=require(_0x5953('0xd'));var Papa=require(_0x5953('0xe'));var Redis=require(_0x5953('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x5953('0x10'));var as=require(_0x5953('0x11'));var hardwareService=require(_0x5953('0x12'));var logger=require(_0x5953('0x13'))(_0x5953('0x14'));var utils=require('../../config/utils');var config=require(_0x5953('0x15'));var licenseUtil=require(_0x5953('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x54ebde,_0x2f0003){_0x2f0003=_0x2f0003||0xcc;return function(_0x461060){if(_0x461060){return _0x54ebde[_0x5953('0x17')](_0x2f0003);}return _0x54ebde['status'](_0x2f0003)[_0x5953('0x18')]();};}function respondWithResult(_0x6fa283,_0x508eac){_0x508eac=_0x508eac||0xc8;return function(_0xf354bc){if(_0xf354bc){return _0x6fa283['status'](_0x508eac)[_0x5953('0x19')](_0xf354bc);}};}function respondWithFilteredResult(_0x4cd056,_0x37b2a1){return function(_0x4cc36e){if(_0x4cc36e){var _0x23863e=_0x4cc36e[_0x5953('0x1a')],_0x190c3f=_0x37b2a1[_0x5953('0x1b')],_0x19f0ee=_0x37b2a1[_0x5953('0x1b')]+_0x37b2a1[_0x5953('0x1c')],_0x5af847;if(_0x19f0ee>=_0x23863e){_0x19f0ee=_0x23863e;_0x5af847=0xc8;}else{_0x5af847=0xce;}_0x4cd056[_0x5953('0x1d')](_0x5af847);return _0x4cd056['set'](_0x5953('0x1e'),_0x190c3f+'-'+_0x19f0ee+'/'+_0x23863e)[_0x5953('0x19')](_0x4cc36e);}return null;};}function patchUpdates(_0x2846d3){return function(_0x4af1ce){try{jsonpatch[_0x5953('0x1f')](_0x4af1ce,_0x2846d3,!![]);}catch(_0x26420d){return BPromise[_0x5953('0x20')](_0x26420d);}return _0x4af1ce['save']();};}function saveUpdates(_0x47e49b,_0x2000ba){return function(_0x2257c8){if(_0x2257c8){return _0x2257c8['update'](_0x47e49b)[_0x5953('0x21')](function(_0x1c1af2){return _0x1c1af2;});}return null;};}function removeEntity(_0x4822b1,_0x620757){return function(_0x2fd24b){if(_0x2fd24b){return _0x2fd24b[_0x5953('0x22')]()[_0x5953('0x21')](function(){var _0x3ba201=_0x2fd24b[_0x5953('0x23')]({'plain':!![]});var _0x28459f=_0x5953('0x24');return db[_0x5953('0x25')][_0x5953('0x22')]({'where':{'type':_0x28459f,'resourceId':_0x3ba201['id']}})[_0x5953('0x21')](function(){return _0x2fd24b;});})[_0x5953('0x21')](function(){_0x4822b1[_0x5953('0x1d')](0xcc)[_0x5953('0x18')]();});}};}function handleEntityNotFound(_0x3c9791,_0x5843a9){return function(_0x1e10be){if(!_0x1e10be){_0x3c9791[_0x5953('0x17')](0x194);}return _0x1e10be;};}function handleError(_0x2c1aa0,_0x43ffca){_0x43ffca=_0x43ffca||0x1f4;return function(_0x579038){logger[_0x5953('0x26')](_0x579038[_0x5953('0x27')]);if(_0x579038[_0x5953('0x28')]){delete _0x579038[_0x5953('0x28')];}_0x2c1aa0[_0x5953('0x1d')](_0x43ffca)[_0x5953('0x29')](_0x579038);};}exports[_0x5953('0x2a')]=function(_0x1949da,_0x5616b8){var _0x388cd0={},_0xc414c1={},_0x5c265c={'count':0x0,'rows':[]};var _0x2b8172=_['map'](db[_0x5953('0x2b')]['rawAttributes'],function(_0x32c850){return{'name':_0x32c850[_0x5953('0x2c')],'type':_0x32c850['type']['key']};});_0xc414c1['model']=_[_0x5953('0x2d')](_0x2b8172,_0x5953('0x28'));_0xc414c1[_0x5953('0x2e')]=_[_0x5953('0x2f')](_0x1949da[_0x5953('0x2e')]);_0xc414c1['filters']=_[_0x5953('0x30')](_0xc414c1['model'],_0xc414c1['query']);_0x388cd0[_0x5953('0x31')]=_['intersection'](_0xc414c1[_0x5953('0x32')],qs['fields'](_0x1949da[_0x5953('0x2e')][_0x5953('0x33')]));_0x388cd0[_0x5953('0x31')]=_0x388cd0[_0x5953('0x31')]['length']?_0x388cd0[_0x5953('0x31')]:_0xc414c1['model'];if(!_0x1949da[_0x5953('0x2e')][_0x5953('0x34')]('nolimit')){_0x388cd0[_0x5953('0x1c')]=qs[_0x5953('0x1c')](_0x1949da[_0x5953('0x2e')][_0x5953('0x1c')]);_0x388cd0[_0x5953('0x1b')]=qs[_0x5953('0x1b')](_0x1949da[_0x5953('0x2e')]['offset']);}_0x388cd0[_0x5953('0x35')]=qs[_0x5953('0x36')](_0x1949da[_0x5953('0x2e')]['sort']);_0x388cd0[_0x5953('0x37')]=qs[_0x5953('0x38')](_[_0x5953('0x39')](_0x1949da[_0x5953('0x2e')],_0xc414c1['filters']),_0x2b8172);if(_0x1949da[_0x5953('0x2e')]['filter']){_0x388cd0[_0x5953('0x37')]=_[_0x5953('0x3a')](_0x388cd0[_0x5953('0x37')],{'$or':_['map'](_0x2b8172,function(_0x58480b){if(_0x58480b['type']!=='VIRTUAL'){var _0x1ec0fe={};_0x1ec0fe[_0x58480b[_0x5953('0x28')]]={'$like':'%'+_0x1949da[_0x5953('0x2e')]['filter']+'%'};return _0x1ec0fe;}})});}_0x388cd0=_['merge']({},_0x388cd0,_0x1949da[_0x5953('0x3b')]);var _0x17befd={'where':_0x388cd0[_0x5953('0x37')]};return db[_0x5953('0x2b')][_0x5953('0x1a')](_0x17befd)[_0x5953('0x21')](function(_0x230bb2){_0x5c265c[_0x5953('0x1a')]=_0x230bb2;if(_0x1949da[_0x5953('0x2e')][_0x5953('0x3c')]){_0x388cd0[_0x5953('0x3d')]=[{'all':!![]}];}return db['VoiceChanSpy'][_0x5953('0x3e')](_0x388cd0);})['then'](function(_0x89924){_0x5c265c[_0x5953('0x3f')]=_0x89924;return _0x5c265c;})[_0x5953('0x21')](respondWithFilteredResult(_0x5616b8,_0x388cd0))[_0x5953('0x40')](handleError(_0x5616b8,null));};exports[_0x5953('0x41')]=function(_0x2db1f6,_0x335c30){var _0x5dcd94={'raw':![],'where':{'id':_0x2db1f6[_0x5953('0x42')]['id']}},_0x2b26fa={};_0x2b26fa[_0x5953('0x32')]=_[_0x5953('0x2f')](db[_0x5953('0x2b')][_0x5953('0x43')]);_0x2b26fa[_0x5953('0x2e')]=_[_0x5953('0x2f')](_0x2db1f6[_0x5953('0x2e')]);_0x2b26fa[_0x5953('0x38')]=_['intersection'](_0x2b26fa['model'],_0x2b26fa['query']);_0x5dcd94[_0x5953('0x31')]=_[_0x5953('0x30')](_0x2b26fa['model'],qs[_0x5953('0x33')](_0x2db1f6[_0x5953('0x2e')]['fields']));_0x5dcd94[_0x5953('0x31')]=_0x5dcd94['attributes'][_0x5953('0x44')]?_0x5dcd94['attributes']:_0x2b26fa['model'];if(_0x2db1f6['query'][_0x5953('0x3c')]){_0x5dcd94[_0x5953('0x3d')]=[{'all':!![]}];}_0x5dcd94=_[_0x5953('0x3a')]({},_0x5dcd94,_0x2db1f6[_0x5953('0x3b')]);return db[_0x5953('0x2b')][_0x5953('0x45')](_0x5dcd94)[_0x5953('0x21')](handleEntityNotFound(_0x335c30,null))[_0x5953('0x21')](respondWithResult(_0x335c30,null))[_0x5953('0x40')](handleError(_0x335c30,null));};exports['create']=function(_0x3b0339,_0x46408a){return db['VoiceChanSpy'][_0x5953('0x46')](_0x3b0339[_0x5953('0x47')],{})[_0x5953('0x21')](function(_0x3b973e){var _0x4e8078=_0x3b0339[_0x5953('0x48')][_0x5953('0x23')]({'plain':!![]});if(!_0x4e8078)throw new Error(_0x5953('0x49'));if(_0x4e8078[_0x5953('0x4a')]===_0x5953('0x48')){var _0x12c80c=_0x3b973e['get']({'plain':!![]});var _0x51b363=_0x5953('0x24');return db[_0x5953('0x4b')]['find']({'where':{'name':_0x51b363,'userProfileId':_0x4e8078['userProfileId']},'raw':!![]})['then'](function(_0x1cda57){if(_0x1cda57&&_0x1cda57[_0x5953('0x4c')]===0x0){return db[_0x5953('0x25')]['create']({'name':_0x12c80c[_0x5953('0x28')],'resourceId':_0x12c80c['id'],'type':_0x1cda57[_0x5953('0x28')],'sectionId':_0x1cda57['id']},{})['then'](function(){return _0x3b973e;});}else{return _0x3b973e;}})[_0x5953('0x40')](function(_0x547fb5){logger[_0x5953('0x26')](_0x5953('0x4d'),_0x547fb5);throw _0x547fb5;});}return _0x3b973e;})['then'](respondWithResult(_0x46408a,0xc9))[_0x5953('0x40')](handleError(_0x46408a,null));};exports[_0x5953('0x4e')]=function(_0x34ddef,_0x23afa1){if(_0x34ddef['body']['id']){delete _0x34ddef[_0x5953('0x47')]['id'];}return db['VoiceChanSpy'][_0x5953('0x45')]({'where':{'id':_0x34ddef[_0x5953('0x42')]['id']}})[_0x5953('0x21')](handleEntityNotFound(_0x23afa1,null))['then'](saveUpdates(_0x34ddef[_0x5953('0x47')],null))['then'](respondWithResult(_0x23afa1,null))[_0x5953('0x40')](handleError(_0x23afa1,null));};exports['destroy']=function(_0x56ed02,_0x20dff1){return db[_0x5953('0x2b')][_0x5953('0x45')]({'where':{'id':_0x56ed02['params']['id']}})[_0x5953('0x21')](handleEntityNotFound(_0x20dff1,null))[_0x5953('0x21')](removeEntity(_0x20dff1,null))['catch'](handleError(_0x20dff1,null));};