Built motion from commit (unavailable).|2.5.30
[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 _0xa9e0=['path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','ScreenRecording','rawAttributes','fieldName','key','model','differenceBy','map','format','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','filters','filter','merge','where','type','VIRTUAL','include','findAll','rows','catch','show','params','includeAll','options','create','body','duration','createdAt','closedAt','find','describe','../../components/encryptor','uniqueid','value','root','secrets','join','server/files/screen_recordings','Sequelize','ValidationError','ScreenRecording\x20not\x20found','filename','download','unlink','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','isNil','existsSync','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','eml-format','rimraf','zip-dir','moment','mustache','util'];(function(_0x1937d6,_0x8b9534){var _0x47e46e=function(_0x28f79e){while(--_0x28f79e){_0x1937d6['push'](_0x1937d6['shift']());}};_0x47e46e(++_0x8b9534);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_[_0x0a9e('0x2e')](_0x14de77,_0x0a9e('0x25')),[_0x0a9e('0x2f')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x25fba9[_0x0a9e('0x30')]);_0x1538a4['filters']=_[_0x0a9e('0x32')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x30')]);_0x140511[_0x0a9e('0x33')]=_[_0x0a9e('0x32')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x34')](_0x25fba9['query'][_0x0a9e('0x34')]));_0x140511[_0x0a9e('0x33')]=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x35')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x30')][_0x0a9e('0x36')]('nolimit')){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x30')][_0x0a9e('0x1a')]);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9['query'][_0x0a9e('0x1b')]);}_0x140511[_0x0a9e('0x37')]=qs[_0x0a9e('0x38')](_0x25fba9[_0x0a9e('0x30')]['sort']);_0x140511['where']=qs[_0x0a9e('0x39')](_['pick'](_0x25fba9[_0x0a9e('0x30')],_0x1538a4[_0x0a9e('0x39')]),_0x14de77);if(_0x25fba9[_0x0a9e('0x30')][_0x0a9e('0x3a')]){_0x140511['where']=_[_0x0a9e('0x3b')](_0x140511[_0x0a9e('0x3c')],{'$or':_[_0x0a9e('0x2e')](_0x14de77,function(_0x533942){if(_0x533942[_0x0a9e('0x3d')]!==_0x0a9e('0x3e')){var _0x289467={};_0x289467[_0x533942['name']]={'$like':'%'+_0x25fba9['query'][_0x0a9e('0x3a')]+'%'};return _0x289467;}})});}_0x140511=_[_0x0a9e('0x3b')]({},_0x140511,_0x25fba9['options']);var _0x2b814e={'where':_0x140511[_0x0a9e('0x3c')]};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x2b814e)['then'](function(_0x5a594b){_0x11c3b6[_0x0a9e('0x1c')]=_0x5a594b;if(_0x25fba9[_0x0a9e('0x30')]['includeAll']){_0x140511[_0x0a9e('0x3f')]=[{'all':!![]}];}return db[_0x0a9e('0x28')][_0x0a9e('0x40')](_0x140511);})['then'](function(_0x316c8f){_0x11c3b6[_0x0a9e('0x41')]=_0x316c8f;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x42')](handleError(_0x14433c,null));};exports[_0x0a9e('0x43')]=function(_0xeaa5e5,_0x2881b3){var _0x45a9b8={'raw':![],'where':{'id':_0xeaa5e5[_0x0a9e('0x44')]['id']}},_0x23b089={};_0x23b089[_0x0a9e('0x2c')]=_[_0x0a9e('0x31')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x23b089[_0x0a9e('0x30')]=_['keys'](_0xeaa5e5['query']);_0x23b089[_0x0a9e('0x39')]=_[_0x0a9e('0x32')](_0x23b089[_0x0a9e('0x2c')],_0x23b089[_0x0a9e('0x30')]);_0x45a9b8[_0x0a9e('0x33')]=_[_0x0a9e('0x32')](_0x23b089[_0x0a9e('0x2c')],qs[_0x0a9e('0x34')](_0xeaa5e5[_0x0a9e('0x30')][_0x0a9e('0x34')]));_0x45a9b8[_0x0a9e('0x33')]=_0x45a9b8[_0x0a9e('0x33')]['length']?_0x45a9b8[_0x0a9e('0x33')]:_0x23b089[_0x0a9e('0x2c')];if(_0xeaa5e5[_0x0a9e('0x30')][_0x0a9e('0x45')]){_0x45a9b8[_0x0a9e('0x3f')]=[{'all':!![]}];}_0x45a9b8=_[_0x0a9e('0x3b')]({},_0x45a9b8,_0xeaa5e5[_0x0a9e('0x46')]);return db[_0x0a9e('0x28')]['find'](_0x45a9b8)[_0x0a9e('0x22')](handleEntityNotFound(_0x2881b3,null))['then'](respondWithResult(_0x2881b3,null))[_0x0a9e('0x42')](handleError(_0x2881b3,null));};exports[_0x0a9e('0x47')]=function(_0x8d6dd1,_0x562fb4){return db[_0x0a9e('0x28')][_0x0a9e('0x47')](_0x8d6dd1[_0x0a9e('0x48')],{})[_0x0a9e('0x22')](respondWithResult(_0x562fb4,0xc9))[_0x0a9e('0x42')](handleError(_0x562fb4,null));};exports[_0x0a9e('0x21')]=function(_0x45bf7f,_0x5bbcde){if(_0x45bf7f[_0x0a9e('0x48')]['id']){delete _0x45bf7f[_0x0a9e('0x48')]['id'];}delete _0x45bf7f[_0x0a9e('0x48')][_0x0a9e('0x49')];delete _0x45bf7f[_0x0a9e('0x48')][_0x0a9e('0x4a')];delete _0x45bf7f[_0x0a9e('0x48')][_0x0a9e('0x4b')];delete _0x45bf7f[_0x0a9e('0x48')]['value'];return db[_0x0a9e('0x28')][_0x0a9e('0x4c')]({'where':{'id':_0x45bf7f['params']['id']}})['then'](handleEntityNotFound(_0x5bbcde,null))['then'](saveUpdates(_0x45bf7f[_0x0a9e('0x48')],null))[_0x0a9e('0x22')](respondWithResult(_0x5bbcde,null))[_0x0a9e('0x42')](handleError(_0x5bbcde,null));};exports[_0x0a9e('0x4d')]=function(_0x61bb17,_0x30decb){return db[_0x0a9e('0x28')][_0x0a9e('0x4d')]()['then'](respondWithResult(_0x30decb,null))['catch'](handleError(_0x30decb,null));};exports['download']=function(_0x39d77d,_0x204173,_0x14d602){var _0x5bb3ed=require(_0x0a9e('0x4e'));var _0x161aa7=![];var _0x53d113={};if(_0x39d77d['query'][_0x0a9e('0x3d')]&&_0x39d77d['query'][_0x0a9e('0x3d')]==='uniqueid'){_0x53d113[_0x0a9e('0x4f')]=_0x39d77d[_0x0a9e('0x44')]['id'];}else{_0x53d113['id']=_0x39d77d[_0x0a9e('0x44')]['id'];}return db['ScreenRecording'][_0x0a9e('0x4c')]({'where':_0x53d113,'attributes':['id',_0x0a9e('0x50')],'raw':!![]})['then'](handleEntityNotFound(_0x204173,null))['then'](function(_0x128aa6){if(_0x128aa6){var _0x3aedd0=path['join'](config[_0x0a9e('0x51')],'server/files/screen_recordings',_0x128aa6[_0x0a9e('0x50')]);var _0x523cd2=util[_0x0a9e('0x2f')]('%s.cypher',_0x3aedd0);if(fs['existsSync'](_0x523cd2)){_0x161aa7=!![];return _0x5bb3ed['decryptFile'](_0x523cd2,_0x3aedd0,config[_0x0a9e('0x52')]['recording'])[_0x0a9e('0x22')](function(){return _0x128aa6;});}return _0x128aa6;}})[_0x0a9e('0x22')](function(_0x3cfd00){if(_0x3cfd00){var _0x19b4df=path[_0x0a9e('0x53')](config[_0x0a9e('0x51')],_0x0a9e('0x54'),_0x3cfd00[_0x0a9e('0x50')]);if(!fs['existsSync'](_0x19b4df)){throw new db[(_0x0a9e('0x55'))][(_0x0a9e('0x56'))](_0x0a9e('0x57'));}if(_0x3cfd00[_0x0a9e('0x58')]){return _0x204173[_0x0a9e('0x59')](_0x19b4df,_0x3cfd00[_0x0a9e('0x58')]+path['extname'](_0x19b4df),function(){if(_0x161aa7){fs[_0x0a9e('0x5a')](_0x19b4df);}});}else{return _0x204173[_0x0a9e('0x59')](_0x19b4df,function(_0x5239ef){if(_0x161aa7){fs[_0x0a9e('0x5a')](_0x19b4df);}});}}})['catch'](function(_0x20c668){if(_0x20c668['message']==='ScreenRecording\x20not\x20found'){_0x204173['status'](0x194)[_0x0a9e('0x26')]('Not\x20found');}else{return handleError(_0x204173,null);}});};exports[_0x0a9e('0x23')]=function(_0x1fc70e,_0x261adb){return db[_0x0a9e('0x28')][_0x0a9e('0x4c')]({'where':{'id':_0x1fc70e[_0x0a9e('0x44')]['id']}})['then'](function(_0x1627a7){if(_['isNil'](_0x1627a7)){throw new ReferenceError(_0x0a9e('0x5b'));}return _0x1627a7;})[_0x0a9e('0x22')](function(_0x51aaf7){var _0x5adf8f=path[_0x0a9e('0x53')](config[_0x0a9e('0x51')],_0x0a9e('0x54'),_0x51aaf7[_0x0a9e('0x50')]);logger['info'](_0x0a9e('0x5c'),_0x5adf8f);if(!_[_0x0a9e('0x5d')](_0x51aaf7['value'])&&fs[_0x0a9e('0x5e')](_0x5adf8f)){logger[_0x0a9e('0x5f')](_0x0a9e('0x60')+_0x5adf8f+_0x0a9e('0x61'));fs[_0x0a9e('0x62')](_0x5adf8f);}_0x5adf8f=_0x5adf8f+'.cypher';if(!_[_0x0a9e('0x5d')](_0x51aaf7[_0x0a9e('0x50')])&&fs[_0x0a9e('0x5e')](_0x5adf8f)){logger['info'](_0x0a9e('0x60')+_0x5adf8f+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x5adf8f);}return _0x51aaf7;})[_0x0a9e('0x22')](function(_0x4556c5){if(!_0x4556c5)throw new InternalError();return _0x4556c5[_0x0a9e('0x23')]();})[_0x0a9e('0x22')](function(){_0x261adb[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();})[_0x0a9e('0x42')](handleError(_0x261adb,null));};