894500e9ba14b9f4981c4e081a92779b0fb9a060
[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 _0x5752=['create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/parsers/advancedSearch','../../config/environment','../../config/license/util','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','get','ChanSpies','UserProfileResource','error','stack','name','send','index','map','VoiceChanSpy','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','include','find','catch'];(function(_0x53807d,_0x4a90a8){var _0x501207=function(_0xea7078){while(--_0xea7078){_0x53807d['push'](_0x53807d['shift']());}};_0x501207(++_0x4a90a8);}(_0x5752,0x17f));var _0x2575=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0x5752[_0x1694f5];return _0x5b4321;};'use strict';var emlformat=require(_0x2575('0x0'));var rimraf=require(_0x2575('0x1'));var zipdir=require(_0x2575('0x2'));var jsonpatch=require(_0x2575('0x3'));var rp=require(_0x2575('0x4'));var moment=require('moment');var BPromise=require(_0x2575('0x5'));var Mustache=require(_0x2575('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x2575('0x7'));var fs=require('fs');var fs_extra=require(_0x2575('0x8'));var _=require('lodash');var squel=require(_0x2575('0x9'));var crypto=require(_0x2575('0xa'));var jsforce=require(_0x2575('0xb'));var deskjs=require(_0x2575('0xc'));var toCsv=require(_0x2575('0xd'));var querystring=require(_0x2575('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2575('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x2575('0x10'));var licenseUtil=require(_0x2575('0x11'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xabef4a,_0xf0fab7){_0xf0fab7=_0xf0fab7||0xcc;return function(_0x42bd7d){if(_0x42bd7d){return _0xabef4a[_0x2575('0x12')](_0xf0fab7);}return _0xabef4a[_0x2575('0x13')](_0xf0fab7)[_0x2575('0x14')]();};}function respondWithResult(_0x2ecaa9,_0x3b1daf){_0x3b1daf=_0x3b1daf||0xc8;return function(_0x56d32b){if(_0x56d32b){return _0x2ecaa9[_0x2575('0x13')](_0x3b1daf)[_0x2575('0x15')](_0x56d32b);}};}function respondWithFilteredResult(_0x41391b,_0x18c069){return function(_0xc316ad){if(_0xc316ad){var _0xc3ff3e=_0xc316ad[_0x2575('0x16')],_0x3ca886=_0x18c069[_0x2575('0x17')],_0x18946c=_0x18c069[_0x2575('0x17')]+_0x18c069[_0x2575('0x18')],_0x3a572e;if(_0x18946c>=_0xc3ff3e){_0x18946c=_0xc3ff3e;_0x3a572e=0xc8;}else{_0x3a572e=0xce;}_0x41391b[_0x2575('0x13')](_0x3a572e);return _0x41391b[_0x2575('0x19')](_0x2575('0x1a'),_0x3ca886+'-'+_0x18946c+'/'+_0xc3ff3e)[_0x2575('0x15')](_0xc316ad);}return null;};}function patchUpdates(_0x3a09b4){return function(_0x5f35df){try{jsonpatch[_0x2575('0x1b')](_0x5f35df,_0x3a09b4,!![]);}catch(_0x276f3a){return BPromise[_0x2575('0x1c')](_0x276f3a);}return _0x5f35df['save']();};}function saveUpdates(_0x19dd0a,_0x3f15cb){return function(_0x2659f9){if(_0x2659f9){return _0x2659f9[_0x2575('0x1d')](_0x19dd0a)[_0x2575('0x1e')](function(_0x3cd5c0){return _0x3cd5c0;});}return null;};}function removeEntity(_0x1aa3ca,_0x3f5eb4){return function(_0x634945){if(_0x634945){return _0x634945[_0x2575('0x1f')]()[_0x2575('0x1e')](function(){var _0xbe04ad=_0x634945[_0x2575('0x20')]({'plain':!![]});var _0x2da5b1=_0x2575('0x21');return db[_0x2575('0x22')][_0x2575('0x1f')]({'where':{'type':_0x2da5b1,'resourceId':_0xbe04ad['id']}})[_0x2575('0x1e')](function(){return _0x634945;});})[_0x2575('0x1e')](function(){_0x1aa3ca[_0x2575('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x527aba,_0x3f09a0){return function(_0x3b204a){if(!_0x3b204a){_0x527aba['sendStatus'](0x194);}return _0x3b204a;};}function handleError(_0x6c1800,_0x357afc){_0x357afc=_0x357afc||0x1f4;return function(_0x1dab35){logger[_0x2575('0x23')](_0x1dab35[_0x2575('0x24')]);if(_0x1dab35[_0x2575('0x25')]){delete _0x1dab35[_0x2575('0x25')];}_0x6c1800[_0x2575('0x13')](_0x357afc)[_0x2575('0x26')](_0x1dab35);};}exports[_0x2575('0x27')]=function(_0x1619bb,_0x1c4e58){var _0x17bb5c={},_0x29575c={},_0x38942d={'count':0x0,'rows':[]};var _0x42a570=_[_0x2575('0x28')](db[_0x2575('0x29')][_0x2575('0x2a')],function(_0x25a30f){return{'name':_0x25a30f[_0x2575('0x2b')],'type':_0x25a30f[_0x2575('0x2c')][_0x2575('0x2d')]};});_0x29575c[_0x2575('0x2e')]=_['map'](_0x42a570,_0x2575('0x25'));_0x29575c[_0x2575('0x2f')]=_[_0x2575('0x30')](_0x1619bb[_0x2575('0x2f')]);_0x29575c[_0x2575('0x31')]=_['intersection'](_0x29575c[_0x2575('0x2e')],_0x29575c[_0x2575('0x2f')]);_0x17bb5c[_0x2575('0x32')]=_[_0x2575('0x33')](_0x29575c[_0x2575('0x2e')],qs['fields'](_0x1619bb['query'][_0x2575('0x34')]));_0x17bb5c['attributes']=_0x17bb5c[_0x2575('0x32')][_0x2575('0x35')]?_0x17bb5c[_0x2575('0x32')]:_0x29575c[_0x2575('0x2e')];if(!_0x1619bb[_0x2575('0x2f')]['hasOwnProperty']('nolimit')){_0x17bb5c[_0x2575('0x18')]=qs[_0x2575('0x18')](_0x1619bb[_0x2575('0x2f')]['limit']);_0x17bb5c[_0x2575('0x17')]=qs[_0x2575('0x17')](_0x1619bb[_0x2575('0x2f')][_0x2575('0x17')]);}_0x17bb5c[_0x2575('0x36')]=qs[_0x2575('0x37')](_0x1619bb[_0x2575('0x2f')]['sort']);_0x17bb5c[_0x2575('0x38')]=qs[_0x2575('0x31')](_[_0x2575('0x39')](_0x1619bb[_0x2575('0x2f')],_0x29575c[_0x2575('0x31')]),_0x42a570);if(_0x1619bb[_0x2575('0x2f')][_0x2575('0x3a')]){_0x17bb5c['where']=_[_0x2575('0x3b')](_0x17bb5c['where'],{'$or':_[_0x2575('0x28')](_0x42a570,function(_0x1e25f8){if(_0x1e25f8[_0x2575('0x2c')]!==_0x2575('0x3c')){var _0x1133f2={};_0x1133f2[_0x1e25f8[_0x2575('0x25')]]={'$like':'%'+_0x1619bb[_0x2575('0x2f')][_0x2575('0x3a')]+'%'};return _0x1133f2;}})});}_0x17bb5c=_[_0x2575('0x3b')]({},_0x17bb5c,_0x1619bb[_0x2575('0x3d')]);var _0x2b638a={'where':_0x17bb5c['where']};return db['VoiceChanSpy'][_0x2575('0x16')](_0x2b638a)[_0x2575('0x1e')](function(_0x21c7a8){_0x38942d[_0x2575('0x16')]=_0x21c7a8;if(_0x1619bb[_0x2575('0x2f')]['includeAll']){_0x17bb5c['include']=[{'all':!![]}];}return db['VoiceChanSpy'][_0x2575('0x3e')](_0x17bb5c);})[_0x2575('0x1e')](function(_0x398cef){_0x38942d[_0x2575('0x3f')]=_0x398cef;return _0x38942d;})[_0x2575('0x1e')](respondWithFilteredResult(_0x1c4e58,_0x17bb5c))['catch'](handleError(_0x1c4e58,null));};exports['show']=function(_0x4651a3,_0x207e5b){var _0x4f9eeb={'raw':![],'where':{'id':_0x4651a3['params']['id']}},_0xe46072={};_0xe46072[_0x2575('0x2e')]=_[_0x2575('0x30')](db['VoiceChanSpy']['rawAttributes']);_0xe46072[_0x2575('0x2f')]=_[_0x2575('0x30')](_0x4651a3[_0x2575('0x2f')]);_0xe46072[_0x2575('0x31')]=_[_0x2575('0x33')](_0xe46072[_0x2575('0x2e')],_0xe46072[_0x2575('0x2f')]);_0x4f9eeb['attributes']=_[_0x2575('0x33')](_0xe46072[_0x2575('0x2e')],qs[_0x2575('0x34')](_0x4651a3['query'][_0x2575('0x34')]));_0x4f9eeb['attributes']=_0x4f9eeb['attributes']['length']?_0x4f9eeb[_0x2575('0x32')]:_0xe46072['model'];if(_0x4651a3['query']['includeAll']){_0x4f9eeb[_0x2575('0x40')]=[{'all':!![]}];}_0x4f9eeb=_['merge']({},_0x4f9eeb,_0x4651a3[_0x2575('0x3d')]);return db[_0x2575('0x29')][_0x2575('0x41')](_0x4f9eeb)[_0x2575('0x1e')](handleEntityNotFound(_0x207e5b,null))['then'](respondWithResult(_0x207e5b,null))[_0x2575('0x42')](handleError(_0x207e5b,null));};exports[_0x2575('0x43')]=function(_0x53f4b5,_0x281916){return db[_0x2575('0x29')][_0x2575('0x43')](_0x53f4b5[_0x2575('0x44')],{})[_0x2575('0x1e')](function(_0x688d40){var _0x3c7efe=_0x53f4b5[_0x2575('0x45')][_0x2575('0x20')]({'plain':!![]});if(!_0x3c7efe)throw new Error(_0x2575('0x46'));if(_0x3c7efe[_0x2575('0x47')]===_0x2575('0x45')){var _0x35a4d0=_0x688d40[_0x2575('0x20')]({'plain':!![]});var _0x1ae499='ChanSpies';return db['UserProfileSection']['find']({'where':{'name':_0x1ae499,'userProfileId':_0x3c7efe[_0x2575('0x48')]},'raw':!![]})[_0x2575('0x1e')](function(_0x2c2ecb){if(_0x2c2ecb&&_0x2c2ecb[_0x2575('0x49')]===0x0){return db[_0x2575('0x22')]['create']({'name':_0x35a4d0[_0x2575('0x25')],'resourceId':_0x35a4d0['id'],'type':_0x2c2ecb[_0x2575('0x25')],'sectionId':_0x2c2ecb['id']},{})[_0x2575('0x1e')](function(){return _0x688d40;});}else{return _0x688d40;}})[_0x2575('0x42')](function(_0x1c4c97){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1c4c97);throw _0x1c4c97;});}return _0x688d40;})['then'](respondWithResult(_0x281916,0xc9))[_0x2575('0x42')](handleError(_0x281916,null));};exports[_0x2575('0x1d')]=function(_0xbc6316,_0x3c3d98){if(_0xbc6316[_0x2575('0x44')]['id']){delete _0xbc6316[_0x2575('0x44')]['id'];}return db[_0x2575('0x29')]['find']({'where':{'id':_0xbc6316[_0x2575('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3c3d98,null))[_0x2575('0x1e')](saveUpdates(_0xbc6316[_0x2575('0x44')],null))[_0x2575('0x1e')](respondWithResult(_0x3c3d98,null))[_0x2575('0x42')](handleError(_0x3c3d98,null));};exports[_0x2575('0x1f')]=function(_0x42cbf8,_0x20e51b){return db[_0x2575('0x29')][_0x2575('0x41')]({'where':{'id':_0x42cbf8[_0x2575('0x4a')]['id']}})['then'](handleEntityNotFound(_0x20e51b,null))['then'](removeEntity(_0x20e51b,null))['catch'](handleError(_0x20e51b,null));};