45757b33615cf954358710364642104730d18aca
[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 _0x3e0f=['sendStatus','status','json','count','offset','limit','set','reject','save','update','then','destroy','error','stack','name','send','index','map','ScreenRecording','rawAttributes','fieldName','type','key','differenceBy','format','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','keys','length','find','create','body','createdAt','closedAt','value','describe','download','../../components/encryptor','uniqueid','join','root','server/files/screen_recordings','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','filename','extname','unlink','ScreenRecording\x20not\x20found','Not\x20found','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','isNil','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','end','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','to-csv','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x390e2d,_0x565d73){var _0x44ce7a=function(_0x4aa84e){while(--_0x4aa84e){_0x390e2d['push'](_0x390e2d['shift']());}};_0x44ce7a(++_0x565d73);}(_0x3e0f,0x17c));var _0xf3e0=function(_0xf16b1,_0x33c637){_0xf16b1=_0xf16b1-0x0;var _0x26f94d=_0x3e0f[_0xf16b1];return _0x26f94d;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xf3e0('0x0'));var zipdir=require(_0xf3e0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf3e0('0x2'));var moment=require(_0xf3e0('0x3'));var BPromise=require(_0xf3e0('0x4'));var Mustache=require(_0xf3e0('0x5'));var util=require(_0xf3e0('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xf3e0('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xf3e0('0x8'));var squel=require(_0xf3e0('0x9'));var crypto=require('crypto');var jsforce=require(_0xf3e0('0xa'));var deskjs=require(_0xf3e0('0xb'));var toCsv=require(_0xf3e0('0x7'));var querystring=require('querystring');var Papa=require(_0xf3e0('0xc'));var Redis=require(_0xf3e0('0xd'));var authService=require(_0xf3e0('0xe'));var qs=require(_0xf3e0('0xf'));var as=require(_0xf3e0('0x10'));var hardwareService=require(_0xf3e0('0x11'));var logger=require(_0xf3e0('0x12'))(_0xf3e0('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xcd19d,_0x47c555){_0x47c555=_0x47c555||0xcc;return function(_0x599b75){if(_0x599b75){return _0xcd19d[_0xf3e0('0x14')](_0x47c555);}return _0xcd19d[_0xf3e0('0x15')](_0x47c555)['end']();};}function respondWithResult(_0x2b06f6,_0x1fb910){_0x1fb910=_0x1fb910||0xc8;return function(_0x8f2a6d){if(_0x8f2a6d){return _0x2b06f6[_0xf3e0('0x15')](_0x1fb910)[_0xf3e0('0x16')](_0x8f2a6d);}};}function respondWithFilteredResult(_0x29d77e,_0x1801ab){return function(_0x211943){if(_0x211943){var _0x1ccaf7=_0x211943[_0xf3e0('0x17')],_0x2d7a73=_0x1801ab[_0xf3e0('0x18')],_0x16737b=_0x1801ab[_0xf3e0('0x18')]+_0x1801ab[_0xf3e0('0x19')],_0x441098;if(_0x16737b>=_0x1ccaf7){_0x16737b=_0x1ccaf7;_0x441098=0xc8;}else{_0x441098=0xce;}_0x29d77e[_0xf3e0('0x15')](_0x441098);return _0x29d77e[_0xf3e0('0x1a')]('Content-Range',_0x2d7a73+'-'+_0x16737b+'/'+_0x1ccaf7)[_0xf3e0('0x16')](_0x211943);}return null;};}function patchUpdates(_0xc61d20){return function(_0x2983d5){try{jsonpatch['apply'](_0x2983d5,_0xc61d20,!![]);}catch(_0x14cb47){return BPromise[_0xf3e0('0x1b')](_0x14cb47);}return _0x2983d5[_0xf3e0('0x1c')]();};}function saveUpdates(_0x32389b,_0x4af8e1){return function(_0x21c2c5){if(_0x21c2c5){return _0x21c2c5[_0xf3e0('0x1d')](_0x32389b)[_0xf3e0('0x1e')](function(_0x18fbdd){return _0x18fbdd;});}return null;};}function removeEntity(_0xfd723a,_0x2e972f){return function(_0x52f793){if(_0x52f793){return _0x52f793[_0xf3e0('0x1f')]()[_0xf3e0('0x1e')](function(){_0xfd723a[_0xf3e0('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5ebe94,_0x4bde88){return function(_0x584ccd){if(!_0x584ccd){_0x5ebe94[_0xf3e0('0x14')](0x194);}return _0x584ccd;};}function handleError(_0x1b1560,_0x34d05b){_0x34d05b=_0x34d05b||0x1f4;return function(_0x105ef0){logger[_0xf3e0('0x20')](_0x105ef0[_0xf3e0('0x21')]);if(_0x105ef0['name']){delete _0x105ef0[_0xf3e0('0x22')];}_0x1b1560[_0xf3e0('0x15')](_0x34d05b)[_0xf3e0('0x23')](_0x105ef0);};}exports[_0xf3e0('0x24')]=function(_0x144f5f,_0x3e2251){var _0x5385c2={},_0x1005de={},_0x4f3e60={'count':0x0,'rows':[]};var _0x598d74=_[_0xf3e0('0x25')](db[_0xf3e0('0x26')][_0xf3e0('0x27')],function(_0x2923d7){return{'name':_0x2923d7[_0xf3e0('0x28')],'type':_0x2923d7[_0xf3e0('0x29')][_0xf3e0('0x2a')]};});_0x1005de['model']=_[_0xf3e0('0x2b')](_[_0xf3e0('0x25')](_0x598d74,'name'),[_0xf3e0('0x2c')]);_0x1005de[_0xf3e0('0x2d')]=_['keys'](_0x144f5f['query']);_0x1005de[_0xf3e0('0x2e')]=_[_0xf3e0('0x2f')](_0x1005de[_0xf3e0('0x30')],_0x1005de[_0xf3e0('0x2d')]);_0x5385c2[_0xf3e0('0x31')]=_[_0xf3e0('0x2f')](_0x1005de[_0xf3e0('0x30')],qs[_0xf3e0('0x32')](_0x144f5f[_0xf3e0('0x2d')][_0xf3e0('0x32')]));_0x5385c2['attributes']=_0x5385c2[_0xf3e0('0x31')]['length']?_0x5385c2[_0xf3e0('0x31')]:_0x1005de[_0xf3e0('0x30')];if(!_0x144f5f[_0xf3e0('0x2d')][_0xf3e0('0x33')](_0xf3e0('0x34'))){_0x5385c2[_0xf3e0('0x19')]=qs['limit'](_0x144f5f[_0xf3e0('0x2d')][_0xf3e0('0x19')]);_0x5385c2[_0xf3e0('0x18')]=qs['offset'](_0x144f5f[_0xf3e0('0x2d')]['offset']);}_0x5385c2['order']=qs[_0xf3e0('0x35')](_0x144f5f[_0xf3e0('0x2d')]['sort']);_0x5385c2[_0xf3e0('0x36')]=qs['filters'](_[_0xf3e0('0x37')](_0x144f5f[_0xf3e0('0x2d')],_0x1005de[_0xf3e0('0x2e')]),_0x598d74);if(_0x144f5f['query'][_0xf3e0('0x38')]){_0x5385c2[_0xf3e0('0x36')]=_[_0xf3e0('0x39')](_0x5385c2[_0xf3e0('0x36')],{'$or':_[_0xf3e0('0x25')](_0x598d74,function(_0x3fd2b8){if(_0x3fd2b8[_0xf3e0('0x29')]!==_0xf3e0('0x3a')){var _0xb51dcc={};_0xb51dcc[_0x3fd2b8[_0xf3e0('0x22')]]={'$like':'%'+_0x144f5f[_0xf3e0('0x2d')][_0xf3e0('0x38')]+'%'};return _0xb51dcc;}})});}_0x5385c2=_['merge']({},_0x5385c2,_0x144f5f[_0xf3e0('0x3b')]);var _0x13a3ef={'where':_0x5385c2[_0xf3e0('0x36')]};return db[_0xf3e0('0x26')][_0xf3e0('0x17')](_0x13a3ef)[_0xf3e0('0x1e')](function(_0x3dc606){_0x4f3e60[_0xf3e0('0x17')]=_0x3dc606;if(_0x144f5f[_0xf3e0('0x2d')][_0xf3e0('0x3c')]){_0x5385c2[_0xf3e0('0x3d')]=[{'all':!![]}];}return db[_0xf3e0('0x26')][_0xf3e0('0x3e')](_0x5385c2);})[_0xf3e0('0x1e')](function(_0x279204){_0x4f3e60['rows']=_0x279204;return _0x4f3e60;})[_0xf3e0('0x1e')](respondWithFilteredResult(_0x3e2251,_0x5385c2))[_0xf3e0('0x3f')](handleError(_0x3e2251,null));};exports['show']=function(_0x470ba2,_0x25bfb9){var _0x174b2e={'raw':![],'where':{'id':_0x470ba2[_0xf3e0('0x40')]['id']}},_0x3161e5={};_0x3161e5[_0xf3e0('0x30')]=_['keys'](db['ScreenRecording'][_0xf3e0('0x27')]);_0x3161e5[_0xf3e0('0x2d')]=_[_0xf3e0('0x41')](_0x470ba2[_0xf3e0('0x2d')]);_0x3161e5[_0xf3e0('0x2e')]=_[_0xf3e0('0x2f')](_0x3161e5['model'],_0x3161e5[_0xf3e0('0x2d')]);_0x174b2e[_0xf3e0('0x31')]=_['intersection'](_0x3161e5[_0xf3e0('0x30')],qs[_0xf3e0('0x32')](_0x470ba2[_0xf3e0('0x2d')]['fields']));_0x174b2e[_0xf3e0('0x31')]=_0x174b2e[_0xf3e0('0x31')][_0xf3e0('0x42')]?_0x174b2e[_0xf3e0('0x31')]:_0x3161e5[_0xf3e0('0x30')];if(_0x470ba2['query'][_0xf3e0('0x3c')]){_0x174b2e[_0xf3e0('0x3d')]=[{'all':!![]}];}_0x174b2e=_[_0xf3e0('0x39')]({},_0x174b2e,_0x470ba2[_0xf3e0('0x3b')]);return db['ScreenRecording'][_0xf3e0('0x43')](_0x174b2e)[_0xf3e0('0x1e')](handleEntityNotFound(_0x25bfb9,null))[_0xf3e0('0x1e')](respondWithResult(_0x25bfb9,null))['catch'](handleError(_0x25bfb9,null));};exports[_0xf3e0('0x44')]=function(_0x27b71b,_0x7532fb){return db[_0xf3e0('0x26')]['create'](_0x27b71b['body'],{})[_0xf3e0('0x1e')](respondWithResult(_0x7532fb,0xc9))[_0xf3e0('0x3f')](handleError(_0x7532fb,null));};exports[_0xf3e0('0x1d')]=function(_0x4fc9e4,_0x3ff2b4){if(_0x4fc9e4[_0xf3e0('0x45')]['id']){delete _0x4fc9e4[_0xf3e0('0x45')]['id'];}delete _0x4fc9e4['body']['duration'];delete _0x4fc9e4['body'][_0xf3e0('0x46')];delete _0x4fc9e4[_0xf3e0('0x45')][_0xf3e0('0x47')];delete _0x4fc9e4[_0xf3e0('0x45')][_0xf3e0('0x48')];return db[_0xf3e0('0x26')][_0xf3e0('0x43')]({'where':{'id':_0x4fc9e4['params']['id']}})[_0xf3e0('0x1e')](handleEntityNotFound(_0x3ff2b4,null))[_0xf3e0('0x1e')](saveUpdates(_0x4fc9e4['body'],null))['then'](respondWithResult(_0x3ff2b4,null))[_0xf3e0('0x3f')](handleError(_0x3ff2b4,null));};exports[_0xf3e0('0x49')]=function(_0x5af21b,_0x3d78d3){return db['ScreenRecording']['describe']()[_0xf3e0('0x1e')](respondWithResult(_0x3d78d3,null))[_0xf3e0('0x3f')](handleError(_0x3d78d3,null));};exports[_0xf3e0('0x4a')]=function(_0x227152,_0x15d223,_0x98bb79){var _0x4ce0fa=require(_0xf3e0('0x4b'));var _0xe81250=![];var _0x6bc1f1={};if(_0x227152[_0xf3e0('0x2d')][_0xf3e0('0x29')]&&_0x227152[_0xf3e0('0x2d')][_0xf3e0('0x29')]===_0xf3e0('0x4c')){_0x6bc1f1[_0xf3e0('0x4c')]=_0x227152[_0xf3e0('0x40')]['id'];}else{_0x6bc1f1['id']=_0x227152['params']['id'];}return db[_0xf3e0('0x26')][_0xf3e0('0x43')]({'where':_0x6bc1f1,'attributes':['id',_0xf3e0('0x48')],'raw':!![]})[_0xf3e0('0x1e')](handleEntityNotFound(_0x15d223,null))['then'](function(_0x560b46){if(_0x560b46){var _0x345f87=path[_0xf3e0('0x4d')](config[_0xf3e0('0x4e')],_0xf3e0('0x4f'),_0x560b46[_0xf3e0('0x48')]);var _0x59fa80=util['format'](_0xf3e0('0x50'),_0x345f87);if(fs[_0xf3e0('0x51')](_0x59fa80)){_0xe81250=!![];return _0x4ce0fa[_0xf3e0('0x52')](_0x59fa80,_0x345f87,config[_0xf3e0('0x53')][_0xf3e0('0x54')])[_0xf3e0('0x1e')](function(){return _0x560b46;});}return _0x560b46;}})[_0xf3e0('0x1e')](function(_0x4c7620){if(_0x4c7620){var _0x445d20=path[_0xf3e0('0x4d')](config[_0xf3e0('0x4e')],_0xf3e0('0x4f'),_0x4c7620[_0xf3e0('0x48')]);if(!fs['existsSync'](_0x445d20)){throw new db[(_0xf3e0('0x55'))][(_0xf3e0('0x56'))]('ScreenRecording\x20not\x20found');}if(_0x4c7620['filename']){return _0x15d223['download'](_0x445d20,_0x4c7620[_0xf3e0('0x57')]+path[_0xf3e0('0x58')](_0x445d20),function(){if(_0xe81250){fs[_0xf3e0('0x59')](_0x445d20);}});}else{return _0x15d223[_0xf3e0('0x4a')](_0x445d20,function(_0x46a108){if(_0xe81250){fs[_0xf3e0('0x59')](_0x445d20);}});}}})['catch'](function(_0x269c65){if(_0x269c65['message']===_0xf3e0('0x5a')){_0x15d223['status'](0x194)['send'](_0xf3e0('0x5b'));}else{return handleError(_0x15d223,null);}});};exports['destroy']=function(_0x3b4c1c,_0x4256f6){return db['ScreenRecording'][_0xf3e0('0x43')]({'where':{'id':_0x3b4c1c['params']['id']}})[_0xf3e0('0x1e')](function(_0x5b91d9){if(!_0x5b91d9)throw new ReferenceError(_0xf3e0('0x5c'));return _0x5b91d9;})['then'](function(_0x417753){var _0x3bbe2a=path[_0xf3e0('0x4d')](config['root'],'server/files/screen_recordings',_0x417753[_0xf3e0('0x48')]);logger['info'](_0xf3e0('0x5d'),_0x3bbe2a);if(!_[_0xf3e0('0x5e')](_0x417753[_0xf3e0('0x48')])&&fs[_0xf3e0('0x51')](_0x3bbe2a)){logger[_0xf3e0('0x5f')](_0xf3e0('0x60')+_0x3bbe2a+_0xf3e0('0x61'));fs['unlinkSync'](_0x3bbe2a);}_0x3bbe2a=_0x3bbe2a+_0xf3e0('0x62');if(!_[_0xf3e0('0x5e')](_0x417753[_0xf3e0('0x48')])&&fs[_0xf3e0('0x51')](_0x3bbe2a)){logger[_0xf3e0('0x5f')](_0xf3e0('0x60')+_0x3bbe2a+_0xf3e0('0x61'));fs['unlinkSync'](_0x3bbe2a);}return _0x417753;})['then'](function(_0x3a4bdf){if(!_0x3a4bdf)throw new InternalError();return _0x3a4bdf['destroy']();})['then'](function(){_0x4256f6[_0xf3e0('0x15')](0xcc)[_0xf3e0('0x63')]();})[_0xf3e0('0x3f')](handleError(_0x4256f6,null));};