6ea1c1bfa331422c8086e5c752e5bfa87d704b88
[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 _0xb04a=['../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','offset','undefined','limit','Content-Range','reject','save','update','then','destroy','get','error','stack','name','send','VoiceChanSpy','fieldName','type','key','map','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','sort','where','VIRTUAL','filter','merge','options','count','includeAll','include','rows','catch','show','params','length','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','body','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x4d91f8,_0x5874ec){var _0x4c346c=function(_0x2d4477){while(--_0x2d4477){_0x4d91f8['push'](_0x4d91f8['shift']());}};_0x4c346c(++_0x5874ec);}(_0xb04a,0xcf));var _0xab04=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb04a[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xab04('0x0'));var rimraf=require(_0xab04('0x1'));var zipdir=require(_0xab04('0x2'));var jsonpatch=require(_0xab04('0x3'));var rp=require('request-promise');var moment=require(_0xab04('0x4'));var BPromise=require(_0xab04('0x5'));var Mustache=require(_0xab04('0x6'));var util=require('util');var path=require(_0xab04('0x7'));var sox=require(_0xab04('0x8'));var csv=require(_0xab04('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xab04('0xa'));var _=require(_0xab04('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xab04('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xab04('0xd'));var authService=require(_0xab04('0xe'));var qs=require(_0xab04('0xf'));var as=require(_0xab04('0x10'));var hardwareService=require(_0xab04('0x11'));var logger=require(_0xab04('0x12'))(_0xab04('0x13'));var utils=require(_0xab04('0x14'));var config=require(_0xab04('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x38e003,_0x3cf546){_0x3cf546=_0x3cf546||0xcc;return function(_0x4160d5){if(_0x4160d5){return _0x38e003[_0xab04('0x16')](_0x3cf546);}return _0x38e003['status'](_0x3cf546)[_0xab04('0x17')]();};}function respondWithResult(_0x2934bd,_0x5e3471){_0x5e3471=_0x5e3471||0xc8;return function(_0x233a8d){if(_0x233a8d){return _0x2934bd[_0xab04('0x18')](_0x5e3471)[_0xab04('0x19')](_0x233a8d);}};}function respondWithFilteredResult(_0x1fb034,_0x2cff48){return function(_0x523c51){if(_0x523c51){var _0x3371ed=typeof _0x2cff48[_0xab04('0x1a')]===_0xab04('0x1b')&&typeof _0x2cff48[_0xab04('0x1c')]===_0xab04('0x1b');var _0x5d10f7=_0x523c51['count'];var _0x371c30=_0x3371ed?0x0:_0x2cff48[_0xab04('0x1a')];var _0x2c0b39=_0x3371ed?_0x523c51['count']:_0x2cff48['offset']+_0x2cff48[_0xab04('0x1c')];var _0x287011;if(_0x2c0b39>=_0x5d10f7){_0x2c0b39=_0x5d10f7;_0x287011=0xc8;}else{_0x287011=0xce;}_0x1fb034[_0xab04('0x18')](_0x287011);return _0x1fb034['set'](_0xab04('0x1d'),_0x371c30+'-'+_0x2c0b39+'/'+_0x5d10f7)['json'](_0x523c51);}return null;};}function patchUpdates(_0x395c6b){return function(_0x2ac32c){try{jsonpatch['apply'](_0x2ac32c,_0x395c6b,!![]);}catch(_0x4808ba){return BPromise[_0xab04('0x1e')](_0x4808ba);}return _0x2ac32c[_0xab04('0x1f')]();};}function saveUpdates(_0x5a204c,_0x3f0d72){return function(_0x19d9cb){if(_0x19d9cb){return _0x19d9cb[_0xab04('0x20')](_0x5a204c)[_0xab04('0x21')](function(_0x3667fd){return _0x3667fd;});}return null;};}function removeEntity(_0x4c7a19,_0x19fcab){return function(_0x4df287){if(_0x4df287){return _0x4df287[_0xab04('0x22')]()[_0xab04('0x21')](function(){var _0x561525=_0x4df287[_0xab04('0x23')]({'plain':!![]});var _0x49b9bf='ChanSpies';return db['UserProfileResource'][_0xab04('0x22')]({'where':{'type':_0x49b9bf,'resourceId':_0x561525['id']}})[_0xab04('0x21')](function(){return _0x4df287;});})[_0xab04('0x21')](function(){_0x4c7a19[_0xab04('0x18')](0xcc)[_0xab04('0x17')]();});}};}function handleEntityNotFound(_0x4a5124,_0x59546a){return function(_0x19f651){if(!_0x19f651){_0x4a5124['sendStatus'](0x194);}return _0x19f651;};}function handleError(_0xb8e7b,_0xdf0b96){_0xdf0b96=_0xdf0b96||0x1f4;return function(_0x15cae9){logger[_0xab04('0x24')](_0x15cae9[_0xab04('0x25')]);if(_0x15cae9[_0xab04('0x26')]){delete _0x15cae9['name'];}_0xb8e7b[_0xab04('0x18')](_0xdf0b96)[_0xab04('0x27')](_0x15cae9);};}exports['index']=function(_0x33ce1e,_0x1028c7){var _0x15e080={},_0x2b2b33={},_0x34f933={'count':0x0,'rows':[]};var _0x18cc80=_['map'](db[_0xab04('0x28')]['rawAttributes'],function(_0x1243f0){return{'name':_0x1243f0[_0xab04('0x29')],'type':_0x1243f0[_0xab04('0x2a')][_0xab04('0x2b')]};});_0x2b2b33['model']=_[_0xab04('0x2c')](_0x18cc80,'name');_0x2b2b33[_0xab04('0x2d')]=_[_0xab04('0x2e')](_0x33ce1e[_0xab04('0x2d')]);_0x2b2b33[_0xab04('0x2f')]=_[_0xab04('0x30')](_0x2b2b33[_0xab04('0x31')],_0x2b2b33[_0xab04('0x2d')]);_0x15e080['attributes']=_['intersection'](_0x2b2b33[_0xab04('0x31')],qs[_0xab04('0x32')](_0x33ce1e[_0xab04('0x2d')]['fields']));_0x15e080[_0xab04('0x33')]=_0x15e080[_0xab04('0x33')]['length']?_0x15e080[_0xab04('0x33')]:_0x2b2b33[_0xab04('0x31')];if(!_0x33ce1e[_0xab04('0x2d')][_0xab04('0x34')](_0xab04('0x35'))){_0x15e080['limit']=qs[_0xab04('0x1c')](_0x33ce1e['query']['limit']);_0x15e080[_0xab04('0x1a')]=qs[_0xab04('0x1a')](_0x33ce1e[_0xab04('0x2d')][_0xab04('0x1a')]);}_0x15e080['order']=qs[_0xab04('0x36')](_0x33ce1e[_0xab04('0x2d')]['sort']);_0x15e080[_0xab04('0x37')]=qs[_0xab04('0x2f')](_['pick'](_0x33ce1e[_0xab04('0x2d')],_0x2b2b33[_0xab04('0x2f')]),_0x18cc80);if(_0x33ce1e[_0xab04('0x2d')]['filter']){_0x15e080[_0xab04('0x37')]=_['merge'](_0x15e080[_0xab04('0x37')],{'$or':_[_0xab04('0x2c')](_0x18cc80,function(_0x2f43fb){if(_0x2f43fb[_0xab04('0x2a')]!==_0xab04('0x38')){var _0x4df5df={};_0x4df5df[_0x2f43fb[_0xab04('0x26')]]={'$like':'%'+_0x33ce1e['query'][_0xab04('0x39')]+'%'};return _0x4df5df;}})});}_0x15e080=_[_0xab04('0x3a')]({},_0x15e080,_0x33ce1e[_0xab04('0x3b')]);var _0x1b2a8e={'where':_0x15e080['where']};return db[_0xab04('0x28')][_0xab04('0x3c')](_0x1b2a8e)[_0xab04('0x21')](function(_0x5e915d){_0x34f933[_0xab04('0x3c')]=_0x5e915d;if(_0x33ce1e[_0xab04('0x2d')][_0xab04('0x3d')]){_0x15e080[_0xab04('0x3e')]=[{'all':!![]}];}return db['VoiceChanSpy']['findAll'](_0x15e080);})['then'](function(_0xa72dd2){_0x34f933[_0xab04('0x3f')]=_0xa72dd2;return _0x34f933;})[_0xab04('0x21')](respondWithFilteredResult(_0x1028c7,_0x15e080))[_0xab04('0x40')](handleError(_0x1028c7,null));};exports[_0xab04('0x41')]=function(_0x20e779,_0x32f3ba){var _0x5171ee={'raw':![],'where':{'id':_0x20e779[_0xab04('0x42')]['id']}},_0x1aad7c={};_0x1aad7c[_0xab04('0x31')]=_['keys'](db[_0xab04('0x28')]['rawAttributes']);_0x1aad7c[_0xab04('0x2d')]=_['keys'](_0x20e779[_0xab04('0x2d')]);_0x1aad7c[_0xab04('0x2f')]=_[_0xab04('0x30')](_0x1aad7c[_0xab04('0x31')],_0x1aad7c[_0xab04('0x2d')]);_0x5171ee[_0xab04('0x33')]=_['intersection'](_0x1aad7c[_0xab04('0x31')],qs[_0xab04('0x32')](_0x20e779[_0xab04('0x2d')][_0xab04('0x32')]));_0x5171ee[_0xab04('0x33')]=_0x5171ee['attributes'][_0xab04('0x43')]?_0x5171ee[_0xab04('0x33')]:_0x1aad7c[_0xab04('0x31')];if(_0x20e779[_0xab04('0x2d')][_0xab04('0x3d')]){_0x5171ee[_0xab04('0x3e')]=[{'all':!![]}];}_0x5171ee=_[_0xab04('0x3a')]({},_0x5171ee,_0x20e779[_0xab04('0x3b')]);return db['VoiceChanSpy']['find'](_0x5171ee)['then'](handleEntityNotFound(_0x32f3ba,null))['then'](respondWithResult(_0x32f3ba,null))[_0xab04('0x40')](handleError(_0x32f3ba,null));};exports['create']=function(_0x51907d,_0x154c60){return db[_0xab04('0x28')]['create'](_0x51907d['body'],{})[_0xab04('0x21')](function(_0x3ea473){var _0x1080e2=_0x51907d[_0xab04('0x44')][_0xab04('0x23')]({'plain':!![]});if(!_0x1080e2)throw new Error(_0xab04('0x45'));if(_0x1080e2['role']===_0xab04('0x44')){var _0x3c33ef=_0x3ea473[_0xab04('0x23')]({'plain':!![]});var _0x2f18f0='ChanSpies';return db[_0xab04('0x46')][_0xab04('0x47')]({'where':{'name':_0x2f18f0,'userProfileId':_0x1080e2[_0xab04('0x48')]},'raw':!![]})[_0xab04('0x21')](function(_0x5d6340){if(_0x5d6340&&_0x5d6340[_0xab04('0x49')]===0x0){return db['UserProfileResource']['create']({'name':_0x3c33ef[_0xab04('0x26')],'resourceId':_0x3c33ef['id'],'type':_0x5d6340[_0xab04('0x26')],'sectionId':_0x5d6340['id']},{})[_0xab04('0x21')](function(){return _0x3ea473;});}else{return _0x3ea473;}})[_0xab04('0x40')](function(_0x1aa5a0){logger[_0xab04('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1aa5a0);throw _0x1aa5a0;});}return _0x3ea473;})[_0xab04('0x21')](respondWithResult(_0x154c60,0xc9))['catch'](handleError(_0x154c60,null));};exports['update']=function(_0x4b84a1,_0x4217f6){if(_0x4b84a1[_0xab04('0x4a')]['id']){delete _0x4b84a1[_0xab04('0x4a')]['id'];}return db[_0xab04('0x28')][_0xab04('0x47')]({'where':{'id':_0x4b84a1[_0xab04('0x42')]['id']}})[_0xab04('0x21')](handleEntityNotFound(_0x4217f6,null))['then'](saveUpdates(_0x4b84a1[_0xab04('0x4a')],null))[_0xab04('0x21')](respondWithResult(_0x4217f6,null))['catch'](handleError(_0x4217f6,null));};exports[_0xab04('0x22')]=function(_0xd60a99,_0x76a90c){return db[_0xab04('0x28')]['find']({'where':{'id':_0xd60a99[_0xab04('0x42')]['id']}})['then'](handleEntityNotFound(_0x76a90c,null))['then'](removeEntity(_0x76a90c,null))['catch'](handleError(_0x76a90c,null));};