Built motion from commit (unavailable).|2.5.31
[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 _0xeab4=['key','model','differenceBy','name','format','query','keys','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','map','VIRTUAL','includeAll','include','catch','show','params','options','find','create','body','duration','createdAt','closedAt','value','download','uniqueid','join','root','server/files/screen_recordings','%s.cypher','existsSync','secrets','recording','Sequelize','ValidationError','ScreenRecording\x20not\x20found','filename','unlink','message','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','send','index','ScreenRecording','rawAttributes','fieldName','type'];(function(_0x233f0f,_0x365b8f){var _0x2aa50e=function(_0x1de1d2){while(--_0x1de1d2){_0x233f0f['push'](_0x233f0f['shift']());}};_0x2aa50e(++_0x365b8f);}(_0xeab4,0x9e));var _0x4eab=function(_0x4f534c,_0x2ff9b9){_0x4f534c=_0x4f534c-0x0;var _0x59aaf3=_0xeab4[_0x4f534c];return _0x59aaf3;};'use strict';var emlformat=require(_0x4eab('0x0'));var rimraf=require(_0x4eab('0x1'));var zipdir=require(_0x4eab('0x2'));var jsonpatch=require(_0x4eab('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4eab('0x4'));var Mustache=require(_0x4eab('0x5'));var util=require(_0x4eab('0x6'));var path=require(_0x4eab('0x7'));var sox=require(_0x4eab('0x8'));var csv=require(_0x4eab('0x9'));var ejs=require(_0x4eab('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x4eab('0xb'));var jsforce=require(_0x4eab('0xc'));var deskjs=require(_0x4eab('0xd'));var toCsv=require(_0x4eab('0x9'));var querystring=require(_0x4eab('0xe'));var Papa=require(_0x4eab('0xf'));var Redis=require(_0x4eab('0x10'));var authService=require(_0x4eab('0x11'));var qs=require(_0x4eab('0x12'));var as=require(_0x4eab('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x4eab('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x4eab('0x15'));var db=require(_0x4eab('0x16'))['db'];function respondWithStatusCode(_0x42d030,_0x15e5a9){_0x15e5a9=_0x15e5a9||0xcc;return function(_0x1c6193){if(_0x1c6193){return _0x42d030[_0x4eab('0x17')](_0x15e5a9);}return _0x42d030[_0x4eab('0x18')](_0x15e5a9)['end']();};}function respondWithResult(_0x1775e0,_0x21259b){_0x21259b=_0x21259b||0xc8;return function(_0x14b9c1){if(_0x14b9c1){return _0x1775e0['status'](_0x21259b)[_0x4eab('0x19')](_0x14b9c1);}};}function respondWithFilteredResult(_0x3a40fa,_0x3919b7){return function(_0x49f20e){if(_0x49f20e){var _0x2ffc82=typeof _0x3919b7['offset']==='undefined'&&typeof _0x3919b7['limit']==='undefined';var _0x425a10=_0x49f20e[_0x4eab('0x1a')];var _0x354bdb=_0x2ffc82?0x0:_0x3919b7['offset'];var _0x2a7814=_0x2ffc82?_0x49f20e[_0x4eab('0x1a')]:_0x3919b7[_0x4eab('0x1b')]+_0x3919b7[_0x4eab('0x1c')];var _0x3d6ae4;if(_0x2a7814>=_0x425a10){_0x2a7814=_0x425a10;_0x3d6ae4=0xc8;}else{_0x3d6ae4=0xce;}_0x3a40fa['status'](_0x3d6ae4);return _0x3a40fa[_0x4eab('0x1d')](_0x4eab('0x1e'),_0x354bdb+'-'+_0x2a7814+'/'+_0x425a10)[_0x4eab('0x19')](_0x49f20e);}return null;};}function patchUpdates(_0x3cc075){return function(_0xc5be35){try{jsonpatch[_0x4eab('0x1f')](_0xc5be35,_0x3cc075,!![]);}catch(_0x3e6ffa){return BPromise[_0x4eab('0x20')](_0x3e6ffa);}return _0xc5be35[_0x4eab('0x21')]();};}function saveUpdates(_0x2aac87,_0x41b08f){return function(_0x152be5){if(_0x152be5){return _0x152be5[_0x4eab('0x22')](_0x2aac87)[_0x4eab('0x23')](function(_0x38401e){return _0x38401e;});}return null;};}function removeEntity(_0xa0915,_0x2560ae){return function(_0x148558){if(_0x148558){return _0x148558[_0x4eab('0x24')]()['then'](function(){_0xa0915[_0x4eab('0x18')](0xcc)[_0x4eab('0x25')]();});}};}function handleEntityNotFound(_0x42e936,_0xb2458c){return function(_0x2e5088){if(!_0x2e5088){_0x42e936[_0x4eab('0x17')](0x194);}return _0x2e5088;};}function handleError(_0x26b283,_0x38f357){_0x38f357=_0x38f357||0x1f4;return function(_0x3adc2c){logger[_0x4eab('0x26')](_0x3adc2c[_0x4eab('0x27')]);if(_0x3adc2c['name']){delete _0x3adc2c['name'];}_0x26b283[_0x4eab('0x18')](_0x38f357)[_0x4eab('0x28')](_0x3adc2c);};}exports[_0x4eab('0x29')]=function(_0x159832,_0x10e004){var _0x45b98a={},_0x3dbc51={},_0x437a6a={'count':0x0,'rows':[]};var _0x392a23=_['map'](db[_0x4eab('0x2a')][_0x4eab('0x2b')],function(_0x3a9c80){return{'name':_0x3a9c80[_0x4eab('0x2c')],'type':_0x3a9c80[_0x4eab('0x2d')][_0x4eab('0x2e')]};});_0x3dbc51[_0x4eab('0x2f')]=_[_0x4eab('0x30')](_['map'](_0x392a23,_0x4eab('0x31')),[_0x4eab('0x32')]);_0x3dbc51[_0x4eab('0x33')]=_[_0x4eab('0x34')](_0x159832['query']);_0x3dbc51['filters']=_['intersection'](_0x3dbc51[_0x4eab('0x2f')],_0x3dbc51['query']);_0x45b98a[_0x4eab('0x35')]=_[_0x4eab('0x36')](_0x3dbc51['model'],qs[_0x4eab('0x37')](_0x159832[_0x4eab('0x33')][_0x4eab('0x37')]));_0x45b98a['attributes']=_0x45b98a[_0x4eab('0x35')]['length']?_0x45b98a[_0x4eab('0x35')]:_0x3dbc51['model'];if(!_0x159832[_0x4eab('0x33')][_0x4eab('0x38')](_0x4eab('0x39'))){_0x45b98a[_0x4eab('0x1c')]=qs[_0x4eab('0x1c')](_0x159832[_0x4eab('0x33')][_0x4eab('0x1c')]);_0x45b98a[_0x4eab('0x1b')]=qs[_0x4eab('0x1b')](_0x159832[_0x4eab('0x33')][_0x4eab('0x1b')]);}_0x45b98a[_0x4eab('0x3a')]=qs['sort'](_0x159832[_0x4eab('0x33')][_0x4eab('0x3b')]);_0x45b98a[_0x4eab('0x3c')]=qs[_0x4eab('0x3d')](_[_0x4eab('0x3e')](_0x159832[_0x4eab('0x33')],_0x3dbc51[_0x4eab('0x3d')]),_0x392a23);if(_0x159832[_0x4eab('0x33')]['filter']){_0x45b98a['where']=_[_0x4eab('0x3f')](_0x45b98a[_0x4eab('0x3c')],{'$or':_[_0x4eab('0x40')](_0x392a23,function(_0xb96be3){if(_0xb96be3[_0x4eab('0x2d')]!==_0x4eab('0x41')){var _0xd44a95={};_0xd44a95[_0xb96be3[_0x4eab('0x31')]]={'$like':'%'+_0x159832[_0x4eab('0x33')]['filter']+'%'};return _0xd44a95;}})});}_0x45b98a=_[_0x4eab('0x3f')]({},_0x45b98a,_0x159832['options']);var _0x1bebac={'where':_0x45b98a['where']};return db[_0x4eab('0x2a')][_0x4eab('0x1a')](_0x1bebac)['then'](function(_0x5ef389){_0x437a6a[_0x4eab('0x1a')]=_0x5ef389;if(_0x159832[_0x4eab('0x33')][_0x4eab('0x42')]){_0x45b98a[_0x4eab('0x43')]=[{'all':!![]}];}return db[_0x4eab('0x2a')]['findAll'](_0x45b98a);})[_0x4eab('0x23')](function(_0x242850){_0x437a6a['rows']=_0x242850;return _0x437a6a;})[_0x4eab('0x23')](respondWithFilteredResult(_0x10e004,_0x45b98a))[_0x4eab('0x44')](handleError(_0x10e004,null));};exports[_0x4eab('0x45')]=function(_0x17e57f,_0x88eb39){var _0x313b88={'raw':![],'where':{'id':_0x17e57f[_0x4eab('0x46')]['id']}},_0x5a246c={};_0x5a246c[_0x4eab('0x2f')]=_[_0x4eab('0x34')](db['ScreenRecording']['rawAttributes']);_0x5a246c[_0x4eab('0x33')]=_[_0x4eab('0x34')](_0x17e57f[_0x4eab('0x33')]);_0x5a246c['filters']=_[_0x4eab('0x36')](_0x5a246c[_0x4eab('0x2f')],_0x5a246c[_0x4eab('0x33')]);_0x313b88['attributes']=_['intersection'](_0x5a246c[_0x4eab('0x2f')],qs['fields'](_0x17e57f[_0x4eab('0x33')][_0x4eab('0x37')]));_0x313b88[_0x4eab('0x35')]=_0x313b88[_0x4eab('0x35')]['length']?_0x313b88[_0x4eab('0x35')]:_0x5a246c[_0x4eab('0x2f')];if(_0x17e57f['query']['includeAll']){_0x313b88[_0x4eab('0x43')]=[{'all':!![]}];}_0x313b88=_[_0x4eab('0x3f')]({},_0x313b88,_0x17e57f[_0x4eab('0x47')]);return db[_0x4eab('0x2a')][_0x4eab('0x48')](_0x313b88)['then'](handleEntityNotFound(_0x88eb39,null))['then'](respondWithResult(_0x88eb39,null))[_0x4eab('0x44')](handleError(_0x88eb39,null));};exports[_0x4eab('0x49')]=function(_0x18a0cc,_0xae6517){return db['ScreenRecording']['create'](_0x18a0cc[_0x4eab('0x4a')],{})[_0x4eab('0x23')](respondWithResult(_0xae6517,0xc9))[_0x4eab('0x44')](handleError(_0xae6517,null));};exports['update']=function(_0x41585d,_0x17611f){if(_0x41585d[_0x4eab('0x4a')]['id']){delete _0x41585d[_0x4eab('0x4a')]['id'];}delete _0x41585d[_0x4eab('0x4a')][_0x4eab('0x4b')];delete _0x41585d['body'][_0x4eab('0x4c')];delete _0x41585d[_0x4eab('0x4a')][_0x4eab('0x4d')];delete _0x41585d[_0x4eab('0x4a')][_0x4eab('0x4e')];return db['ScreenRecording'][_0x4eab('0x48')]({'where':{'id':_0x41585d[_0x4eab('0x46')]['id']}})[_0x4eab('0x23')](handleEntityNotFound(_0x17611f,null))['then'](saveUpdates(_0x41585d['body'],null))[_0x4eab('0x23')](respondWithResult(_0x17611f,null))[_0x4eab('0x44')](handleError(_0x17611f,null));};exports['describe']=function(_0x38017b,_0x41858e){return db[_0x4eab('0x2a')]['describe']()[_0x4eab('0x23')](respondWithResult(_0x41858e,null))['catch'](handleError(_0x41858e,null));};exports[_0x4eab('0x4f')]=function(_0x42b870,_0xaed8,_0x175647){var _0x4b12e6=require('../../components/encryptor');var _0x1c6f25=![];var _0xf8e1fd={};if(_0x42b870[_0x4eab('0x33')][_0x4eab('0x2d')]&&_0x42b870['query'][_0x4eab('0x2d')]===_0x4eab('0x50')){_0xf8e1fd[_0x4eab('0x50')]=_0x42b870[_0x4eab('0x46')]['id'];}else{_0xf8e1fd['id']=_0x42b870[_0x4eab('0x46')]['id'];}return db[_0x4eab('0x2a')][_0x4eab('0x48')]({'where':_0xf8e1fd,'attributes':['id',_0x4eab('0x4e')],'raw':!![]})['then'](handleEntityNotFound(_0xaed8,null))[_0x4eab('0x23')](function(_0x41f3ad){if(_0x41f3ad){var _0x574179=path[_0x4eab('0x51')](config[_0x4eab('0x52')],_0x4eab('0x53'),_0x41f3ad['value']);var _0x38b93d=util[_0x4eab('0x32')](_0x4eab('0x54'),_0x574179);if(fs[_0x4eab('0x55')](_0x38b93d)){_0x1c6f25=!![];return _0x4b12e6['decryptFile'](_0x38b93d,_0x574179,config[_0x4eab('0x56')][_0x4eab('0x57')])[_0x4eab('0x23')](function(){return _0x41f3ad;});}return _0x41f3ad;}})[_0x4eab('0x23')](function(_0x3c4d86){if(_0x3c4d86){var _0x35a36f=path[_0x4eab('0x51')](config[_0x4eab('0x52')],_0x4eab('0x53'),_0x3c4d86[_0x4eab('0x4e')]);if(!fs[_0x4eab('0x55')](_0x35a36f)){throw new db[(_0x4eab('0x58'))][(_0x4eab('0x59'))](_0x4eab('0x5a'));}if(_0x3c4d86['filename']){return _0xaed8[_0x4eab('0x4f')](_0x35a36f,_0x3c4d86[_0x4eab('0x5b')]+path['extname'](_0x35a36f),function(){if(_0x1c6f25){fs[_0x4eab('0x5c')](_0x35a36f);}});}else{return _0xaed8['download'](_0x35a36f,function(_0x3de03b){if(_0x1c6f25){fs[_0x4eab('0x5c')](_0x35a36f);}});}}})[_0x4eab('0x44')](function(_0x216603){if(_0x216603[_0x4eab('0x5d')]==='ScreenRecording\x20not\x20found'){_0xaed8[_0x4eab('0x18')](0x194)[_0x4eab('0x28')]('Not\x20found');}else{return handleError(_0xaed8,null);}});};exports[_0x4eab('0x24')]=function(_0x2f4b9f,_0x4e0a2d){return db[_0x4eab('0x2a')][_0x4eab('0x48')]({'where':{'id':_0x2f4b9f[_0x4eab('0x46')]['id']}})[_0x4eab('0x23')](function(_0x10f3be){if(_[_0x4eab('0x5e')](_0x10f3be)){throw new ReferenceError(_0x4eab('0x5f'));}return _0x10f3be;})[_0x4eab('0x23')](function(_0x3ac029){var _0x287904=path[_0x4eab('0x51')](config[_0x4eab('0x52')],'server/files/screen_recordings',_0x3ac029[_0x4eab('0x4e')]);logger[_0x4eab('0x60')](_0x4eab('0x61'),_0x287904);if(!_[_0x4eab('0x5e')](_0x3ac029['value'])&&fs[_0x4eab('0x55')](_0x287904)){logger[_0x4eab('0x60')](_0x4eab('0x62')+_0x287904+_0x4eab('0x63'));fs[_0x4eab('0x64')](_0x287904);}_0x287904=_0x287904+_0x4eab('0x65');if(!_[_0x4eab('0x5e')](_0x3ac029[_0x4eab('0x4e')])&&fs[_0x4eab('0x55')](_0x287904)){logger[_0x4eab('0x60')](_0x4eab('0x62')+_0x287904+_0x4eab('0x63'));fs['unlinkSync'](_0x287904);}return _0x3ac029;})[_0x4eab('0x23')](function(_0x139294){if(!_0x139294)throw new InternalError();return _0x139294[_0x4eab('0x24')]();})['then'](function(){_0x4e0a2d[_0x4eab('0x18')](0xcc)[_0x4eab('0x25')]();})[_0x4eab('0x44')](handleError(_0x4e0a2d,null));};