56b2f5ba0387999bea464dc10894c7ae28d648e9
[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 _0x42c5=['fields','length','nolimit','order','sort','pick','where','VIRTUAL','filter','options','findAll','rows','params','rawAttributes','intersection','find','catch','create','body','duration','value','describe','download','../../components/encryptor','uniqueid','server/files/screen_recordings','%s.cypher','existsSync','decryptFile','secrets','recording','join','root','Sequelize','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','Entity\x20not\x20found','info','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','sox','to-csv','fs-extra','squel','crypto','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','update','then','destroy','error','stack','name','send','index','map','ScreenRecording','type','key','model','differenceBy','format','query','keys','filters','attributes'];(function(_0x32f0d4,_0x4f83c1){var _0x4f94db=function(_0x2e1185){while(--_0x2e1185){_0x32f0d4['push'](_0x32f0d4['shift']());}};_0x4f94db(++_0x4f83c1);}(_0x42c5,0x1a8));var _0x542c=function(_0x33f440,_0x12b3b3){_0x33f440=_0x33f440-0x0;var _0xe3bcc7=_0x42c5[_0x33f440];return _0xe3bcc7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x542c('0x0'));var zipdir=require(_0x542c('0x1'));var jsonpatch=require(_0x542c('0x2'));var rp=require(_0x542c('0x3'));var moment=require('moment');var BPromise=require(_0x542c('0x4'));var Mustache=require(_0x542c('0x5'));var util=require('util');var path=require('path');var sox=require(_0x542c('0x6'));var csv=require(_0x542c('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x542c('0x8'));var _=require('lodash');var squel=require(_0x542c('0x9'));var crypto=require(_0x542c('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x542c('0x7'));var querystring=require('querystring');var Papa=require(_0x542c('0xb'));var Redis=require('ioredis');var authService=require(_0x542c('0xc'));var qs=require(_0x542c('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x542c('0xe'));var logger=require(_0x542c('0xf'))(_0x542c('0x10'));var utils=require(_0x542c('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x542c('0x12'));var db=require(_0x542c('0x13'))['db'];function respondWithStatusCode(_0x10b1cd,_0x2cc34a){_0x2cc34a=_0x2cc34a||0xcc;return function(_0x5ae796){if(_0x5ae796){return _0x10b1cd[_0x542c('0x14')](_0x2cc34a);}return _0x10b1cd[_0x542c('0x15')](_0x2cc34a)['end']();};}function respondWithResult(_0xe05ec3,_0x414f8f){_0x414f8f=_0x414f8f||0xc8;return function(_0x3e721b){if(_0x3e721b){return _0xe05ec3['status'](_0x414f8f)['json'](_0x3e721b);}};}function respondWithFilteredResult(_0x1f3346,_0x332622){return function(_0x56058a){if(_0x56058a){var _0x32ab04=_0x56058a[_0x542c('0x16')],_0x1d129a=_0x332622[_0x542c('0x17')],_0x45d68d=_0x332622['offset']+_0x332622[_0x542c('0x18')],_0x3e8454;if(_0x45d68d>=_0x32ab04){_0x45d68d=_0x32ab04;_0x3e8454=0xc8;}else{_0x3e8454=0xce;}_0x1f3346['status'](_0x3e8454);return _0x1f3346[_0x542c('0x19')](_0x542c('0x1a'),_0x1d129a+'-'+_0x45d68d+'/'+_0x32ab04)['json'](_0x56058a);}return null;};}function patchUpdates(_0x1886d7){return function(_0x76adfc){try{jsonpatch['apply'](_0x76adfc,_0x1886d7,!![]);}catch(_0xc96ea8){return BPromise['reject'](_0xc96ea8);}return _0x76adfc['save']();};}function saveUpdates(_0x13ffa3,_0x4fc854){return function(_0x556ee2){if(_0x556ee2){return _0x556ee2[_0x542c('0x1b')](_0x13ffa3)[_0x542c('0x1c')](function(_0x264851){return _0x264851;});}return null;};}function removeEntity(_0x575ff8,_0x5e7d43){return function(_0x491970){if(_0x491970){return _0x491970[_0x542c('0x1d')]()[_0x542c('0x1c')](function(){_0x575ff8[_0x542c('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x26c674,_0x54331f){return function(_0x183405){if(!_0x183405){_0x26c674[_0x542c('0x14')](0x194);}return _0x183405;};}function handleError(_0x331192,_0x496f01){_0x496f01=_0x496f01||0x1f4;return function(_0x1cb7aa){logger[_0x542c('0x1e')](_0x1cb7aa[_0x542c('0x1f')]);if(_0x1cb7aa[_0x542c('0x20')]){delete _0x1cb7aa[_0x542c('0x20')];}_0x331192[_0x542c('0x15')](_0x496f01)[_0x542c('0x21')](_0x1cb7aa);};}exports[_0x542c('0x22')]=function(_0x3a0fc1,_0x55bb19){var _0x49a516={},_0x367834={},_0x451e56={'count':0x0,'rows':[]};var _0x5c1fbc=_[_0x542c('0x23')](db[_0x542c('0x24')]['rawAttributes'],function(_0x419281){return{'name':_0x419281['fieldName'],'type':_0x419281[_0x542c('0x25')][_0x542c('0x26')]};});_0x367834[_0x542c('0x27')]=_[_0x542c('0x28')](_[_0x542c('0x23')](_0x5c1fbc,_0x542c('0x20')),[_0x542c('0x29')]);_0x367834[_0x542c('0x2a')]=_[_0x542c('0x2b')](_0x3a0fc1[_0x542c('0x2a')]);_0x367834[_0x542c('0x2c')]=_['intersection'](_0x367834[_0x542c('0x27')],_0x367834[_0x542c('0x2a')]);_0x49a516[_0x542c('0x2d')]=_['intersection'](_0x367834[_0x542c('0x27')],qs['fields'](_0x3a0fc1[_0x542c('0x2a')][_0x542c('0x2e')]));_0x49a516[_0x542c('0x2d')]=_0x49a516[_0x542c('0x2d')][_0x542c('0x2f')]?_0x49a516[_0x542c('0x2d')]:_0x367834[_0x542c('0x27')];if(!_0x3a0fc1[_0x542c('0x2a')]['hasOwnProperty'](_0x542c('0x30'))){_0x49a516[_0x542c('0x18')]=qs['limit'](_0x3a0fc1[_0x542c('0x2a')][_0x542c('0x18')]);_0x49a516[_0x542c('0x17')]=qs[_0x542c('0x17')](_0x3a0fc1[_0x542c('0x2a')]['offset']);}_0x49a516[_0x542c('0x31')]=qs[_0x542c('0x32')](_0x3a0fc1[_0x542c('0x2a')][_0x542c('0x32')]);_0x49a516['where']=qs[_0x542c('0x2c')](_[_0x542c('0x33')](_0x3a0fc1[_0x542c('0x2a')],_0x367834[_0x542c('0x2c')]),_0x5c1fbc);if(_0x3a0fc1[_0x542c('0x2a')]['filter']){_0x49a516[_0x542c('0x34')]=_['merge'](_0x49a516[_0x542c('0x34')],{'$or':_['map'](_0x5c1fbc,function(_0x2b7624){if(_0x2b7624[_0x542c('0x25')]!==_0x542c('0x35')){var _0x1ffbd2={};_0x1ffbd2[_0x2b7624[_0x542c('0x20')]]={'$like':'%'+_0x3a0fc1['query'][_0x542c('0x36')]+'%'};return _0x1ffbd2;}})});}_0x49a516=_['merge']({},_0x49a516,_0x3a0fc1[_0x542c('0x37')]);var _0x25664e={'where':_0x49a516[_0x542c('0x34')]};return db['ScreenRecording'][_0x542c('0x16')](_0x25664e)[_0x542c('0x1c')](function(_0x5cd76f){_0x451e56['count']=_0x5cd76f;if(_0x3a0fc1[_0x542c('0x2a')]['includeAll']){_0x49a516['include']=[{'all':!![]}];}return db[_0x542c('0x24')][_0x542c('0x38')](_0x49a516);})['then'](function(_0x27d817){_0x451e56[_0x542c('0x39')]=_0x27d817;return _0x451e56;})[_0x542c('0x1c')](respondWithFilteredResult(_0x55bb19,_0x49a516))['catch'](handleError(_0x55bb19,null));};exports['show']=function(_0x8f6b5c,_0x458bab){var _0x485f82={'raw':![],'where':{'id':_0x8f6b5c[_0x542c('0x3a')]['id']}},_0x340be7={};_0x340be7[_0x542c('0x27')]=_[_0x542c('0x2b')](db[_0x542c('0x24')][_0x542c('0x3b')]);_0x340be7[_0x542c('0x2a')]=_[_0x542c('0x2b')](_0x8f6b5c[_0x542c('0x2a')]);_0x340be7['filters']=_[_0x542c('0x3c')](_0x340be7['model'],_0x340be7['query']);_0x485f82[_0x542c('0x2d')]=_['intersection'](_0x340be7['model'],qs[_0x542c('0x2e')](_0x8f6b5c[_0x542c('0x2a')][_0x542c('0x2e')]));_0x485f82[_0x542c('0x2d')]=_0x485f82[_0x542c('0x2d')][_0x542c('0x2f')]?_0x485f82[_0x542c('0x2d')]:_0x340be7[_0x542c('0x27')];if(_0x8f6b5c['query']['includeAll']){_0x485f82['include']=[{'all':!![]}];}_0x485f82=_['merge']({},_0x485f82,_0x8f6b5c[_0x542c('0x37')]);return db[_0x542c('0x24')][_0x542c('0x3d')](_0x485f82)['then'](handleEntityNotFound(_0x458bab,null))[_0x542c('0x1c')](respondWithResult(_0x458bab,null))[_0x542c('0x3e')](handleError(_0x458bab,null));};exports[_0x542c('0x3f')]=function(_0x28c225,_0x7cd6ec){return db[_0x542c('0x24')]['create'](_0x28c225[_0x542c('0x40')],{})[_0x542c('0x1c')](respondWithResult(_0x7cd6ec,0xc9))[_0x542c('0x3e')](handleError(_0x7cd6ec,null));};exports[_0x542c('0x1b')]=function(_0x45d3ec,_0x558f68){if(_0x45d3ec['body']['id']){delete _0x45d3ec[_0x542c('0x40')]['id'];}delete _0x45d3ec[_0x542c('0x40')][_0x542c('0x41')];delete _0x45d3ec[_0x542c('0x40')]['createdAt'];delete _0x45d3ec[_0x542c('0x40')]['closedAt'];delete _0x45d3ec[_0x542c('0x40')][_0x542c('0x42')];return db[_0x542c('0x24')][_0x542c('0x3d')]({'where':{'id':_0x45d3ec['params']['id']}})[_0x542c('0x1c')](handleEntityNotFound(_0x558f68,null))[_0x542c('0x1c')](saveUpdates(_0x45d3ec['body'],null))[_0x542c('0x1c')](respondWithResult(_0x558f68,null))[_0x542c('0x3e')](handleError(_0x558f68,null));};exports[_0x542c('0x43')]=function(_0x2ac056,_0x348a88){return db['ScreenRecording'][_0x542c('0x43')]()[_0x542c('0x1c')](respondWithResult(_0x348a88,null))['catch'](handleError(_0x348a88,null));};exports[_0x542c('0x44')]=function(_0x3be03f,_0x22f98e,_0x4f303a){var _0x12733f=require(_0x542c('0x45'));var _0x2d596d=![];var _0x4e4adf={};if(_0x3be03f[_0x542c('0x2a')][_0x542c('0x25')]&&_0x3be03f[_0x542c('0x2a')][_0x542c('0x25')]==='uniqueid'){_0x4e4adf[_0x542c('0x46')]=_0x3be03f['params']['id'];}else{_0x4e4adf['id']=_0x3be03f[_0x542c('0x3a')]['id'];}return db['ScreenRecording'][_0x542c('0x3d')]({'where':_0x4e4adf,'attributes':['id',_0x542c('0x42')],'raw':!![]})[_0x542c('0x1c')](handleEntityNotFound(_0x22f98e,null))[_0x542c('0x1c')](function(_0x1c0629){if(_0x1c0629){var _0x1b185e=path['join'](config['root'],_0x542c('0x47'),_0x1c0629[_0x542c('0x42')]);var _0xa68096=util['format'](_0x542c('0x48'),_0x1b185e);if(fs[_0x542c('0x49')](_0xa68096)){_0x2d596d=!![];return _0x12733f[_0x542c('0x4a')](_0xa68096,_0x1b185e,config[_0x542c('0x4b')][_0x542c('0x4c')])['then'](function(){return _0x1c0629;});}return _0x1c0629;}})[_0x542c('0x1c')](function(_0x3ab3c4){if(_0x3ab3c4){var _0x503774=path[_0x542c('0x4d')](config[_0x542c('0x4e')],_0x542c('0x47'),_0x3ab3c4[_0x542c('0x42')]);if(!fs[_0x542c('0x49')](_0x503774)){throw new db[(_0x542c('0x4f'))][(_0x542c('0x50'))](_0x542c('0x51'));}if(_0x3ab3c4[_0x542c('0x52')]){return _0x22f98e[_0x542c('0x44')](_0x503774,_0x3ab3c4[_0x542c('0x52')]+path[_0x542c('0x53')](_0x503774),function(){if(_0x2d596d){fs[_0x542c('0x54')](_0x503774);}});}else{return _0x22f98e[_0x542c('0x44')](_0x503774,function(_0x399998){if(_0x2d596d){fs[_0x542c('0x54')](_0x503774);}});}}})[_0x542c('0x3e')](function(_0xbcbea4){if(_0xbcbea4[_0x542c('0x55')]===_0x542c('0x51')){_0x22f98e[_0x542c('0x15')](0x194)[_0x542c('0x21')](_0x542c('0x56'));}else{return handleError(_0x22f98e,null);}});};exports[_0x542c('0x1d')]=function(_0x1b136a,_0x441324){return db[_0x542c('0x24')][_0x542c('0x3d')]({'where':{'id':_0x1b136a['params']['id']}})['then'](function(_0x378338){if(!_0x378338)throw new ReferenceError(_0x542c('0x57'));return _0x378338;})['then'](function(_0x48d324){var _0x376438=path['join'](config[_0x542c('0x4e')],'server/files/screen_recordings',_0x48d324[_0x542c('0x42')]);logger[_0x542c('0x58')]('cancellazione\x20fisica\x20documento\x20%s',_0x376438);if(!_[_0x542c('0x59')](_0x48d324['value'])&&fs[_0x542c('0x49')](_0x376438)){logger[_0x542c('0x58')](_0x542c('0x5a')+_0x376438+_0x542c('0x5b'));fs['unlinkSync'](_0x376438);}_0x376438=_0x376438+_0x542c('0x5c');if(!_[_0x542c('0x59')](_0x48d324[_0x542c('0x42')])&&fs['existsSync'](_0x376438)){logger[_0x542c('0x58')]('File:\x20\x22'+_0x376438+_0x542c('0x5b'));fs[_0x542c('0x5d')](_0x376438);}return _0x48d324;})['then'](function(_0x587e03){if(!_0x587e03)throw new InternalError();return _0x587e03['destroy']();})['then'](function(){_0x441324[_0x542c('0x15')](0xcc)['end']();})[_0x542c('0x3e')](handleError(_0x441324,null));};