8ba218a6c64fa3dc12bdc41e62ae8ab6292ccfd7
[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 _0x54ea=['find','body','duration','closedAt','value','params','describe','../../components/encryptor','uniqueid','join','root','server/files/screen_recordings','%s.cypher','existsSync','secrets','recording','Sequelize','ScreenRecording\x20not\x20found','filename','download','extname','unlink','message','Not\x20found','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','util','sox','ejs','squel','crypto','desk.js','to-csv','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','name','send','index','map','ScreenRecording','rawAttributes','type','key','model','format','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show'];(function(_0x260a1c,_0x1ec1cf){var _0x299994=function(_0xca9f9e){while(--_0xca9f9e){_0x260a1c['push'](_0x260a1c['shift']());}};_0x299994(++_0x1ec1cf);}(_0x54ea,0x80));var _0xa54e=function(_0x1349d3,_0x24570f){_0x1349d3=_0x1349d3-0x0;var _0x1b5bb2=_0x54ea[_0x1349d3];return _0x1b5bb2;};'use strict';var pdf=require(_0xa54e('0x0'));var emlformat=require(_0xa54e('0x1'));var rimraf=require(_0xa54e('0x2'));var zipdir=require(_0xa54e('0x3'));var jsonpatch=require(_0xa54e('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa54e('0x5'));var Mustache=require('mustache');var util=require(_0xa54e('0x6'));var path=require('path');var sox=require(_0xa54e('0x7'));var csv=require('to-csv');var ejs=require(_0xa54e('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0xa54e('0x9'));var crypto=require(_0xa54e('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xa54e('0xb'));var toCsv=require(_0xa54e('0xc'));var querystring=require('querystring');var Papa=require(_0xa54e('0xd'));var Redis=require('ioredis');var authService=require(_0xa54e('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa54e('0xf'));var logger=require(_0xa54e('0x10'))('api');var utils=require(_0xa54e('0x11'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xa3b995,_0x1920b0){_0x1920b0=_0x1920b0||0xcc;return function(_0x392b61){if(_0x392b61){return _0xa3b995[_0xa54e('0x12')](_0x1920b0);}return _0xa3b995[_0xa54e('0x13')](_0x1920b0)[_0xa54e('0x14')]();};}function respondWithResult(_0x182460,_0x946438){_0x946438=_0x946438||0xc8;return function(_0x4e2b90){if(_0x4e2b90){return _0x182460[_0xa54e('0x13')](_0x946438)[_0xa54e('0x15')](_0x4e2b90);}};}function respondWithFilteredResult(_0x517702,_0xfa2a0c){return function(_0x286c3c){if(_0x286c3c){var _0x4beaf3=_0x286c3c[_0xa54e('0x16')],_0xcbf790=_0xfa2a0c[_0xa54e('0x17')],_0x591a34=_0xfa2a0c['offset']+_0xfa2a0c[_0xa54e('0x18')],_0x59c901;if(_0x591a34>=_0x4beaf3){_0x591a34=_0x4beaf3;_0x59c901=0xc8;}else{_0x59c901=0xce;}_0x517702[_0xa54e('0x13')](_0x59c901);return _0x517702[_0xa54e('0x19')](_0xa54e('0x1a'),_0xcbf790+'-'+_0x591a34+'/'+_0x4beaf3)[_0xa54e('0x15')](_0x286c3c);}return null;};}function patchUpdates(_0x4f6cf6){return function(_0x2929c7){try{jsonpatch[_0xa54e('0x1b')](_0x2929c7,_0x4f6cf6,!![]);}catch(_0x1230f8){return BPromise[_0xa54e('0x1c')](_0x1230f8);}return _0x2929c7['save']();};}function saveUpdates(_0x45fcdd,_0x3ee30a){return function(_0x1d7070){if(_0x1d7070){return _0x1d7070[_0xa54e('0x1d')](_0x45fcdd)[_0xa54e('0x1e')](function(_0x5d7b93){return _0x5d7b93;});}return null;};}function removeEntity(_0x1897af,_0x222964){return function(_0x37a840){if(_0x37a840){return _0x37a840[_0xa54e('0x1f')]()[_0xa54e('0x1e')](function(){_0x1897af['status'](0xcc)[_0xa54e('0x14')]();});}};}function handleEntityNotFound(_0x16ca3a,_0x49d418){return function(_0x4d674b){if(!_0x4d674b){_0x16ca3a[_0xa54e('0x12')](0x194);}return _0x4d674b;};}function handleError(_0x1a361f,_0x401e1f){_0x401e1f=_0x401e1f||0x1f4;return function(_0x973ab8){logger[_0xa54e('0x20')](_0x973ab8['stack']);if(_0x973ab8[_0xa54e('0x21')]){delete _0x973ab8['name'];}_0x1a361f[_0xa54e('0x13')](_0x401e1f)[_0xa54e('0x22')](_0x973ab8);};}exports[_0xa54e('0x23')]=function(_0x9078f8,_0x47a128){var _0x2e11b0={},_0x5aef57={},_0x435e30={'count':0x0,'rows':[]};var _0x13793c=_[_0xa54e('0x24')](db[_0xa54e('0x25')][_0xa54e('0x26')],function(_0x3cba30){return{'name':_0x3cba30['fieldName'],'type':_0x3cba30[_0xa54e('0x27')][_0xa54e('0x28')]};});_0x5aef57[_0xa54e('0x29')]=_['differenceBy'](_[_0xa54e('0x24')](_0x13793c,_0xa54e('0x21')),[_0xa54e('0x2a')]);_0x5aef57[_0xa54e('0x2b')]=_[_0xa54e('0x2c')](_0x9078f8[_0xa54e('0x2b')]);_0x5aef57[_0xa54e('0x2d')]=_[_0xa54e('0x2e')](_0x5aef57[_0xa54e('0x29')],_0x5aef57[_0xa54e('0x2b')]);_0x2e11b0[_0xa54e('0x2f')]=_['intersection'](_0x5aef57[_0xa54e('0x29')],qs[_0xa54e('0x30')](_0x9078f8[_0xa54e('0x2b')][_0xa54e('0x30')]));_0x2e11b0[_0xa54e('0x2f')]=_0x2e11b0[_0xa54e('0x2f')][_0xa54e('0x31')]?_0x2e11b0[_0xa54e('0x2f')]:_0x5aef57[_0xa54e('0x29')];if(!_0x9078f8[_0xa54e('0x2b')][_0xa54e('0x32')]('nolimit')){_0x2e11b0[_0xa54e('0x18')]=qs[_0xa54e('0x18')](_0x9078f8[_0xa54e('0x2b')][_0xa54e('0x18')]);_0x2e11b0['offset']=qs[_0xa54e('0x17')](_0x9078f8['query'][_0xa54e('0x17')]);}_0x2e11b0[_0xa54e('0x33')]=qs[_0xa54e('0x34')](_0x9078f8[_0xa54e('0x2b')][_0xa54e('0x34')]);_0x2e11b0['where']=qs[_0xa54e('0x2d')](_[_0xa54e('0x35')](_0x9078f8[_0xa54e('0x2b')],_0x5aef57[_0xa54e('0x2d')]),_0x13793c);if(_0x9078f8['query'][_0xa54e('0x36')]){_0x2e11b0[_0xa54e('0x37')]=_[_0xa54e('0x38')](_0x2e11b0[_0xa54e('0x37')],{'$or':_[_0xa54e('0x24')](_0x13793c,function(_0x105ced){if(_0x105ced['type']!==_0xa54e('0x39')){var _0x542edf={};_0x542edf[_0x105ced[_0xa54e('0x21')]]={'$like':'%'+_0x9078f8['query'][_0xa54e('0x36')]+'%'};return _0x542edf;}})});}_0x2e11b0=_[_0xa54e('0x38')]({},_0x2e11b0,_0x9078f8[_0xa54e('0x3a')]);var _0x58ec29={'where':_0x2e11b0[_0xa54e('0x37')]};return db[_0xa54e('0x25')][_0xa54e('0x16')](_0x58ec29)['then'](function(_0x3e86c3){_0x435e30[_0xa54e('0x16')]=_0x3e86c3;if(_0x9078f8[_0xa54e('0x2b')][_0xa54e('0x3b')]){_0x2e11b0[_0xa54e('0x3c')]=[{'all':!![]}];}return db[_0xa54e('0x25')]['findAll'](_0x2e11b0);})[_0xa54e('0x1e')](function(_0x10c6d6){_0x435e30[_0xa54e('0x3d')]=_0x10c6d6;return _0x435e30;})[_0xa54e('0x1e')](respondWithFilteredResult(_0x47a128,_0x2e11b0))[_0xa54e('0x3e')](handleError(_0x47a128,null));};exports[_0xa54e('0x3f')]=function(_0x152b19,_0x391521){var _0x589c77={'raw':![],'where':{'id':_0x152b19['params']['id']}},_0x1536e6={};_0x1536e6['model']=_[_0xa54e('0x2c')](db[_0xa54e('0x25')]['rawAttributes']);_0x1536e6[_0xa54e('0x2b')]=_['keys'](_0x152b19[_0xa54e('0x2b')]);_0x1536e6['filters']=_[_0xa54e('0x2e')](_0x1536e6[_0xa54e('0x29')],_0x1536e6[_0xa54e('0x2b')]);_0x589c77['attributes']=_[_0xa54e('0x2e')](_0x1536e6['model'],qs[_0xa54e('0x30')](_0x152b19[_0xa54e('0x2b')][_0xa54e('0x30')]));_0x589c77[_0xa54e('0x2f')]=_0x589c77[_0xa54e('0x2f')][_0xa54e('0x31')]?_0x589c77[_0xa54e('0x2f')]:_0x1536e6[_0xa54e('0x29')];if(_0x152b19[_0xa54e('0x2b')][_0xa54e('0x3b')]){_0x589c77[_0xa54e('0x3c')]=[{'all':!![]}];}_0x589c77=_[_0xa54e('0x38')]({},_0x589c77,_0x152b19[_0xa54e('0x3a')]);return db['ScreenRecording'][_0xa54e('0x40')](_0x589c77)[_0xa54e('0x1e')](handleEntityNotFound(_0x391521,null))[_0xa54e('0x1e')](respondWithResult(_0x391521,null))[_0xa54e('0x3e')](handleError(_0x391521,null));};exports['create']=function(_0x4877c5,_0x5ddfe8){return db[_0xa54e('0x25')]['create'](_0x4877c5['body'],{})[_0xa54e('0x1e')](respondWithResult(_0x5ddfe8,0xc9))[_0xa54e('0x3e')](handleError(_0x5ddfe8,null));};exports['update']=function(_0x24a937,_0x5b5315){if(_0x24a937[_0xa54e('0x41')]['id']){delete _0x24a937[_0xa54e('0x41')]['id'];}delete _0x24a937[_0xa54e('0x41')][_0xa54e('0x42')];delete _0x24a937[_0xa54e('0x41')]['createdAt'];delete _0x24a937[_0xa54e('0x41')][_0xa54e('0x43')];delete _0x24a937[_0xa54e('0x41')][_0xa54e('0x44')];return db[_0xa54e('0x25')][_0xa54e('0x40')]({'where':{'id':_0x24a937[_0xa54e('0x45')]['id']}})[_0xa54e('0x1e')](handleEntityNotFound(_0x5b5315,null))[_0xa54e('0x1e')](saveUpdates(_0x24a937['body'],null))[_0xa54e('0x1e')](respondWithResult(_0x5b5315,null))[_0xa54e('0x3e')](handleError(_0x5b5315,null));};exports['describe']=function(_0x2b2171,_0x135ef7){return db[_0xa54e('0x25')][_0xa54e('0x46')]()[_0xa54e('0x1e')](respondWithResult(_0x135ef7,null))[_0xa54e('0x3e')](handleError(_0x135ef7,null));};exports['download']=function(_0x10e1f1,_0x5b4827,_0x32b30f){var _0x139f89=require(_0xa54e('0x47'));var _0x10ec18=![];var _0x14691b={};if(_0x10e1f1[_0xa54e('0x2b')][_0xa54e('0x27')]&&_0x10e1f1['query'][_0xa54e('0x27')]===_0xa54e('0x48')){_0x14691b[_0xa54e('0x48')]=_0x10e1f1['params']['id'];}else{_0x14691b['id']=_0x10e1f1[_0xa54e('0x45')]['id'];}return db['ScreenRecording']['find']({'where':_0x14691b,'attributes':['id',_0xa54e('0x44')],'raw':!![]})[_0xa54e('0x1e')](handleEntityNotFound(_0x5b4827,null))[_0xa54e('0x1e')](function(_0x32b430){if(_0x32b430){var _0xb8262c=path[_0xa54e('0x49')](config[_0xa54e('0x4a')],_0xa54e('0x4b'),_0x32b430[_0xa54e('0x44')]);var _0xb3ff87=util[_0xa54e('0x2a')](_0xa54e('0x4c'),_0xb8262c);if(fs[_0xa54e('0x4d')](_0xb3ff87)){_0x10ec18=!![];return _0x139f89['decryptFile'](_0xb3ff87,_0xb8262c,config[_0xa54e('0x4e')][_0xa54e('0x4f')])[_0xa54e('0x1e')](function(){return _0x32b430;});}return _0x32b430;}})['then'](function(_0x23c7b9){if(_0x23c7b9){var _0x12a5bb=path['join'](config[_0xa54e('0x4a')],'server/files/screen_recordings',_0x23c7b9[_0xa54e('0x44')]);if(!fs[_0xa54e('0x4d')](_0x12a5bb)){throw new db[(_0xa54e('0x50'))]['ValidationError'](_0xa54e('0x51'));}if(_0x23c7b9[_0xa54e('0x52')]){return _0x5b4827[_0xa54e('0x53')](_0x12a5bb,_0x23c7b9[_0xa54e('0x52')]+path[_0xa54e('0x54')](_0x12a5bb),function(){if(_0x10ec18){fs[_0xa54e('0x55')](_0x12a5bb);}});}else{return _0x5b4827[_0xa54e('0x53')](_0x12a5bb,function(_0x416d0d){if(_0x10ec18){fs[_0xa54e('0x55')](_0x12a5bb);}});}}})['catch'](function(_0x324420){if(_0x324420[_0xa54e('0x56')]==='ScreenRecording\x20not\x20found'){_0x5b4827[_0xa54e('0x13')](0x194)['send'](_0xa54e('0x57'));}else{return handleError(_0x5b4827,null);}});};exports[_0xa54e('0x1f')]=function(_0x38ce15,_0x31abda){return db['ScreenRecording']['find']({'where':{'id':_0x38ce15['params']['id']}})['then'](function(_0x2ef1b4){if(!_0x2ef1b4)throw new ReferenceError(_0xa54e('0x58'));return _0x2ef1b4;})['then'](function(_0x5c23ea){var _0x65c29a=path[_0xa54e('0x49')](config[_0xa54e('0x4a')],_0xa54e('0x4b'),_0x5c23ea['value']);logger[_0xa54e('0x59')](_0xa54e('0x5a'),_0x65c29a);if(!_[_0xa54e('0x5b')](_0x5c23ea[_0xa54e('0x44')])&&fs[_0xa54e('0x4d')](_0x65c29a)){logger[_0xa54e('0x59')](_0xa54e('0x5c')+_0x65c29a+_0xa54e('0x5d'));fs[_0xa54e('0x5e')](_0x65c29a);}_0x65c29a=_0x65c29a+_0xa54e('0x5f');if(!_['isNil'](_0x5c23ea[_0xa54e('0x44')])&&fs['existsSync'](_0x65c29a)){logger[_0xa54e('0x59')](_0xa54e('0x5c')+_0x65c29a+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xa54e('0x5e')](_0x65c29a);}return _0x5c23ea;})[_0xa54e('0x1e')](function(_0xddc5be){if(!_0xddc5be)throw new InternalError();return _0xddc5be[_0xa54e('0x1f')]();})[_0xa54e('0x1e')](function(){_0x31abda[_0xa54e('0x13')](0xcc)['end']();})[_0xa54e('0x3e')](handleError(_0x31abda,null));};