310eb94e6b237a23cfb80ec035e244f80b5e2ebb
[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 _0x75e3=['send','index','map','ScreenRecording','rawAttributes','type','model','differenceBy','format','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','includeAll','include','findAll','rows','catch','show','params','create','body','update','duration','closedAt','find','describe','download','../../components/encryptor','uniqueid','value','join','root','server/files/screen_recordings','%s.cypher','existsSync','decryptFile','recording','Sequelize','ValidationError','filename','extname','unlink','message','ScreenRecording\x20not\x20found','Not\x20found','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','File:\x20\x22','rimraf','zip-dir','request-promise','moment','bluebird','sox','ejs','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','apply','destroy','then','error','stack','name'];(function(_0x8f3f8e,_0x173886){var _0x283c58=function(_0x3d1e51){while(--_0x3d1e51){_0x8f3f8e['push'](_0x8f3f8e['shift']());}};_0x283c58(++_0x173886);}(_0x75e3,0x104));var _0x375e=function(_0x3cf7bd,_0x4db29e){_0x3cf7bd=_0x3cf7bd-0x0;var _0x53c021=_0x75e3[_0x3cf7bd];return _0x53c021;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x375e('0x0'));var zipdir=require(_0x375e('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x375e('0x2'));var moment=require(_0x375e('0x3'));var BPromise=require(_0x375e('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x375e('0x5'));var csv=require('to-csv');var ejs=require(_0x375e('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x375e('0x7'));var crypto=require(_0x375e('0x8'));var jsforce=require(_0x375e('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x375e('0xa'));var querystring=require(_0x375e('0xb'));var Papa=require(_0x375e('0xc'));var Redis=require(_0x375e('0xd'));var authService=require(_0x375e('0xe'));var qs=require(_0x375e('0xf'));var as=require(_0x375e('0x10'));var hardwareService=require(_0x375e('0x11'));var logger=require('../../config/logger')(_0x375e('0x12'));var utils=require(_0x375e('0x13'));var config=require(_0x375e('0x14'));var licenseUtil=require(_0x375e('0x15'));var db=require(_0x375e('0x16'))['db'];function respondWithStatusCode(_0x190abf,_0x4c2c39){_0x4c2c39=_0x4c2c39||0xcc;return function(_0x2163ec){if(_0x2163ec){return _0x190abf[_0x375e('0x17')](_0x4c2c39);}return _0x190abf[_0x375e('0x18')](_0x4c2c39)[_0x375e('0x19')]();};}function respondWithResult(_0x247d94,_0x28dc89){_0x28dc89=_0x28dc89||0xc8;return function(_0x110c44){if(_0x110c44){return _0x247d94['status'](_0x28dc89)[_0x375e('0x1a')](_0x110c44);}};}function respondWithFilteredResult(_0x39a82b,_0x370d8d){return function(_0x4892f9){if(_0x4892f9){var _0x2a9ddf=typeof _0x370d8d['offset']===_0x375e('0x1b')&&typeof _0x370d8d[_0x375e('0x1c')]===_0x375e('0x1b');var _0x3e90d6=_0x4892f9[_0x375e('0x1d')];var _0x441308=_0x2a9ddf?0x0:_0x370d8d[_0x375e('0x1e')];var _0x2e5f44=_0x2a9ddf?_0x4892f9[_0x375e('0x1d')]:_0x370d8d['offset']+_0x370d8d['limit'];var _0x1b3a99;if(_0x2e5f44>=_0x3e90d6){_0x2e5f44=_0x3e90d6;_0x1b3a99=0xc8;}else{_0x1b3a99=0xce;}_0x39a82b['status'](_0x1b3a99);return _0x39a82b['set']('Content-Range',_0x441308+'-'+_0x2e5f44+'/'+_0x3e90d6)[_0x375e('0x1a')](_0x4892f9);}return null;};}function patchUpdates(_0x1104ae){return function(_0x4be1a6){try{jsonpatch[_0x375e('0x1f')](_0x4be1a6,_0x1104ae,!![]);}catch(_0x836fa6){return BPromise['reject'](_0x836fa6);}return _0x4be1a6['save']();};}function saveUpdates(_0x279042,_0x5d68a5){return function(_0x516dd2){if(_0x516dd2){return _0x516dd2['update'](_0x279042)['then'](function(_0x5aa63d){return _0x5aa63d;});}return null;};}function removeEntity(_0x326eea,_0x4e878e){return function(_0x3f7c85){if(_0x3f7c85){return _0x3f7c85[_0x375e('0x20')]()[_0x375e('0x21')](function(){_0x326eea[_0x375e('0x18')](0xcc)[_0x375e('0x19')]();});}};}function handleEntityNotFound(_0x260928,_0x5e6c34){return function(_0x329e5d){if(!_0x329e5d){_0x260928[_0x375e('0x17')](0x194);}return _0x329e5d;};}function handleError(_0x2a13ef,_0x5397fc){_0x5397fc=_0x5397fc||0x1f4;return function(_0x11b778){logger[_0x375e('0x22')](_0x11b778[_0x375e('0x23')]);if(_0x11b778[_0x375e('0x24')]){delete _0x11b778[_0x375e('0x24')];}_0x2a13ef[_0x375e('0x18')](_0x5397fc)[_0x375e('0x25')](_0x11b778);};}exports[_0x375e('0x26')]=function(_0x2661cd,_0x460675){var _0x15f8f5={},_0x7d0ec8={},_0x399ed={'count':0x0,'rows':[]};var _0x3df953=_[_0x375e('0x27')](db[_0x375e('0x28')][_0x375e('0x29')],function(_0x217fd7){return{'name':_0x217fd7['fieldName'],'type':_0x217fd7[_0x375e('0x2a')]['key']};});_0x7d0ec8[_0x375e('0x2b')]=_[_0x375e('0x2c')](_[_0x375e('0x27')](_0x3df953,_0x375e('0x24')),[_0x375e('0x2d')]);_0x7d0ec8[_0x375e('0x2e')]=_[_0x375e('0x2f')](_0x2661cd[_0x375e('0x2e')]);_0x7d0ec8['filters']=_[_0x375e('0x30')](_0x7d0ec8[_0x375e('0x2b')],_0x7d0ec8['query']);_0x15f8f5[_0x375e('0x31')]=_['intersection'](_0x7d0ec8[_0x375e('0x2b')],qs[_0x375e('0x32')](_0x2661cd[_0x375e('0x2e')]['fields']));_0x15f8f5['attributes']=_0x15f8f5['attributes'][_0x375e('0x33')]?_0x15f8f5['attributes']:_0x7d0ec8[_0x375e('0x2b')];if(!_0x2661cd['query'][_0x375e('0x34')](_0x375e('0x35'))){_0x15f8f5['limit']=qs['limit'](_0x2661cd['query'][_0x375e('0x1c')]);_0x15f8f5[_0x375e('0x1e')]=qs[_0x375e('0x1e')](_0x2661cd[_0x375e('0x2e')][_0x375e('0x1e')]);}_0x15f8f5['order']=qs[_0x375e('0x36')](_0x2661cd[_0x375e('0x2e')][_0x375e('0x36')]);_0x15f8f5[_0x375e('0x37')]=qs['filters'](_['pick'](_0x2661cd[_0x375e('0x2e')],_0x7d0ec8['filters']),_0x3df953);if(_0x2661cd[_0x375e('0x2e')][_0x375e('0x38')]){_0x15f8f5['where']=_[_0x375e('0x39')](_0x15f8f5[_0x375e('0x37')],{'$or':_[_0x375e('0x27')](_0x3df953,function(_0x1dfbf6){if(_0x1dfbf6[_0x375e('0x2a')]!=='VIRTUAL'){var _0x55428a={};_0x55428a[_0x1dfbf6['name']]={'$like':'%'+_0x2661cd[_0x375e('0x2e')][_0x375e('0x38')]+'%'};return _0x55428a;}})});}_0x15f8f5=_[_0x375e('0x39')]({},_0x15f8f5,_0x2661cd['options']);var _0x1772a9={'where':_0x15f8f5[_0x375e('0x37')]};return db[_0x375e('0x28')]['count'](_0x1772a9)[_0x375e('0x21')](function(_0x25ae0d){_0x399ed[_0x375e('0x1d')]=_0x25ae0d;if(_0x2661cd[_0x375e('0x2e')][_0x375e('0x3a')]){_0x15f8f5[_0x375e('0x3b')]=[{'all':!![]}];}return db[_0x375e('0x28')][_0x375e('0x3c')](_0x15f8f5);})[_0x375e('0x21')](function(_0x573397){_0x399ed[_0x375e('0x3d')]=_0x573397;return _0x399ed;})[_0x375e('0x21')](respondWithFilteredResult(_0x460675,_0x15f8f5))[_0x375e('0x3e')](handleError(_0x460675,null));};exports[_0x375e('0x3f')]=function(_0x1b0409,_0x2ae9ab){var _0x449fad={'raw':![],'where':{'id':_0x1b0409[_0x375e('0x40')]['id']}},_0x1dcefc={};_0x1dcefc[_0x375e('0x2b')]=_[_0x375e('0x2f')](db['ScreenRecording'][_0x375e('0x29')]);_0x1dcefc[_0x375e('0x2e')]=_['keys'](_0x1b0409[_0x375e('0x2e')]);_0x1dcefc['filters']=_['intersection'](_0x1dcefc[_0x375e('0x2b')],_0x1dcefc['query']);_0x449fad[_0x375e('0x31')]=_[_0x375e('0x30')](_0x1dcefc[_0x375e('0x2b')],qs[_0x375e('0x32')](_0x1b0409[_0x375e('0x2e')][_0x375e('0x32')]));_0x449fad[_0x375e('0x31')]=_0x449fad[_0x375e('0x31')]['length']?_0x449fad[_0x375e('0x31')]:_0x1dcefc['model'];if(_0x1b0409[_0x375e('0x2e')][_0x375e('0x3a')]){_0x449fad[_0x375e('0x3b')]=[{'all':!![]}];}_0x449fad=_[_0x375e('0x39')]({},_0x449fad,_0x1b0409['options']);return db[_0x375e('0x28')]['find'](_0x449fad)['then'](handleEntityNotFound(_0x2ae9ab,null))[_0x375e('0x21')](respondWithResult(_0x2ae9ab,null))[_0x375e('0x3e')](handleError(_0x2ae9ab,null));};exports[_0x375e('0x41')]=function(_0x1d99ae,_0x190e3e){return db[_0x375e('0x28')][_0x375e('0x41')](_0x1d99ae[_0x375e('0x42')],{})['then'](respondWithResult(_0x190e3e,0xc9))[_0x375e('0x3e')](handleError(_0x190e3e,null));};exports[_0x375e('0x43')]=function(_0x5b03e3,_0x3dae59){if(_0x5b03e3['body']['id']){delete _0x5b03e3['body']['id'];}delete _0x5b03e3['body'][_0x375e('0x44')];delete _0x5b03e3['body']['createdAt'];delete _0x5b03e3[_0x375e('0x42')][_0x375e('0x45')];delete _0x5b03e3[_0x375e('0x42')]['value'];return db[_0x375e('0x28')][_0x375e('0x46')]({'where':{'id':_0x5b03e3[_0x375e('0x40')]['id']}})[_0x375e('0x21')](handleEntityNotFound(_0x3dae59,null))[_0x375e('0x21')](saveUpdates(_0x5b03e3[_0x375e('0x42')],null))[_0x375e('0x21')](respondWithResult(_0x3dae59,null))['catch'](handleError(_0x3dae59,null));};exports[_0x375e('0x47')]=function(_0x2a4c44,_0xac37de){return db[_0x375e('0x28')][_0x375e('0x47')]()['then'](respondWithResult(_0xac37de,null))[_0x375e('0x3e')](handleError(_0xac37de,null));};exports[_0x375e('0x48')]=function(_0x4a0881,_0x550f2a,_0xaf1ce){var _0x48ffeb=require(_0x375e('0x49'));var _0x4ef66d=![];var _0x23418d={};if(_0x4a0881[_0x375e('0x2e')][_0x375e('0x2a')]&&_0x4a0881['query'][_0x375e('0x2a')]===_0x375e('0x4a')){_0x23418d[_0x375e('0x4a')]=_0x4a0881[_0x375e('0x40')]['id'];}else{_0x23418d['id']=_0x4a0881['params']['id'];}return db[_0x375e('0x28')][_0x375e('0x46')]({'where':_0x23418d,'attributes':['id',_0x375e('0x4b')],'raw':!![]})[_0x375e('0x21')](handleEntityNotFound(_0x550f2a,null))[_0x375e('0x21')](function(_0x22b566){if(_0x22b566){var _0x147d1f=path[_0x375e('0x4c')](config[_0x375e('0x4d')],_0x375e('0x4e'),_0x22b566[_0x375e('0x4b')]);var _0x37f71c=util[_0x375e('0x2d')](_0x375e('0x4f'),_0x147d1f);if(fs[_0x375e('0x50')](_0x37f71c)){_0x4ef66d=!![];return _0x48ffeb[_0x375e('0x51')](_0x37f71c,_0x147d1f,config['secrets'][_0x375e('0x52')])['then'](function(){return _0x22b566;});}return _0x22b566;}})[_0x375e('0x21')](function(_0x2a2447){if(_0x2a2447){var _0x13a436=path[_0x375e('0x4c')](config['root'],_0x375e('0x4e'),_0x2a2447['value']);if(!fs['existsSync'](_0x13a436)){throw new db[(_0x375e('0x53'))][(_0x375e('0x54'))]('ScreenRecording\x20not\x20found');}if(_0x2a2447[_0x375e('0x55')]){return _0x550f2a[_0x375e('0x48')](_0x13a436,_0x2a2447['filename']+path[_0x375e('0x56')](_0x13a436),function(){if(_0x4ef66d){fs[_0x375e('0x57')](_0x13a436);}});}else{return _0x550f2a['download'](_0x13a436,function(_0x3fc4dc){if(_0x4ef66d){fs[_0x375e('0x57')](_0x13a436);}});}}})[_0x375e('0x3e')](function(_0x56af82){if(_0x56af82[_0x375e('0x58')]===_0x375e('0x59')){_0x550f2a[_0x375e('0x18')](0x194)[_0x375e('0x25')](_0x375e('0x5a'));}else{return handleError(_0x550f2a,null);}});};exports[_0x375e('0x20')]=function(_0x59172c,_0x273e9d){return db[_0x375e('0x28')]['find']({'where':{'id':_0x59172c[_0x375e('0x40')]['id']}})['then'](function(_0x3812a0){if(!_0x3812a0)throw new ReferenceError(_0x375e('0x5b'));return _0x3812a0;})[_0x375e('0x21')](function(_0x23001f){var _0x5609ae=path['join'](config['root'],_0x375e('0x4e'),_0x23001f[_0x375e('0x4b')]);logger[_0x375e('0x5c')](_0x375e('0x5d'),_0x5609ae);if(!_[_0x375e('0x5e')](_0x23001f['value'])&&fs[_0x375e('0x50')](_0x5609ae)){logger['info']('File:\x20\x22'+_0x5609ae+_0x375e('0x5f'));fs[_0x375e('0x60')](_0x5609ae);}_0x5609ae=_0x5609ae+_0x375e('0x61');if(!_['isNil'](_0x23001f[_0x375e('0x4b')])&&fs[_0x375e('0x50')](_0x5609ae)){logger[_0x375e('0x5c')](_0x375e('0x62')+_0x5609ae+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x5609ae);}return _0x23001f;})[_0x375e('0x21')](function(_0x22eeaf){if(!_0x22eeaf)throw new InternalError();return _0x22eeaf['destroy']();})[_0x375e('0x21')](function(){_0x273e9d[_0x375e('0x18')](0xcc)[_0x375e('0x19')]();})[_0x375e('0x3e')](handleError(_0x273e9d,null));};