1827bb665bceef7eca7d6f3398c467d5ccdf0349
[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 _0xe946=['request-promise','moment','bluebird','util','sox','to-csv','lodash','squel','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','map','ScreenRecording','rawAttributes','fieldName','type','key','model','differenceBy','query','keys','filters','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','intersection','catch','create','body','duration','createdAt','closedAt','value','params','describe','download','../../components/encryptor','uniqueid','find','join','server/files/screen_recordings','format','existsSync','decryptFile','recording','root','Sequelize','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','isNil','File:\x20\x22','eml-format','rimraf','fast-json-patch'];(function(_0x6287b6,_0x5682e7){var _0x5d6be4=function(_0x3e3975){while(--_0x3e3975){_0x6287b6['push'](_0x6287b6['shift']());}};_0x5d6be4(++_0x5682e7);}(_0xe946,0x18d));var _0x6e94=function(_0x92b9e,_0x242815){_0x92b9e=_0x92b9e-0x0;var _0x542410=_0xe946[_0x92b9e];return _0x542410;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x6e94('0x0'));var rimraf=require(_0x6e94('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6e94('0x2'));var rp=require(_0x6e94('0x3'));var moment=require(_0x6e94('0x4'));var BPromise=require(_0x6e94('0x5'));var Mustache=require('mustache');var util=require(_0x6e94('0x6'));var path=require('path');var sox=require(_0x6e94('0x7'));var csv=require(_0x6e94('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6e94('0x9'));var squel=require(_0x6e94('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6e94('0xb'));var Papa=require(_0x6e94('0xc'));var Redis=require(_0x6e94('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x6e94('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6e94('0xf'))('api');var utils=require(_0x6e94('0x10'));var config=require(_0x6e94('0x11'));var db=require(_0x6e94('0x12'))['db'];function respondWithStatusCode(_0xd75907,_0x16d4c5){_0x16d4c5=_0x16d4c5||0xcc;return function(_0x1286a6){if(_0x1286a6){return _0xd75907[_0x6e94('0x13')](_0x16d4c5);}return _0xd75907[_0x6e94('0x14')](_0x16d4c5)[_0x6e94('0x15')]();};}function respondWithResult(_0x4450fc,_0x3a8bc5){_0x3a8bc5=_0x3a8bc5||0xc8;return function(_0x2155cc){if(_0x2155cc){return _0x4450fc[_0x6e94('0x14')](_0x3a8bc5)[_0x6e94('0x16')](_0x2155cc);}};}function respondWithFilteredResult(_0xcb855d,_0x4e993c){return function(_0x1862f2){if(_0x1862f2){var _0x2b7973=_0x1862f2['count'],_0x3ee6e0=_0x4e993c['offset'],_0x546a1d=_0x4e993c[_0x6e94('0x17')]+_0x4e993c['limit'],_0x4a703a;if(_0x546a1d>=_0x2b7973){_0x546a1d=_0x2b7973;_0x4a703a=0xc8;}else{_0x4a703a=0xce;}_0xcb855d[_0x6e94('0x14')](_0x4a703a);return _0xcb855d[_0x6e94('0x18')](_0x6e94('0x19'),_0x3ee6e0+'-'+_0x546a1d+'/'+_0x2b7973)[_0x6e94('0x16')](_0x1862f2);}return null;};}function patchUpdates(_0x244d7f){return function(_0x1cabd3){try{jsonpatch[_0x6e94('0x1a')](_0x1cabd3,_0x244d7f,!![]);}catch(_0x44faff){return BPromise[_0x6e94('0x1b')](_0x44faff);}return _0x1cabd3[_0x6e94('0x1c')]();};}function saveUpdates(_0x3c2724,_0x2e3f94){return function(_0x3ab1b5){if(_0x3ab1b5){return _0x3ab1b5[_0x6e94('0x1d')](_0x3c2724)[_0x6e94('0x1e')](function(_0x5283ed){return _0x5283ed;});}return null;};}function removeEntity(_0x5f5348,_0x3530e9){return function(_0x5be11a){if(_0x5be11a){return _0x5be11a[_0x6e94('0x1f')]()[_0x6e94('0x1e')](function(){_0x5f5348[_0x6e94('0x14')](0xcc)[_0x6e94('0x15')]();});}};}function handleEntityNotFound(_0x2a399b,_0x406786){return function(_0x218a5d){if(!_0x218a5d){_0x2a399b[_0x6e94('0x13')](0x194);}return _0x218a5d;};}function handleError(_0x1a011e,_0x6ba013){_0x6ba013=_0x6ba013||0x1f4;return function(_0x183f15){logger[_0x6e94('0x20')](_0x183f15['stack']);if(_0x183f15[_0x6e94('0x21')]){delete _0x183f15[_0x6e94('0x21')];}_0x1a011e[_0x6e94('0x14')](_0x6ba013)[_0x6e94('0x22')](_0x183f15);};}exports[_0x6e94('0x23')]=function(_0x4fdc90,_0x69c8a4){var _0x17bf12={},_0x199b35={},_0x17f398={'count':0x0,'rows':[]};var _0x58ece6=_[_0x6e94('0x24')](db[_0x6e94('0x25')][_0x6e94('0x26')],function(_0x1cbde5){return{'name':_0x1cbde5[_0x6e94('0x27')],'type':_0x1cbde5[_0x6e94('0x28')][_0x6e94('0x29')]};});_0x199b35[_0x6e94('0x2a')]=_[_0x6e94('0x2b')](_[_0x6e94('0x24')](_0x58ece6,_0x6e94('0x21')),['format']);_0x199b35[_0x6e94('0x2c')]=_[_0x6e94('0x2d')](_0x4fdc90['query']);_0x199b35[_0x6e94('0x2e')]=_['intersection'](_0x199b35[_0x6e94('0x2a')],_0x199b35[_0x6e94('0x2c')]);_0x17bf12[_0x6e94('0x2f')]=_['intersection'](_0x199b35[_0x6e94('0x2a')],qs[_0x6e94('0x30')](_0x4fdc90['query']['fields']));_0x17bf12[_0x6e94('0x2f')]=_0x17bf12[_0x6e94('0x2f')][_0x6e94('0x31')]?_0x17bf12[_0x6e94('0x2f')]:_0x199b35[_0x6e94('0x2a')];if(!_0x4fdc90[_0x6e94('0x2c')][_0x6e94('0x32')]('nolimit')){_0x17bf12[_0x6e94('0x33')]=qs[_0x6e94('0x33')](_0x4fdc90['query']['limit']);_0x17bf12[_0x6e94('0x17')]=qs[_0x6e94('0x17')](_0x4fdc90[_0x6e94('0x2c')][_0x6e94('0x17')]);}_0x17bf12[_0x6e94('0x34')]=qs[_0x6e94('0x35')](_0x4fdc90[_0x6e94('0x2c')][_0x6e94('0x35')]);_0x17bf12[_0x6e94('0x36')]=qs[_0x6e94('0x2e')](_[_0x6e94('0x37')](_0x4fdc90[_0x6e94('0x2c')],_0x199b35[_0x6e94('0x2e')]),_0x58ece6);if(_0x4fdc90['query'][_0x6e94('0x38')]){_0x17bf12[_0x6e94('0x36')]=_[_0x6e94('0x39')](_0x17bf12[_0x6e94('0x36')],{'$or':_['map'](_0x58ece6,function(_0x5acf05){if(_0x5acf05['type']!==_0x6e94('0x3a')){var _0x140edb={};_0x140edb[_0x5acf05[_0x6e94('0x21')]]={'$like':'%'+_0x4fdc90['query'][_0x6e94('0x38')]+'%'};return _0x140edb;}})});}_0x17bf12=_[_0x6e94('0x39')]({},_0x17bf12,_0x4fdc90[_0x6e94('0x3b')]);var _0x319578={'where':_0x17bf12['where']};return db[_0x6e94('0x25')]['count'](_0x319578)['then'](function(_0x3d4167){_0x17f398[_0x6e94('0x3c')]=_0x3d4167;if(_0x4fdc90[_0x6e94('0x2c')][_0x6e94('0x3d')]){_0x17bf12[_0x6e94('0x3e')]=[{'all':!![]}];}return db[_0x6e94('0x25')][_0x6e94('0x3f')](_0x17bf12);})[_0x6e94('0x1e')](function(_0x429687){_0x17f398[_0x6e94('0x40')]=_0x429687;return _0x17f398;})[_0x6e94('0x1e')](respondWithFilteredResult(_0x69c8a4,_0x17bf12))['catch'](handleError(_0x69c8a4,null));};exports['show']=function(_0x1c1160,_0x132863){var _0x186ee7={'raw':![],'where':{'id':_0x1c1160['params']['id']}},_0x303442={};_0x303442['model']=_[_0x6e94('0x2d')](db['ScreenRecording'][_0x6e94('0x26')]);_0x303442[_0x6e94('0x2c')]=_[_0x6e94('0x2d')](_0x1c1160[_0x6e94('0x2c')]);_0x303442[_0x6e94('0x2e')]=_[_0x6e94('0x41')](_0x303442['model'],_0x303442[_0x6e94('0x2c')]);_0x186ee7[_0x6e94('0x2f')]=_['intersection'](_0x303442['model'],qs['fields'](_0x1c1160['query'][_0x6e94('0x30')]));_0x186ee7[_0x6e94('0x2f')]=_0x186ee7[_0x6e94('0x2f')][_0x6e94('0x31')]?_0x186ee7[_0x6e94('0x2f')]:_0x303442['model'];if(_0x1c1160['query']['includeAll']){_0x186ee7[_0x6e94('0x3e')]=[{'all':!![]}];}_0x186ee7=_['merge']({},_0x186ee7,_0x1c1160[_0x6e94('0x3b')]);return db[_0x6e94('0x25')]['find'](_0x186ee7)['then'](handleEntityNotFound(_0x132863,null))[_0x6e94('0x1e')](respondWithResult(_0x132863,null))[_0x6e94('0x42')](handleError(_0x132863,null));};exports[_0x6e94('0x43')]=function(_0x347deb,_0x5c8a3b){return db['ScreenRecording'][_0x6e94('0x43')](_0x347deb[_0x6e94('0x44')],{})[_0x6e94('0x1e')](respondWithResult(_0x5c8a3b,0xc9))[_0x6e94('0x42')](handleError(_0x5c8a3b,null));};exports[_0x6e94('0x1d')]=function(_0x3a20d0,_0x1a9a30){if(_0x3a20d0[_0x6e94('0x44')]['id']){delete _0x3a20d0['body']['id'];}delete _0x3a20d0[_0x6e94('0x44')][_0x6e94('0x45')];delete _0x3a20d0[_0x6e94('0x44')][_0x6e94('0x46')];delete _0x3a20d0['body'][_0x6e94('0x47')];delete _0x3a20d0[_0x6e94('0x44')][_0x6e94('0x48')];return db[_0x6e94('0x25')]['find']({'where':{'id':_0x3a20d0[_0x6e94('0x49')]['id']}})['then'](handleEntityNotFound(_0x1a9a30,null))[_0x6e94('0x1e')](saveUpdates(_0x3a20d0[_0x6e94('0x44')],null))[_0x6e94('0x1e')](respondWithResult(_0x1a9a30,null))['catch'](handleError(_0x1a9a30,null));};exports[_0x6e94('0x4a')]=function(_0x417fb0,_0x2e44b1){return db[_0x6e94('0x25')][_0x6e94('0x4a')]()[_0x6e94('0x1e')](respondWithResult(_0x2e44b1,null))[_0x6e94('0x42')](handleError(_0x2e44b1,null));};exports[_0x6e94('0x4b')]=function(_0x2717e2,_0xdb0689,_0x22326e){var _0x5497d6=require(_0x6e94('0x4c'));var _0x30de8e=![];var _0x38a7eb={};if(_0x2717e2[_0x6e94('0x2c')][_0x6e94('0x28')]&&_0x2717e2[_0x6e94('0x2c')][_0x6e94('0x28')]==='uniqueid'){_0x38a7eb[_0x6e94('0x4d')]=_0x2717e2[_0x6e94('0x49')]['id'];}else{_0x38a7eb['id']=_0x2717e2[_0x6e94('0x49')]['id'];}return db[_0x6e94('0x25')][_0x6e94('0x4e')]({'where':_0x38a7eb,'attributes':['id',_0x6e94('0x48')],'raw':!![]})[_0x6e94('0x1e')](handleEntityNotFound(_0xdb0689,null))[_0x6e94('0x1e')](function(_0x1b47d5){if(_0x1b47d5){var _0x49df49=path[_0x6e94('0x4f')](config['root'],_0x6e94('0x50'),_0x1b47d5[_0x6e94('0x48')]);var _0x1349a3=util[_0x6e94('0x51')]('%s.cypher',_0x49df49);if(fs[_0x6e94('0x52')](_0x1349a3)){_0x30de8e=!![];return _0x5497d6[_0x6e94('0x53')](_0x1349a3,_0x49df49,config['secrets'][_0x6e94('0x54')])[_0x6e94('0x1e')](function(){return _0x1b47d5;});}return _0x1b47d5;}})[_0x6e94('0x1e')](function(_0x54a5e0){if(_0x54a5e0){var _0x21d1c6=path['join'](config[_0x6e94('0x55')],_0x6e94('0x50'),_0x54a5e0[_0x6e94('0x48')]);if(!fs[_0x6e94('0x52')](_0x21d1c6)){throw new db[(_0x6e94('0x56'))][(_0x6e94('0x57'))](_0x6e94('0x58'));}if(_0x54a5e0[_0x6e94('0x59')]){return _0xdb0689[_0x6e94('0x4b')](_0x21d1c6,_0x54a5e0[_0x6e94('0x59')]+path[_0x6e94('0x5a')](_0x21d1c6),function(){if(_0x30de8e){fs[_0x6e94('0x5b')](_0x21d1c6);}});}else{return _0xdb0689[_0x6e94('0x4b')](_0x21d1c6,function(_0x165ca9){if(_0x30de8e){fs[_0x6e94('0x5b')](_0x21d1c6);}});}}})['catch'](function(_0x220e20){if(_0x220e20[_0x6e94('0x5c')]===_0x6e94('0x58')){_0xdb0689[_0x6e94('0x14')](0x194)[_0x6e94('0x22')](_0x6e94('0x5d'));}else{return handleError(_0xdb0689,null);}});};exports[_0x6e94('0x1f')]=function(_0x31415d,_0x116357){return db[_0x6e94('0x25')][_0x6e94('0x4e')]({'where':{'id':_0x31415d['params']['id']}})[_0x6e94('0x1e')](function(_0x664217){if(!_0x664217)throw new ReferenceError('Entity\x20not\x20found');return _0x664217;})[_0x6e94('0x1e')](function(_0x155619){var _0x35c332=path['join'](config[_0x6e94('0x55')],_0x6e94('0x50'),_0x155619[_0x6e94('0x48')]);logger[_0x6e94('0x5e')](_0x6e94('0x5f'),_0x35c332);if(!_['isNil'](_0x155619['value'])&&fs[_0x6e94('0x52')](_0x35c332)){logger['info']('File:\x20\x22'+_0x35c332+_0x6e94('0x60'));fs[_0x6e94('0x61')](_0x35c332);}_0x35c332=_0x35c332+'.cypher';if(!_[_0x6e94('0x62')](_0x155619[_0x6e94('0x48')])&&fs[_0x6e94('0x52')](_0x35c332)){logger['info'](_0x6e94('0x63')+_0x35c332+_0x6e94('0x60'));fs[_0x6e94('0x61')](_0x35c332);}return _0x155619;})[_0x6e94('0x1e')](function(_0x5ae91a){if(!_0x5ae91a)throw new InternalError();return _0x5ae91a['destroy']();})[_0x6e94('0x1e')](function(){_0x116357[_0x6e94('0x14')](0xcc)[_0x6e94('0x15')]();})[_0x6e94('0x42')](handleError(_0x116357,null));};