64294cbdfe3b776a6bc8d5efe2f8d21330589f43
[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 _0x5e35=['%s.cypher','existsSync','decryptFile','secrets','recording','root','server/files/screen_recordings','Sequelize','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','set','Content-Range','json','reject','destroy','then','error','stack','name','send','fieldName','type','key','differenceBy','map','format','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','ScreenRecording','includeAll','include','rows','show','params','rawAttributes','catch','body','update','duration','createdAt','closedAt','value','find','describe','download','../../components/encryptor','uniqueid','join'];(function(_0x592c0f,_0x11ac19){var _0x534266=function(_0x68a593){while(--_0x68a593){_0x592c0f['push'](_0x592c0f['shift']());}};_0x534266(++_0x11ac19);}(_0x5e35,0x155));var _0x55e3=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x5e35[_0x4a9fb1];return _0x348672;};'use strict';var pdf=require(_0x55e3('0x0'));var emlformat=require(_0x55e3('0x1'));var rimraf=require(_0x55e3('0x2'));var zipdir=require(_0x55e3('0x3'));var jsonpatch=require(_0x55e3('0x4'));var rp=require(_0x55e3('0x5'));var moment=require(_0x55e3('0x6'));var BPromise=require(_0x55e3('0x7'));var Mustache=require('mustache');var util=require(_0x55e3('0x8'));var path=require(_0x55e3('0x9'));var sox=require('sox');var csv=require(_0x55e3('0xa'));var ejs=require(_0x55e3('0xb'));var fs=require('fs');var _=require(_0x55e3('0xc'));var squel=require(_0x55e3('0xd'));var crypto=require('crypto');var jsforce=require(_0x55e3('0xe'));var deskjs=require(_0x55e3('0xf'));var toCsv=require(_0x55e3('0xa'));var querystring=require('querystring');var Papa=require(_0x55e3('0x10'));var Redis=require(_0x55e3('0x11'));var authService=require(_0x55e3('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x55e3('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x55e3('0x14'));var config=require(_0x55e3('0x15'));var licenseUtil=require(_0x55e3('0x16'));var db=require(_0x55e3('0x17'))['db'];function respondWithStatusCode(_0x1eda48,_0xc1ddb4){_0xc1ddb4=_0xc1ddb4||0xcc;return function(_0x4175c6){if(_0x4175c6){return _0x1eda48[_0x55e3('0x18')](_0xc1ddb4);}return _0x1eda48[_0x55e3('0x19')](_0xc1ddb4)[_0x55e3('0x1a')]();};}function respondWithResult(_0xdd0dcf,_0x13a9ac){_0x13a9ac=_0x13a9ac||0xc8;return function(_0x3932a0){if(_0x3932a0){return _0xdd0dcf[_0x55e3('0x19')](_0x13a9ac)['json'](_0x3932a0);}};}function respondWithFilteredResult(_0x333d31,_0x59f8e1){return function(_0x16b1ca){if(_0x16b1ca){var _0x261130=_0x16b1ca['count'],_0x1dad32=_0x59f8e1[_0x55e3('0x1b')],_0x4a490f=_0x59f8e1[_0x55e3('0x1b')]+_0x59f8e1[_0x55e3('0x1c')],_0x6b6768;if(_0x4a490f>=_0x261130){_0x4a490f=_0x261130;_0x6b6768=0xc8;}else{_0x6b6768=0xce;}_0x333d31['status'](_0x6b6768);return _0x333d31[_0x55e3('0x1d')](_0x55e3('0x1e'),_0x1dad32+'-'+_0x4a490f+'/'+_0x261130)[_0x55e3('0x1f')](_0x16b1ca);}return null;};}function patchUpdates(_0x2b6c06){return function(_0x474308){try{jsonpatch['apply'](_0x474308,_0x2b6c06,!![]);}catch(_0x5a367a){return BPromise[_0x55e3('0x20')](_0x5a367a);}return _0x474308['save']();};}function saveUpdates(_0x455854,_0x360a91){return function(_0x2b792f){if(_0x2b792f){return _0x2b792f['update'](_0x455854)['then'](function(_0x150cb1){return _0x150cb1;});}return null;};}function removeEntity(_0x1175de,_0x233642){return function(_0xfbce6a){if(_0xfbce6a){return _0xfbce6a[_0x55e3('0x21')]()[_0x55e3('0x22')](function(){_0x1175de[_0x55e3('0x19')](0xcc)[_0x55e3('0x1a')]();});}};}function handleEntityNotFound(_0x3cb595,_0x32808c){return function(_0x24f7c7){if(!_0x24f7c7){_0x3cb595[_0x55e3('0x18')](0x194);}return _0x24f7c7;};}function handleError(_0x40e96b,_0x30a219){_0x30a219=_0x30a219||0x1f4;return function(_0x33bf99){logger[_0x55e3('0x23')](_0x33bf99[_0x55e3('0x24')]);if(_0x33bf99[_0x55e3('0x25')]){delete _0x33bf99[_0x55e3('0x25')];}_0x40e96b['status'](_0x30a219)[_0x55e3('0x26')](_0x33bf99);};}exports['index']=function(_0x4c805c,_0x20c814){var _0x3795eb={},_0x44cb6a={},_0x4981c3={'count':0x0,'rows':[]};var _0x5224b2=_['map'](db['ScreenRecording']['rawAttributes'],function(_0x11e44a){return{'name':_0x11e44a[_0x55e3('0x27')],'type':_0x11e44a[_0x55e3('0x28')][_0x55e3('0x29')]};});_0x44cb6a['model']=_[_0x55e3('0x2a')](_[_0x55e3('0x2b')](_0x5224b2,'name'),[_0x55e3('0x2c')]);_0x44cb6a[_0x55e3('0x2d')]=_[_0x55e3('0x2e')](_0x4c805c[_0x55e3('0x2d')]);_0x44cb6a['filters']=_[_0x55e3('0x2f')](_0x44cb6a[_0x55e3('0x30')],_0x44cb6a['query']);_0x3795eb[_0x55e3('0x31')]=_['intersection'](_0x44cb6a[_0x55e3('0x30')],qs[_0x55e3('0x32')](_0x4c805c[_0x55e3('0x2d')][_0x55e3('0x32')]));_0x3795eb['attributes']=_0x3795eb[_0x55e3('0x31')][_0x55e3('0x33')]?_0x3795eb[_0x55e3('0x31')]:_0x44cb6a[_0x55e3('0x30')];if(!_0x4c805c['query'][_0x55e3('0x34')](_0x55e3('0x35'))){_0x3795eb[_0x55e3('0x1c')]=qs['limit'](_0x4c805c[_0x55e3('0x2d')][_0x55e3('0x1c')]);_0x3795eb[_0x55e3('0x1b')]=qs[_0x55e3('0x1b')](_0x4c805c[_0x55e3('0x2d')]['offset']);}_0x3795eb[_0x55e3('0x36')]=qs[_0x55e3('0x37')](_0x4c805c[_0x55e3('0x2d')][_0x55e3('0x37')]);_0x3795eb[_0x55e3('0x38')]=qs[_0x55e3('0x39')](_[_0x55e3('0x3a')](_0x4c805c[_0x55e3('0x2d')],_0x44cb6a['filters']),_0x5224b2);if(_0x4c805c[_0x55e3('0x2d')][_0x55e3('0x3b')]){_0x3795eb[_0x55e3('0x38')]=_[_0x55e3('0x3c')](_0x3795eb['where'],{'$or':_[_0x55e3('0x2b')](_0x5224b2,function(_0x46609b){if(_0x46609b['type']!==_0x55e3('0x3d')){var _0x2e51ec={};_0x2e51ec[_0x46609b[_0x55e3('0x25')]]={'$like':'%'+_0x4c805c['query'][_0x55e3('0x3b')]+'%'};return _0x2e51ec;}})});}_0x3795eb=_['merge']({},_0x3795eb,_0x4c805c[_0x55e3('0x3e')]);var _0x4a9944={'where':_0x3795eb[_0x55e3('0x38')]};return db[_0x55e3('0x3f')]['count'](_0x4a9944)[_0x55e3('0x22')](function(_0x2e81f3){_0x4981c3['count']=_0x2e81f3;if(_0x4c805c['query'][_0x55e3('0x40')]){_0x3795eb[_0x55e3('0x41')]=[{'all':!![]}];}return db[_0x55e3('0x3f')]['findAll'](_0x3795eb);})['then'](function(_0x609944){_0x4981c3[_0x55e3('0x42')]=_0x609944;return _0x4981c3;})[_0x55e3('0x22')](respondWithFilteredResult(_0x20c814,_0x3795eb))['catch'](handleError(_0x20c814,null));};exports[_0x55e3('0x43')]=function(_0xca0a5,_0x250608){var _0x4d02d6={'raw':![],'where':{'id':_0xca0a5[_0x55e3('0x44')]['id']}},_0xbc6e4b={};_0xbc6e4b[_0x55e3('0x30')]=_['keys'](db[_0x55e3('0x3f')][_0x55e3('0x45')]);_0xbc6e4b[_0x55e3('0x2d')]=_[_0x55e3('0x2e')](_0xca0a5['query']);_0xbc6e4b[_0x55e3('0x39')]=_[_0x55e3('0x2f')](_0xbc6e4b['model'],_0xbc6e4b[_0x55e3('0x2d')]);_0x4d02d6[_0x55e3('0x31')]=_[_0x55e3('0x2f')](_0xbc6e4b[_0x55e3('0x30')],qs[_0x55e3('0x32')](_0xca0a5[_0x55e3('0x2d')]['fields']));_0x4d02d6['attributes']=_0x4d02d6[_0x55e3('0x31')][_0x55e3('0x33')]?_0x4d02d6['attributes']:_0xbc6e4b['model'];if(_0xca0a5[_0x55e3('0x2d')][_0x55e3('0x40')]){_0x4d02d6[_0x55e3('0x41')]=[{'all':!![]}];}_0x4d02d6=_[_0x55e3('0x3c')]({},_0x4d02d6,_0xca0a5[_0x55e3('0x3e')]);return db[_0x55e3('0x3f')]['find'](_0x4d02d6)['then'](handleEntityNotFound(_0x250608,null))[_0x55e3('0x22')](respondWithResult(_0x250608,null))[_0x55e3('0x46')](handleError(_0x250608,null));};exports['create']=function(_0x419e37,_0xa8768d){return db[_0x55e3('0x3f')]['create'](_0x419e37[_0x55e3('0x47')],{})[_0x55e3('0x22')](respondWithResult(_0xa8768d,0xc9))[_0x55e3('0x46')](handleError(_0xa8768d,null));};exports[_0x55e3('0x48')]=function(_0x3fcbda,_0x403e61){if(_0x3fcbda[_0x55e3('0x47')]['id']){delete _0x3fcbda[_0x55e3('0x47')]['id'];}delete _0x3fcbda[_0x55e3('0x47')][_0x55e3('0x49')];delete _0x3fcbda[_0x55e3('0x47')][_0x55e3('0x4a')];delete _0x3fcbda[_0x55e3('0x47')][_0x55e3('0x4b')];delete _0x3fcbda[_0x55e3('0x47')][_0x55e3('0x4c')];return db[_0x55e3('0x3f')][_0x55e3('0x4d')]({'where':{'id':_0x3fcbda[_0x55e3('0x44')]['id']}})['then'](handleEntityNotFound(_0x403e61,null))[_0x55e3('0x22')](saveUpdates(_0x3fcbda[_0x55e3('0x47')],null))[_0x55e3('0x22')](respondWithResult(_0x403e61,null))[_0x55e3('0x46')](handleError(_0x403e61,null));};exports['describe']=function(_0x88e81f,_0x15ac73){return db[_0x55e3('0x3f')][_0x55e3('0x4e')]()[_0x55e3('0x22')](respondWithResult(_0x15ac73,null))['catch'](handleError(_0x15ac73,null));};exports[_0x55e3('0x4f')]=function(_0x4fc336,_0x416bab,_0x45596f){var _0x2b0808=require(_0x55e3('0x50'));var _0xff9ab2=![];var _0x2b39f0={};if(_0x4fc336[_0x55e3('0x2d')][_0x55e3('0x28')]&&_0x4fc336['query']['type']===_0x55e3('0x51')){_0x2b39f0[_0x55e3('0x51')]=_0x4fc336['params']['id'];}else{_0x2b39f0['id']=_0x4fc336[_0x55e3('0x44')]['id'];}return db[_0x55e3('0x3f')][_0x55e3('0x4d')]({'where':_0x2b39f0,'attributes':['id',_0x55e3('0x4c')],'raw':!![]})[_0x55e3('0x22')](handleEntityNotFound(_0x416bab,null))['then'](function(_0x1b0718){if(_0x1b0718){var _0x56dfac=path[_0x55e3('0x52')](config['root'],'server/files/screen_recordings',_0x1b0718['value']);var _0x4ab67b=util[_0x55e3('0x2c')](_0x55e3('0x53'),_0x56dfac);if(fs[_0x55e3('0x54')](_0x4ab67b)){_0xff9ab2=!![];return _0x2b0808[_0x55e3('0x55')](_0x4ab67b,_0x56dfac,config[_0x55e3('0x56')][_0x55e3('0x57')])[_0x55e3('0x22')](function(){return _0x1b0718;});}return _0x1b0718;}})[_0x55e3('0x22')](function(_0x228d3e){if(_0x228d3e){var _0x40388f=path[_0x55e3('0x52')](config[_0x55e3('0x58')],_0x55e3('0x59'),_0x228d3e[_0x55e3('0x4c')]);if(!fs[_0x55e3('0x54')](_0x40388f)){throw new db[(_0x55e3('0x5a'))][(_0x55e3('0x5b'))](_0x55e3('0x5c'));}if(_0x228d3e[_0x55e3('0x5d')]){return _0x416bab[_0x55e3('0x4f')](_0x40388f,_0x228d3e[_0x55e3('0x5d')]+path[_0x55e3('0x5e')](_0x40388f),function(){if(_0xff9ab2){fs[_0x55e3('0x5f')](_0x40388f);}});}else{return _0x416bab[_0x55e3('0x4f')](_0x40388f,function(_0x3e2348){if(_0xff9ab2){fs[_0x55e3('0x5f')](_0x40388f);}});}}})[_0x55e3('0x46')](function(_0xfdae4d){if(_0xfdae4d[_0x55e3('0x60')]===_0x55e3('0x5c')){_0x416bab[_0x55e3('0x19')](0x194)[_0x55e3('0x26')](_0x55e3('0x61'));}else{return handleError(_0x416bab,null);}});};exports[_0x55e3('0x21')]=function(_0x22d5a3,_0x5ddf8b){return db[_0x55e3('0x3f')]['find']({'where':{'id':_0x22d5a3['params']['id']}})['then'](function(_0x3860e6){if(!_0x3860e6)throw new ReferenceError(_0x55e3('0x62'));return _0x3860e6;})[_0x55e3('0x22')](function(_0xda9e40){var _0x12dce3=path[_0x55e3('0x52')](config[_0x55e3('0x58')],_0x55e3('0x59'),_0xda9e40[_0x55e3('0x4c')]);logger[_0x55e3('0x63')](_0x55e3('0x64'),_0x12dce3);if(!_[_0x55e3('0x65')](_0xda9e40[_0x55e3('0x4c')])&&fs['existsSync'](_0x12dce3)){logger[_0x55e3('0x63')](_0x55e3('0x66')+_0x12dce3+_0x55e3('0x67'));fs['unlinkSync'](_0x12dce3);}_0x12dce3=_0x12dce3+_0x55e3('0x68');if(!_[_0x55e3('0x65')](_0xda9e40[_0x55e3('0x4c')])&&fs[_0x55e3('0x54')](_0x12dce3)){logger[_0x55e3('0x63')](_0x55e3('0x66')+_0x12dce3+_0x55e3('0x67'));fs[_0x55e3('0x69')](_0x12dce3);}return _0xda9e40;})['then'](function(_0x59bcb5){if(!_0x59bcb5)throw new InternalError();return _0x59bcb5['destroy']();})[_0x55e3('0x22')](function(){_0x5ddf8b['status'](0xcc)['end']();})[_0x55e3('0x46')](handleError(_0x5ddf8b,null));};