e45f418a572e8bd26a4a6f26f3ece87404230343
[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 _0xead5=['sendStatus','error','name','send','index','map','ScreenRecording','rawAttributes','fieldName','type','model','differenceBy','format','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','pick','filter','VIRTUAL','options','where','include','findAll','rows','show','params','length','includeAll','merge','find','catch','create','body','duration','createdAt','closedAt','value','describe','download','../../components/encryptor','uniqueid','root','%s.cypher','existsSync','decryptFile','secrets','recording','server/files/screen_recordings','filename','extname','unlink','message','Not\x20found','destroy','Entity\x20not\x20found','join','info','cancellazione\x20fisica\x20documento\x20%s','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','isNil','File:\x20\x22','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','count','offset','Content-Range','apply','reject','update','then'];(function(_0x17577a,_0x17f8aa){var _0x3b2f5f=function(_0x3e1471){while(--_0x3e1471){_0x17577a['push'](_0x17577a['shift']());}};_0x3b2f5f(++_0x17f8aa);}(_0xead5,0xaf));var _0x5ead=function(_0x458363,_0x1675db){_0x458363=_0x458363-0x0;var _0x4d0290=_0xead5[_0x458363];return _0x4d0290;};'use strict';var pdf=require(_0x5ead('0x0'));var emlformat=require(_0x5ead('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x5ead('0x2'));var jsonpatch=require(_0x5ead('0x3'));var rp=require(_0x5ead('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x5ead('0x5'));var util=require(_0x5ead('0x6'));var path=require('path');var sox=require(_0x5ead('0x7'));var csv=require(_0x5ead('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x5ead('0x9'));var squel=require(_0x5ead('0xa'));var crypto=require(_0x5ead('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x5ead('0xc'));var toCsv=require(_0x5ead('0x8'));var querystring=require(_0x5ead('0xd'));var Papa=require(_0x5ead('0xe'));var Redis=require(_0x5ead('0xf'));var authService=require(_0x5ead('0x10'));var qs=require(_0x5ead('0x11'));var as=require(_0x5ead('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x5ead('0x13'));var utils=require(_0x5ead('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x5ead('0x15'));var db=require(_0x5ead('0x16'))['db'];function respondWithStatusCode(_0x6fb414,_0x38921f){_0x38921f=_0x38921f||0xcc;return function(_0x5947f8){if(_0x5947f8){return _0x6fb414['sendStatus'](_0x38921f);}return _0x6fb414[_0x5ead('0x17')](_0x38921f)[_0x5ead('0x18')]();};}function respondWithResult(_0x1aa4a4,_0x3d57bb){_0x3d57bb=_0x3d57bb||0xc8;return function(_0x59af0e){if(_0x59af0e){return _0x1aa4a4[_0x5ead('0x17')](_0x3d57bb)[_0x5ead('0x19')](_0x59af0e);}};}function respondWithFilteredResult(_0x1523ae,_0x4dd9a2){return function(_0x3b81fd){if(_0x3b81fd){var _0x4bc1bd=_0x3b81fd[_0x5ead('0x1a')],_0x482a62=_0x4dd9a2['offset'],_0x1e5440=_0x4dd9a2[_0x5ead('0x1b')]+_0x4dd9a2['limit'],_0x349c2b;if(_0x1e5440>=_0x4bc1bd){_0x1e5440=_0x4bc1bd;_0x349c2b=0xc8;}else{_0x349c2b=0xce;}_0x1523ae[_0x5ead('0x17')](_0x349c2b);return _0x1523ae['set'](_0x5ead('0x1c'),_0x482a62+'-'+_0x1e5440+'/'+_0x4bc1bd)[_0x5ead('0x19')](_0x3b81fd);}return null;};}function patchUpdates(_0x3a9204){return function(_0x1c139b){try{jsonpatch[_0x5ead('0x1d')](_0x1c139b,_0x3a9204,!![]);}catch(_0x22f3b9){return BPromise[_0x5ead('0x1e')](_0x22f3b9);}return _0x1c139b['save']();};}function saveUpdates(_0x543c38,_0x2784ca){return function(_0x553be4){if(_0x553be4){return _0x553be4[_0x5ead('0x1f')](_0x543c38)[_0x5ead('0x20')](function(_0x390399){return _0x390399;});}return null;};}function removeEntity(_0x4fe4e5,_0x4b21da){return function(_0x3593e7){if(_0x3593e7){return _0x3593e7['destroy']()[_0x5ead('0x20')](function(){_0x4fe4e5[_0x5ead('0x17')](0xcc)[_0x5ead('0x18')]();});}};}function handleEntityNotFound(_0x386187,_0x23da59){return function(_0x2513dc){if(!_0x2513dc){_0x386187[_0x5ead('0x21')](0x194);}return _0x2513dc;};}function handleError(_0x4cefcd,_0x204c3d){_0x204c3d=_0x204c3d||0x1f4;return function(_0x2aef36){logger[_0x5ead('0x22')](_0x2aef36['stack']);if(_0x2aef36[_0x5ead('0x23')]){delete _0x2aef36[_0x5ead('0x23')];}_0x4cefcd['status'](_0x204c3d)[_0x5ead('0x24')](_0x2aef36);};}exports[_0x5ead('0x25')]=function(_0x5e1ab1,_0x817062){var _0x803251={},_0x5675ed={},_0x36a445={'count':0x0,'rows':[]};var _0x356c32=_[_0x5ead('0x26')](db[_0x5ead('0x27')][_0x5ead('0x28')],function(_0x4d990a){return{'name':_0x4d990a[_0x5ead('0x29')],'type':_0x4d990a[_0x5ead('0x2a')]['key']};});_0x5675ed[_0x5ead('0x2b')]=_[_0x5ead('0x2c')](_[_0x5ead('0x26')](_0x356c32,'name'),[_0x5ead('0x2d')]);_0x5675ed[_0x5ead('0x2e')]=_[_0x5ead('0x2f')](_0x5e1ab1[_0x5ead('0x2e')]);_0x5675ed[_0x5ead('0x30')]=_[_0x5ead('0x31')](_0x5675ed['model'],_0x5675ed[_0x5ead('0x2e')]);_0x803251[_0x5ead('0x32')]=_[_0x5ead('0x31')](_0x5675ed[_0x5ead('0x2b')],qs[_0x5ead('0x33')](_0x5e1ab1[_0x5ead('0x2e')]['fields']));_0x803251[_0x5ead('0x32')]=_0x803251[_0x5ead('0x32')]['length']?_0x803251[_0x5ead('0x32')]:_0x5675ed[_0x5ead('0x2b')];if(!_0x5e1ab1['query'][_0x5ead('0x34')](_0x5ead('0x35'))){_0x803251[_0x5ead('0x36')]=qs[_0x5ead('0x36')](_0x5e1ab1[_0x5ead('0x2e')][_0x5ead('0x36')]);_0x803251['offset']=qs[_0x5ead('0x1b')](_0x5e1ab1[_0x5ead('0x2e')]['offset']);}_0x803251[_0x5ead('0x37')]=qs['sort'](_0x5e1ab1[_0x5ead('0x2e')][_0x5ead('0x38')]);_0x803251['where']=qs[_0x5ead('0x30')](_[_0x5ead('0x39')](_0x5e1ab1[_0x5ead('0x2e')],_0x5675ed[_0x5ead('0x30')]),_0x356c32);if(_0x5e1ab1['query'][_0x5ead('0x3a')]){_0x803251['where']=_['merge'](_0x803251['where'],{'$or':_[_0x5ead('0x26')](_0x356c32,function(_0x2602ac){if(_0x2602ac[_0x5ead('0x2a')]!==_0x5ead('0x3b')){var _0x447373={};_0x447373[_0x2602ac['name']]={'$like':'%'+_0x5e1ab1[_0x5ead('0x2e')]['filter']+'%'};return _0x447373;}})});}_0x803251=_['merge']({},_0x803251,_0x5e1ab1[_0x5ead('0x3c')]);var _0x35bf8e={'where':_0x803251[_0x5ead('0x3d')]};return db[_0x5ead('0x27')][_0x5ead('0x1a')](_0x35bf8e)[_0x5ead('0x20')](function(_0xb37b41){_0x36a445[_0x5ead('0x1a')]=_0xb37b41;if(_0x5e1ab1['query']['includeAll']){_0x803251[_0x5ead('0x3e')]=[{'all':!![]}];}return db[_0x5ead('0x27')][_0x5ead('0x3f')](_0x803251);})['then'](function(_0x6b02e0){_0x36a445[_0x5ead('0x40')]=_0x6b02e0;return _0x36a445;})[_0x5ead('0x20')](respondWithFilteredResult(_0x817062,_0x803251))['catch'](handleError(_0x817062,null));};exports[_0x5ead('0x41')]=function(_0x4b7b20,_0xaeec7c){var _0x53498a={'raw':![],'where':{'id':_0x4b7b20[_0x5ead('0x42')]['id']}},_0x9c4055={};_0x9c4055[_0x5ead('0x2b')]=_[_0x5ead('0x2f')](db[_0x5ead('0x27')]['rawAttributes']);_0x9c4055['query']=_[_0x5ead('0x2f')](_0x4b7b20['query']);_0x9c4055[_0x5ead('0x30')]=_['intersection'](_0x9c4055[_0x5ead('0x2b')],_0x9c4055['query']);_0x53498a[_0x5ead('0x32')]=_[_0x5ead('0x31')](_0x9c4055[_0x5ead('0x2b')],qs[_0x5ead('0x33')](_0x4b7b20[_0x5ead('0x2e')][_0x5ead('0x33')]));_0x53498a[_0x5ead('0x32')]=_0x53498a[_0x5ead('0x32')][_0x5ead('0x43')]?_0x53498a[_0x5ead('0x32')]:_0x9c4055['model'];if(_0x4b7b20[_0x5ead('0x2e')][_0x5ead('0x44')]){_0x53498a[_0x5ead('0x3e')]=[{'all':!![]}];}_0x53498a=_[_0x5ead('0x45')]({},_0x53498a,_0x4b7b20[_0x5ead('0x3c')]);return db['ScreenRecording'][_0x5ead('0x46')](_0x53498a)[_0x5ead('0x20')](handleEntityNotFound(_0xaeec7c,null))[_0x5ead('0x20')](respondWithResult(_0xaeec7c,null))[_0x5ead('0x47')](handleError(_0xaeec7c,null));};exports['create']=function(_0xe8aab8,_0x29005d){return db[_0x5ead('0x27')][_0x5ead('0x48')](_0xe8aab8[_0x5ead('0x49')],{})[_0x5ead('0x20')](respondWithResult(_0x29005d,0xc9))[_0x5ead('0x47')](handleError(_0x29005d,null));};exports['update']=function(_0x3636fc,_0x146426){if(_0x3636fc['body']['id']){delete _0x3636fc['body']['id'];}delete _0x3636fc['body'][_0x5ead('0x4a')];delete _0x3636fc[_0x5ead('0x49')][_0x5ead('0x4b')];delete _0x3636fc['body'][_0x5ead('0x4c')];delete _0x3636fc[_0x5ead('0x49')][_0x5ead('0x4d')];return db['ScreenRecording'][_0x5ead('0x46')]({'where':{'id':_0x3636fc[_0x5ead('0x42')]['id']}})[_0x5ead('0x20')](handleEntityNotFound(_0x146426,null))['then'](saveUpdates(_0x3636fc['body'],null))[_0x5ead('0x20')](respondWithResult(_0x146426,null))[_0x5ead('0x47')](handleError(_0x146426,null));};exports[_0x5ead('0x4e')]=function(_0x18c27d,_0x3fd84a){return db[_0x5ead('0x27')][_0x5ead('0x4e')]()['then'](respondWithResult(_0x3fd84a,null))['catch'](handleError(_0x3fd84a,null));};exports[_0x5ead('0x4f')]=function(_0x3a5784,_0x4c6e49,_0x597195){var _0xfa2514=require(_0x5ead('0x50'));var _0x2a3a31=![];var _0x1ec41e={};if(_0x3a5784['query']['type']&&_0x3a5784['query'][_0x5ead('0x2a')]===_0x5ead('0x51')){_0x1ec41e[_0x5ead('0x51')]=_0x3a5784[_0x5ead('0x42')]['id'];}else{_0x1ec41e['id']=_0x3a5784[_0x5ead('0x42')]['id'];}return db['ScreenRecording']['find']({'where':_0x1ec41e,'attributes':['id',_0x5ead('0x4d')],'raw':!![]})[_0x5ead('0x20')](handleEntityNotFound(_0x4c6e49,null))[_0x5ead('0x20')](function(_0x5466e6){if(_0x5466e6){var _0x36884=path['join'](config[_0x5ead('0x52')],'server/files/screen_recordings',_0x5466e6[_0x5ead('0x4d')]);var _0x34b882=util[_0x5ead('0x2d')](_0x5ead('0x53'),_0x36884);if(fs[_0x5ead('0x54')](_0x34b882)){_0x2a3a31=!![];return _0xfa2514[_0x5ead('0x55')](_0x34b882,_0x36884,config[_0x5ead('0x56')][_0x5ead('0x57')])['then'](function(){return _0x5466e6;});}return _0x5466e6;}})[_0x5ead('0x20')](function(_0x227993){if(_0x227993){var _0x19f49a=path['join'](config[_0x5ead('0x52')],_0x5ead('0x58'),_0x227993[_0x5ead('0x4d')]);if(!fs['existsSync'](_0x19f49a)){throw new db['Sequelize']['ValidationError']('ScreenRecording\x20not\x20found');}if(_0x227993[_0x5ead('0x59')]){return _0x4c6e49[_0x5ead('0x4f')](_0x19f49a,_0x227993[_0x5ead('0x59')]+path[_0x5ead('0x5a')](_0x19f49a),function(){if(_0x2a3a31){fs[_0x5ead('0x5b')](_0x19f49a);}});}else{return _0x4c6e49[_0x5ead('0x4f')](_0x19f49a,function(_0x314e2f){if(_0x2a3a31){fs[_0x5ead('0x5b')](_0x19f49a);}});}}})[_0x5ead('0x47')](function(_0x1aa767){if(_0x1aa767[_0x5ead('0x5c')]==='ScreenRecording\x20not\x20found'){_0x4c6e49['status'](0x194)['send'](_0x5ead('0x5d'));}else{return handleError(_0x4c6e49,null);}});};exports[_0x5ead('0x5e')]=function(_0x13d083,_0x1e3137){return db[_0x5ead('0x27')][_0x5ead('0x46')]({'where':{'id':_0x13d083[_0x5ead('0x42')]['id']}})[_0x5ead('0x20')](function(_0x72591b){if(!_0x72591b)throw new ReferenceError(_0x5ead('0x5f'));return _0x72591b;})['then'](function(_0x141690){var _0x59cd60=path[_0x5ead('0x60')](config['root'],'server/files/screen_recordings',_0x141690[_0x5ead('0x4d')]);logger[_0x5ead('0x61')](_0x5ead('0x62'),_0x59cd60);if(!_['isNil'](_0x141690['value'])&&fs[_0x5ead('0x54')](_0x59cd60)){logger[_0x5ead('0x61')]('File:\x20\x22'+_0x59cd60+_0x5ead('0x63'));fs[_0x5ead('0x64')](_0x59cd60);}_0x59cd60=_0x59cd60+_0x5ead('0x65');if(!_[_0x5ead('0x66')](_0x141690[_0x5ead('0x4d')])&&fs[_0x5ead('0x54')](_0x59cd60)){logger['info'](_0x5ead('0x67')+_0x59cd60+_0x5ead('0x63'));fs[_0x5ead('0x64')](_0x59cd60);}return _0x141690;})[_0x5ead('0x20')](function(_0x31e191){if(!_0x31e191)throw new InternalError();return _0x31e191[_0x5ead('0x5e')]();})[_0x5ead('0x20')](function(){_0x1e3137[_0x5ead('0x17')](0xcc)['end']();})['catch'](handleError(_0x1e3137,null));};