34baf4bea9f2b238b0394fbaa8c6ed609eb956d9
[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 _0xd561=['join','root','server/files/screen_recordings','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','isNil','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','info','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','render','merge','body','message','agent','account','index','map','ScreenRecording','rawAttributes','fieldName','type','key','differenceBy','format','query','keys','filters','intersection','model','attributes','fields','length','nolimit','sort','pick','filter','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','duration','closedAt','value','describe','download','uniqueid'];(function(_0x4f3120,_0x55e9b0){var _0x2aca19=function(_0x10d11b){while(--_0x10d11b){_0x4f3120['push'](_0x4f3120['shift']());}};_0x2aca19(++_0x55e9b0);}(_0xd561,0x1c9));var _0x1d56=function(_0x91922a,_0x2fcff6){_0x91922a=_0x91922a-0x0;var _0x46a4b0=_0xd561[_0x91922a];return _0x46a4b0;};'use strict';var emlformat=require(_0x1d56('0x0'));var rimraf=require(_0x1d56('0x1'));var zipdir=require(_0x1d56('0x2'));var jsonpatch=require(_0x1d56('0x3'));var rp=require(_0x1d56('0x4'));var moment=require(_0x1d56('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x1d56('0x6'));var util=require(_0x1d56('0x7'));var path=require(_0x1d56('0x8'));var sox=require(_0x1d56('0x9'));var csv=require(_0x1d56('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1d56('0xb'));var _=require(_0x1d56('0xc'));var squel=require(_0x1d56('0xd'));var crypto=require(_0x1d56('0xe'));var jsforce=require(_0x1d56('0xf'));var deskjs=require(_0x1d56('0x10'));var toCsv=require(_0x1d56('0xa'));var querystring=require(_0x1d56('0x11'));var Papa=require(_0x1d56('0x12'));var Redis=require(_0x1d56('0x13'));var authService=require(_0x1d56('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1d56('0x15'));var logger=require('../../config/logger')(_0x1d56('0x16'));var utils=require(_0x1d56('0x17'));var config=require(_0x1d56('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x1d56('0x19'))['db'];function respondWithStatusCode(_0x4115d3,_0x3f6995){_0x3f6995=_0x3f6995||0xcc;return function(_0x3a901a){if(_0x3a901a){return _0x4115d3[_0x1d56('0x1a')](_0x3f6995);}return _0x4115d3[_0x1d56('0x1b')](_0x3f6995)[_0x1d56('0x1c')]();};}function respondWithResult(_0x5459e7,_0x2bdb57){_0x2bdb57=_0x2bdb57||0xc8;return function(_0x2326a0){if(_0x2326a0){return _0x5459e7[_0x1d56('0x1b')](_0x2bdb57)[_0x1d56('0x1d')](_0x2326a0);}};}function respondWithFilteredResult(_0x3ca414,_0x44df86){return function(_0x3dc679){if(_0x3dc679){var _0x2b7a00=typeof _0x44df86[_0x1d56('0x1e')]===_0x1d56('0x1f')&&typeof _0x44df86[_0x1d56('0x20')]===_0x1d56('0x1f');var _0x31b07d=_0x3dc679[_0x1d56('0x21')];var _0x4dbd1d=_0x2b7a00?0x0:_0x44df86[_0x1d56('0x1e')];var _0x1658c1=_0x2b7a00?_0x3dc679[_0x1d56('0x21')]:_0x44df86['offset']+_0x44df86[_0x1d56('0x20')];var _0x14d3f4;if(_0x1658c1>=_0x31b07d){_0x1658c1=_0x31b07d;_0x14d3f4=0xc8;}else{_0x14d3f4=0xce;}_0x3ca414[_0x1d56('0x1b')](_0x14d3f4);return _0x3ca414[_0x1d56('0x22')](_0x1d56('0x23'),_0x4dbd1d+'-'+_0x1658c1+'/'+_0x31b07d)['json'](_0x3dc679);}return null;};}function patchUpdates(_0x26110e){return function(_0x87bd36){try{jsonpatch[_0x1d56('0x24')](_0x87bd36,_0x26110e,!![]);}catch(_0x55bcd5){return BPromise['reject'](_0x55bcd5);}return _0x87bd36[_0x1d56('0x25')]();};}function saveUpdates(_0x52fa2f,_0x25206f){return function(_0x3246fe){if(_0x3246fe){return _0x3246fe[_0x1d56('0x26')](_0x52fa2f)[_0x1d56('0x27')](function(_0x299074){return _0x299074;});}return null;};}function removeEntity(_0x48d4d3,_0xc37c07){return function(_0x52f255){if(_0x52f255){return _0x52f255[_0x1d56('0x28')]()[_0x1d56('0x27')](function(){_0x48d4d3[_0x1d56('0x1b')](0xcc)[_0x1d56('0x1c')]();});}};}function handleEntityNotFound(_0x398ea9,_0x7c937d){return function(_0x212a8c){if(!_0x212a8c){_0x398ea9[_0x1d56('0x1a')](0x194);}return _0x212a8c;};}function handleError(_0x2dfd5c,_0x4d3209){_0x4d3209=_0x4d3209||0x1f4;return function(_0x434bce){logger['error'](_0x434bce[_0x1d56('0x29')]);if(_0x434bce[_0x1d56('0x2a')]){delete _0x434bce[_0x1d56('0x2a')];}_0x2dfd5c[_0x1d56('0x1b')](_0x4d3209)[_0x1d56('0x2b')](_0x434bce);};}function getMustacheRender(_0x44abdf,_0x42e71e){return Mustache[_0x1d56('0x2c')](_0x44abdf,_[_0x1d56('0x2d')](_0x42e71e[_0x1d56('0x2e')],{'contact':_0x42e71e['contact'],'message':_0x42e71e[_0x1d56('0x2f')],'agent':_0x42e71e[_0x1d56('0x30')],'interaction':_0x42e71e['interaction'],'account':_0x42e71e[_0x1d56('0x31')]}))||'';}exports[_0x1d56('0x32')]=function(_0x49f65d,_0x571966){var _0x9c6c9={},_0x4dcfdd={},_0x185815={'count':0x0,'rows':[]};var _0x22a73b=_[_0x1d56('0x33')](db[_0x1d56('0x34')][_0x1d56('0x35')],function(_0x73833f){return{'name':_0x73833f[_0x1d56('0x36')],'type':_0x73833f[_0x1d56('0x37')][_0x1d56('0x38')]};});_0x4dcfdd['model']=_[_0x1d56('0x39')](_['map'](_0x22a73b,_0x1d56('0x2a')),[_0x1d56('0x3a')]);_0x4dcfdd[_0x1d56('0x3b')]=_[_0x1d56('0x3c')](_0x49f65d[_0x1d56('0x3b')]);_0x4dcfdd[_0x1d56('0x3d')]=_[_0x1d56('0x3e')](_0x4dcfdd[_0x1d56('0x3f')],_0x4dcfdd[_0x1d56('0x3b')]);_0x9c6c9[_0x1d56('0x40')]=_[_0x1d56('0x3e')](_0x4dcfdd[_0x1d56('0x3f')],qs[_0x1d56('0x41')](_0x49f65d['query']['fields']));_0x9c6c9['attributes']=_0x9c6c9['attributes'][_0x1d56('0x42')]?_0x9c6c9[_0x1d56('0x40')]:_0x4dcfdd[_0x1d56('0x3f')];if(!_0x49f65d[_0x1d56('0x3b')]['hasOwnProperty'](_0x1d56('0x43'))){_0x9c6c9['limit']=qs[_0x1d56('0x20')](_0x49f65d[_0x1d56('0x3b')]['limit']);_0x9c6c9[_0x1d56('0x1e')]=qs[_0x1d56('0x1e')](_0x49f65d['query'][_0x1d56('0x1e')]);}_0x9c6c9['order']=qs[_0x1d56('0x44')](_0x49f65d[_0x1d56('0x3b')][_0x1d56('0x44')]);_0x9c6c9['where']=qs[_0x1d56('0x3d')](_[_0x1d56('0x45')](_0x49f65d[_0x1d56('0x3b')],_0x4dcfdd[_0x1d56('0x3d')]),_0x22a73b);if(_0x49f65d[_0x1d56('0x3b')][_0x1d56('0x46')]){_0x9c6c9[_0x1d56('0x47')]=_['merge'](_0x9c6c9[_0x1d56('0x47')],{'$or':_['map'](_0x22a73b,function(_0x4e87c5){if(_0x4e87c5[_0x1d56('0x37')]!==_0x1d56('0x48')){var _0x3bbff8={};_0x3bbff8[_0x4e87c5[_0x1d56('0x2a')]]={'$like':'%'+_0x49f65d[_0x1d56('0x3b')][_0x1d56('0x46')]+'%'};return _0x3bbff8;}})});}_0x9c6c9=_[_0x1d56('0x2d')]({},_0x9c6c9,_0x49f65d[_0x1d56('0x49')]);var _0x2ea581={'where':_0x9c6c9['where']};return db[_0x1d56('0x34')][_0x1d56('0x21')](_0x2ea581)[_0x1d56('0x27')](function(_0x4a9397){_0x185815[_0x1d56('0x21')]=_0x4a9397;if(_0x49f65d[_0x1d56('0x3b')][_0x1d56('0x4a')]){_0x9c6c9[_0x1d56('0x4b')]=[{'all':!![]}];}return db[_0x1d56('0x34')][_0x1d56('0x4c')](_0x9c6c9);})[_0x1d56('0x27')](function(_0xc92469){_0x185815[_0x1d56('0x4d')]=_0xc92469;return _0x185815;})[_0x1d56('0x27')](respondWithFilteredResult(_0x571966,_0x9c6c9))[_0x1d56('0x4e')](handleError(_0x571966,null));};exports['show']=function(_0x1cbc42,_0x2ae142){var _0x504a34={'raw':![],'where':{'id':_0x1cbc42[_0x1d56('0x4f')]['id']}},_0x2282af={};_0x2282af[_0x1d56('0x3f')]=_[_0x1d56('0x3c')](db[_0x1d56('0x34')][_0x1d56('0x35')]);_0x2282af[_0x1d56('0x3b')]=_[_0x1d56('0x3c')](_0x1cbc42[_0x1d56('0x3b')]);_0x2282af[_0x1d56('0x3d')]=_['intersection'](_0x2282af['model'],_0x2282af[_0x1d56('0x3b')]);_0x504a34[_0x1d56('0x40')]=_[_0x1d56('0x3e')](_0x2282af[_0x1d56('0x3f')],qs['fields'](_0x1cbc42[_0x1d56('0x3b')][_0x1d56('0x41')]));_0x504a34['attributes']=_0x504a34['attributes']['length']?_0x504a34[_0x1d56('0x40')]:_0x2282af[_0x1d56('0x3f')];if(_0x1cbc42[_0x1d56('0x3b')][_0x1d56('0x4a')]){_0x504a34['include']=[{'all':!![]}];}_0x504a34=_[_0x1d56('0x2d')]({},_0x504a34,_0x1cbc42['options']);return db[_0x1d56('0x34')][_0x1d56('0x50')](_0x504a34)[_0x1d56('0x27')](handleEntityNotFound(_0x2ae142,null))[_0x1d56('0x27')](respondWithResult(_0x2ae142,null))[_0x1d56('0x4e')](handleError(_0x2ae142,null));};exports[_0x1d56('0x51')]=function(_0x2cc803,_0x22c7f9){return db[_0x1d56('0x34')][_0x1d56('0x51')](_0x2cc803[_0x1d56('0x2e')],{})['then'](respondWithResult(_0x22c7f9,0xc9))[_0x1d56('0x4e')](handleError(_0x22c7f9,null));};exports['update']=function(_0x470d65,_0x3d42d3){if(_0x470d65['body']['id']){delete _0x470d65[_0x1d56('0x2e')]['id'];}delete _0x470d65[_0x1d56('0x2e')][_0x1d56('0x52')];delete _0x470d65[_0x1d56('0x2e')]['createdAt'];delete _0x470d65[_0x1d56('0x2e')][_0x1d56('0x53')];delete _0x470d65[_0x1d56('0x2e')][_0x1d56('0x54')];return db[_0x1d56('0x34')][_0x1d56('0x50')]({'where':{'id':_0x470d65[_0x1d56('0x4f')]['id']}})[_0x1d56('0x27')](handleEntityNotFound(_0x3d42d3,null))[_0x1d56('0x27')](saveUpdates(_0x470d65['body'],null))[_0x1d56('0x27')](respondWithResult(_0x3d42d3,null))[_0x1d56('0x4e')](handleError(_0x3d42d3,null));};exports[_0x1d56('0x55')]=function(_0x210fd2,_0x2a4bdb){return db[_0x1d56('0x34')]['describe']()[_0x1d56('0x27')](respondWithResult(_0x2a4bdb,null))[_0x1d56('0x4e')](handleError(_0x2a4bdb,null));};exports[_0x1d56('0x56')]=function(_0x191f64,_0x1ace0c,_0x55e3d1){var _0x7704eb=require('../../components/encryptor');var _0x5c3cf9=![];var _0xdbeb6b={};if(_0x191f64[_0x1d56('0x3b')][_0x1d56('0x37')]&&_0x191f64['query'][_0x1d56('0x37')]===_0x1d56('0x57')){_0xdbeb6b[_0x1d56('0x57')]=_0x191f64['params']['id'];}else{_0xdbeb6b['id']=_0x191f64[_0x1d56('0x4f')]['id'];}return db[_0x1d56('0x34')][_0x1d56('0x50')]({'where':_0xdbeb6b,'attributes':['id','value'],'raw':!![]})[_0x1d56('0x27')](handleEntityNotFound(_0x1ace0c,null))['then'](function(_0x2c514f){if(_0x2c514f){var _0x3287e2=path[_0x1d56('0x58')](config[_0x1d56('0x59')],_0x1d56('0x5a'),_0x2c514f[_0x1d56('0x54')]);var _0x432018=util[_0x1d56('0x3a')](_0x1d56('0x5b'),_0x3287e2);if(fs[_0x1d56('0x5c')](_0x432018)){_0x5c3cf9=!![];return _0x7704eb[_0x1d56('0x5d')](_0x432018,_0x3287e2,config[_0x1d56('0x5e')][_0x1d56('0x5f')])[_0x1d56('0x27')](function(){return _0x2c514f;});}return _0x2c514f;}})[_0x1d56('0x27')](function(_0xa5117c){if(_0xa5117c){var _0x3b8e30=path[_0x1d56('0x58')](config[_0x1d56('0x59')],_0x1d56('0x5a'),_0xa5117c[_0x1d56('0x54')]);if(!fs[_0x1d56('0x5c')](_0x3b8e30)){throw new db[(_0x1d56('0x60'))][(_0x1d56('0x61'))](_0x1d56('0x62'));}if(_0xa5117c['filename']){return _0x1ace0c[_0x1d56('0x56')](_0x3b8e30,_0xa5117c[_0x1d56('0x63')]+path[_0x1d56('0x64')](_0x3b8e30),function(){if(_0x5c3cf9){fs[_0x1d56('0x65')](_0x3b8e30);}});}else{return _0x1ace0c[_0x1d56('0x56')](_0x3b8e30,function(_0x475df5){if(_0x5c3cf9){fs['unlink'](_0x3b8e30);}});}}})[_0x1d56('0x4e')](function(_0x20b1cb){if(_0x20b1cb['message']===_0x1d56('0x62')){_0x1ace0c[_0x1d56('0x1b')](0x194)[_0x1d56('0x2b')]('Not\x20found');}else{return handleError(_0x1ace0c,null);}});};exports[_0x1d56('0x28')]=function(_0x298a20,_0x51332c){return db[_0x1d56('0x34')][_0x1d56('0x50')]({'where':{'id':_0x298a20[_0x1d56('0x4f')]['id']}})['then'](function(_0x2a03ef){if(_[_0x1d56('0x66')](_0x2a03ef)){throw new ReferenceError(_0x1d56('0x67'));}return _0x2a03ef;})['then'](function(_0x57bb29){var _0x40a02d=path[_0x1d56('0x58')](config[_0x1d56('0x59')],_0x1d56('0x5a'),_0x57bb29[_0x1d56('0x54')]);logger['info'](_0x1d56('0x68'),_0x40a02d);if(!_[_0x1d56('0x66')](_0x57bb29[_0x1d56('0x54')])&&fs['existsSync'](_0x40a02d)){logger['info'](_0x1d56('0x69')+_0x40a02d+_0x1d56('0x6a'));fs[_0x1d56('0x6b')](_0x40a02d);}_0x40a02d=_0x40a02d+'.cypher';if(!_[_0x1d56('0x66')](_0x57bb29[_0x1d56('0x54')])&&fs[_0x1d56('0x5c')](_0x40a02d)){logger[_0x1d56('0x6c')](_0x1d56('0x69')+_0x40a02d+_0x1d56('0x6a'));fs[_0x1d56('0x6b')](_0x40a02d);}return _0x57bb29;})[_0x1d56('0x27')](function(_0x424bfe){if(!_0x424bfe)throw new InternalError();return _0x424bfe[_0x1d56('0x28')]();})[_0x1d56('0x27')](function(){_0x51332c[_0x1d56('0x1b')](0xcc)['end']();})[_0x1d56('0x4e')](handleError(_0x51332c,null));};