Built motion from commit (unavailable).|2.6.0
[motion2.git] / server / api / screenRecording / screenRecording.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 _0x7c63=['../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','stack','name','send','index','map','ScreenRecording','fieldName','type','key','format','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch','keys','rawAttributes','options','create','body','duration','describe','download','uniqueid','params','find','server/files/screen_recordings','value','existsSync','secrets','join','root','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','message','cancellazione\x20fisica\x20documento\x20%s','isNil','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x4cb88e,_0x5be15d){var _0x4738c5=function(_0x4d2d1b){while(--_0x4d2d1b){_0x4cb88e['push'](_0x4cb88e['shift']());}};_0x4738c5(++_0x5be15d);}(_0x7c63,0x112));var _0x37c6=function(_0x468224,_0x3ba21d){_0x468224=_0x468224-0x0;var _0x3db442=_0x7c63[_0x468224];return _0x3db442;};'use strict';var emlformat=require(_0x37c6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x37c6('0x1'));var jsonpatch=require(_0x37c6('0x2'));var rp=require(_0x37c6('0x3'));var moment=require(_0x37c6('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x37c6('0x5'));var util=require(_0x37c6('0x6'));var path=require(_0x37c6('0x7'));var sox=require(_0x37c6('0x8'));var csv=require(_0x37c6('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x37c6('0xa'));var _=require('lodash');var squel=require(_0x37c6('0xb'));var crypto=require('crypto');var jsforce=require(_0x37c6('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x37c6('0x9'));var querystring=require(_0x37c6('0xd'));var Papa=require(_0x37c6('0xe'));var Redis=require('ioredis');var authService=require(_0x37c6('0xf'));var qs=require(_0x37c6('0x10'));var as=require(_0x37c6('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x37c6('0x12'))(_0x37c6('0x13'));var utils=require(_0x37c6('0x14'));var config=require(_0x37c6('0x15'));var licenseUtil=require(_0x37c6('0x16'));var db=require(_0x37c6('0x17'))['db'];function respondWithStatusCode(_0x4915b7,_0x533fd8){_0x533fd8=_0x533fd8||0xcc;return function(_0x5b13e4){if(_0x5b13e4){return _0x4915b7[_0x37c6('0x18')](_0x533fd8);}return _0x4915b7[_0x37c6('0x19')](_0x533fd8)[_0x37c6('0x1a')]();};}function respondWithResult(_0x1fdfa1,_0x34572d){_0x34572d=_0x34572d||0xc8;return function(_0x1c6b12){if(_0x1c6b12){return _0x1fdfa1[_0x37c6('0x19')](_0x34572d)['json'](_0x1c6b12);}};}function respondWithFilteredResult(_0x5a5444,_0x5111f8){return function(_0x217e81){if(_0x217e81){var _0x36e259=typeof _0x5111f8[_0x37c6('0x1b')]==='undefined'&&typeof _0x5111f8['limit']===_0x37c6('0x1c');var _0x419fd5=_0x217e81[_0x37c6('0x1d')];var _0x5e76f2=_0x36e259?0x0:_0x5111f8['offset'];var _0x136ddb=_0x36e259?_0x217e81[_0x37c6('0x1d')]:_0x5111f8[_0x37c6('0x1b')]+_0x5111f8[_0x37c6('0x1e')];var _0x2b7d03;if(_0x136ddb>=_0x419fd5){_0x136ddb=_0x419fd5;_0x2b7d03=0xc8;}else{_0x2b7d03=0xce;}_0x5a5444[_0x37c6('0x19')](_0x2b7d03);return _0x5a5444[_0x37c6('0x1f')](_0x37c6('0x20'),_0x5e76f2+'-'+_0x136ddb+'/'+_0x419fd5)[_0x37c6('0x21')](_0x217e81);}return null;};}function patchUpdates(_0x6c51a9){return function(_0x1d6943){try{jsonpatch[_0x37c6('0x22')](_0x1d6943,_0x6c51a9,!![]);}catch(_0x3972db){return BPromise[_0x37c6('0x23')](_0x3972db);}return _0x1d6943[_0x37c6('0x24')]();};}function saveUpdates(_0xd0f47f,_0x2a523c){return function(_0x1ddc94){if(_0x1ddc94){return _0x1ddc94[_0x37c6('0x25')](_0xd0f47f)[_0x37c6('0x26')](function(_0x1261ee){return _0x1261ee;});}return null;};}function removeEntity(_0x328b58,_0x5f4108){return function(_0x4e7e83){if(_0x4e7e83){return _0x4e7e83[_0x37c6('0x27')]()[_0x37c6('0x26')](function(){_0x328b58[_0x37c6('0x19')](0xcc)[_0x37c6('0x1a')]();});}};}function handleEntityNotFound(_0x4a3328,_0x563aa1){return function(_0x621f78){if(!_0x621f78){_0x4a3328[_0x37c6('0x18')](0x194);}return _0x621f78;};}function handleError(_0x1d7898,_0x449947){_0x449947=_0x449947||0x1f4;return function(_0x59e17d){logger['error'](_0x59e17d[_0x37c6('0x28')]);if(_0x59e17d[_0x37c6('0x29')]){delete _0x59e17d[_0x37c6('0x29')];}_0x1d7898['status'](_0x449947)[_0x37c6('0x2a')](_0x59e17d);};}exports[_0x37c6('0x2b')]=function(_0x8c6839,_0x13e7d5){var _0x141888={},_0x48e040={},_0x37a234={'count':0x0,'rows':[]};var _0x5cdef5=_[_0x37c6('0x2c')](db[_0x37c6('0x2d')]['rawAttributes'],function(_0x2ff9a3){return{'name':_0x2ff9a3[_0x37c6('0x2e')],'type':_0x2ff9a3[_0x37c6('0x2f')][_0x37c6('0x30')]};});_0x48e040['model']=_['differenceBy'](_[_0x37c6('0x2c')](_0x5cdef5,_0x37c6('0x29')),[_0x37c6('0x31')]);_0x48e040['query']=_['keys'](_0x8c6839[_0x37c6('0x32')]);_0x48e040[_0x37c6('0x33')]=_['intersection'](_0x48e040[_0x37c6('0x34')],_0x48e040[_0x37c6('0x32')]);_0x141888[_0x37c6('0x35')]=_[_0x37c6('0x36')](_0x48e040[_0x37c6('0x34')],qs[_0x37c6('0x37')](_0x8c6839[_0x37c6('0x32')][_0x37c6('0x37')]));_0x141888[_0x37c6('0x35')]=_0x141888[_0x37c6('0x35')][_0x37c6('0x38')]?_0x141888[_0x37c6('0x35')]:_0x48e040['model'];if(!_0x8c6839['query'][_0x37c6('0x39')]('nolimit')){_0x141888['limit']=qs['limit'](_0x8c6839[_0x37c6('0x32')][_0x37c6('0x1e')]);_0x141888['offset']=qs[_0x37c6('0x1b')](_0x8c6839[_0x37c6('0x32')][_0x37c6('0x1b')]);}_0x141888['order']=qs[_0x37c6('0x3a')](_0x8c6839[_0x37c6('0x32')][_0x37c6('0x3a')]);_0x141888[_0x37c6('0x3b')]=qs['filters'](_[_0x37c6('0x3c')](_0x8c6839['query'],_0x48e040[_0x37c6('0x33')]),_0x5cdef5);if(_0x8c6839[_0x37c6('0x32')][_0x37c6('0x3d')]){_0x141888[_0x37c6('0x3b')]=_['merge'](_0x141888[_0x37c6('0x3b')],{'$or':_[_0x37c6('0x2c')](_0x5cdef5,function(_0x4bda6a){if(_0x4bda6a['type']!==_0x37c6('0x3e')){var _0x197a7c={};_0x197a7c[_0x4bda6a[_0x37c6('0x29')]]={'$like':'%'+_0x8c6839[_0x37c6('0x32')][_0x37c6('0x3d')]+'%'};return _0x197a7c;}})});}_0x141888=_[_0x37c6('0x3f')]({},_0x141888,_0x8c6839['options']);var _0x1cac17={'where':_0x141888[_0x37c6('0x3b')]};return db[_0x37c6('0x2d')]['count'](_0x1cac17)['then'](function(_0x415cd9){_0x37a234[_0x37c6('0x1d')]=_0x415cd9;if(_0x8c6839['query'][_0x37c6('0x40')]){_0x141888[_0x37c6('0x41')]=[{'all':!![]}];}return db[_0x37c6('0x2d')][_0x37c6('0x42')](_0x141888);})[_0x37c6('0x26')](function(_0xcff380){_0x37a234[_0x37c6('0x43')]=_0xcff380;return _0x37a234;})['then'](respondWithFilteredResult(_0x13e7d5,_0x141888))[_0x37c6('0x44')](handleError(_0x13e7d5,null));};exports['show']=function(_0x245dcf,_0x4ce12f){var _0x2dbdcb={'raw':![],'where':{'id':_0x245dcf['params']['id']}},_0x30756a={};_0x30756a[_0x37c6('0x34')]=_[_0x37c6('0x45')](db[_0x37c6('0x2d')][_0x37c6('0x46')]);_0x30756a[_0x37c6('0x32')]=_[_0x37c6('0x45')](_0x245dcf[_0x37c6('0x32')]);_0x30756a[_0x37c6('0x33')]=_[_0x37c6('0x36')](_0x30756a['model'],_0x30756a[_0x37c6('0x32')]);_0x2dbdcb[_0x37c6('0x35')]=_[_0x37c6('0x36')](_0x30756a[_0x37c6('0x34')],qs['fields'](_0x245dcf['query'][_0x37c6('0x37')]));_0x2dbdcb[_0x37c6('0x35')]=_0x2dbdcb[_0x37c6('0x35')][_0x37c6('0x38')]?_0x2dbdcb['attributes']:_0x30756a[_0x37c6('0x34')];if(_0x245dcf['query']['includeAll']){_0x2dbdcb[_0x37c6('0x41')]=[{'all':!![]}];}_0x2dbdcb=_[_0x37c6('0x3f')]({},_0x2dbdcb,_0x245dcf[_0x37c6('0x47')]);return db[_0x37c6('0x2d')]['find'](_0x2dbdcb)[_0x37c6('0x26')](handleEntityNotFound(_0x4ce12f,null))[_0x37c6('0x26')](respondWithResult(_0x4ce12f,null))[_0x37c6('0x44')](handleError(_0x4ce12f,null));};exports[_0x37c6('0x48')]=function(_0x1d2865,_0xbe380f){return db['ScreenRecording'][_0x37c6('0x48')](_0x1d2865[_0x37c6('0x49')],{})[_0x37c6('0x26')](respondWithResult(_0xbe380f,0xc9))[_0x37c6('0x44')](handleError(_0xbe380f,null));};exports[_0x37c6('0x25')]=function(_0x38ecce,_0xd8cd3e){if(_0x38ecce[_0x37c6('0x49')]['id']){delete _0x38ecce['body']['id'];}delete _0x38ecce[_0x37c6('0x49')][_0x37c6('0x4a')];delete _0x38ecce[_0x37c6('0x49')]['createdAt'];delete _0x38ecce[_0x37c6('0x49')]['closedAt'];delete _0x38ecce[_0x37c6('0x49')]['value'];return db['ScreenRecording']['find']({'where':{'id':_0x38ecce['params']['id']}})[_0x37c6('0x26')](handleEntityNotFound(_0xd8cd3e,null))[_0x37c6('0x26')](saveUpdates(_0x38ecce[_0x37c6('0x49')],null))[_0x37c6('0x26')](respondWithResult(_0xd8cd3e,null))[_0x37c6('0x44')](handleError(_0xd8cd3e,null));};exports[_0x37c6('0x4b')]=function(_0x38b397,_0x32bc35){return db[_0x37c6('0x2d')][_0x37c6('0x4b')]()['then'](respondWithResult(_0x32bc35,null))[_0x37c6('0x44')](handleError(_0x32bc35,null));};exports[_0x37c6('0x4c')]=function(_0x5e1eca,_0x5c166d,_0x5eaa27){var _0x54c8f5=require('../../components/encryptor');var _0x336227=![];var _0x35ea41={};if(_0x5e1eca[_0x37c6('0x32')][_0x37c6('0x2f')]&&_0x5e1eca['query'][_0x37c6('0x2f')]===_0x37c6('0x4d')){_0x35ea41[_0x37c6('0x4d')]=_0x5e1eca[_0x37c6('0x4e')]['id'];}else{_0x35ea41['id']=_0x5e1eca[_0x37c6('0x4e')]['id'];}return db['ScreenRecording'][_0x37c6('0x4f')]({'where':_0x35ea41,'attributes':['id','value'],'raw':!![]})[_0x37c6('0x26')](handleEntityNotFound(_0x5c166d,null))[_0x37c6('0x26')](function(_0x802dd3){if(_0x802dd3){var _0x2129bd=path['join'](config['root'],_0x37c6('0x50'),_0x802dd3[_0x37c6('0x51')]);var _0x2477a3=util[_0x37c6('0x31')]('%s.cypher',_0x2129bd);if(fs[_0x37c6('0x52')](_0x2477a3)){_0x336227=!![];return _0x54c8f5['decryptFile'](_0x2477a3,_0x2129bd,config[_0x37c6('0x53')]['recording'])[_0x37c6('0x26')](function(){return _0x802dd3;});}return _0x802dd3;}})['then'](function(_0x22cdfd){if(_0x22cdfd){var _0x5ef52f=path[_0x37c6('0x54')](config[_0x37c6('0x55')],'server/files/screen_recordings',_0x22cdfd[_0x37c6('0x51')]);if(!fs['existsSync'](_0x5ef52f)){throw new db['Sequelize'][(_0x37c6('0x56'))](_0x37c6('0x57'));}if(_0x22cdfd[_0x37c6('0x58')]){return _0x5c166d[_0x37c6('0x4c')](_0x5ef52f,_0x22cdfd[_0x37c6('0x58')]+path[_0x37c6('0x59')](_0x5ef52f),function(){if(_0x336227){fs[_0x37c6('0x5a')](_0x5ef52f);}});}else{return _0x5c166d[_0x37c6('0x4c')](_0x5ef52f,function(_0x311b2b){if(_0x336227){fs[_0x37c6('0x5a')](_0x5ef52f);}});}}})[_0x37c6('0x44')](function(_0x544628){if(_0x544628[_0x37c6('0x5b')]==='ScreenRecording\x20not\x20found'){_0x5c166d[_0x37c6('0x19')](0x194)[_0x37c6('0x2a')]('Not\x20found');}else{return handleError(_0x5c166d,null);}});};exports[_0x37c6('0x27')]=function(_0x4079d2,_0x33179c){return db[_0x37c6('0x2d')][_0x37c6('0x4f')]({'where':{'id':_0x4079d2[_0x37c6('0x4e')]['id']}})[_0x37c6('0x26')](function(_0x2fb611){if(_['isNil'](_0x2fb611)){throw new ReferenceError('Entity\x20not\x20found');}return _0x2fb611;})['then'](function(_0x3856d0){var _0x40c388=path[_0x37c6('0x54')](config[_0x37c6('0x55')],_0x37c6('0x50'),_0x3856d0[_0x37c6('0x51')]);logger['info'](_0x37c6('0x5c'),_0x40c388);if(!_[_0x37c6('0x5d')](_0x3856d0[_0x37c6('0x51')])&&fs['existsSync'](_0x40c388)){logger[_0x37c6('0x5e')](_0x37c6('0x5f')+_0x40c388+_0x37c6('0x60'));fs[_0x37c6('0x61')](_0x40c388);}_0x40c388=_0x40c388+_0x37c6('0x62');if(!_[_0x37c6('0x5d')](_0x3856d0['value'])&&fs[_0x37c6('0x52')](_0x40c388)){logger[_0x37c6('0x5e')](_0x37c6('0x5f')+_0x40c388+_0x37c6('0x60'));fs['unlinkSync'](_0x40c388);}return _0x3856d0;})['then'](function(_0x2a3b09){if(!_0x2a3b09)throw new InternalError();return _0x2a3b09[_0x37c6('0x27')]();})[_0x37c6('0x26')](function(){_0x33179c[_0x37c6('0x19')](0xcc)['end']();})[_0x37c6('0x44')](handleError(_0x33179c,null));};