aeced0fa7e20e833fbfcc5149e397d3f43f2fe0f
[motion2.git] / server / api / squareRecording / squareRecording.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 _0x0664=['fieldName','query','keys','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','filters','include','create','body','find','download','../../components/encryptor','uniqueid','filename','format','secrets','recording','savePath','existsSync','SquareRecording\x20not\x20found','extname','unlink','message','Not\x20found','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','isNil','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','stack','name','send','index','map','SquareRecording','rawAttributes'];(function(_0x5e2528,_0x3e27ed){var _0x30c05e=function(_0x4c519c){while(--_0x4c519c){_0x5e2528['push'](_0x5e2528['shift']());}};_0x30c05e(++_0x3e27ed);}(_0x0664,0x93));var _0x4066=function(_0x34fc4d,_0x490729){_0x34fc4d=_0x34fc4d-0x0;var _0x24b8f4=_0x0664[_0x34fc4d];return _0x24b8f4;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4066('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4066('0x1'));var jsonpatch=require(_0x4066('0x2'));var rp=require('request-promise');var moment=require(_0x4066('0x3'));var BPromise=require(_0x4066('0x4'));var Mustache=require(_0x4066('0x5'));var util=require(_0x4066('0x6'));var path=require(_0x4066('0x7'));var sox=require(_0x4066('0x8'));var csv=require(_0x4066('0x9'));var ejs=require(_0x4066('0xa'));var fs=require('fs');var _=require(_0x4066('0xb'));var squel=require(_0x4066('0xc'));var crypto=require('crypto');var jsforce=require(_0x4066('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x4066('0x9'));var querystring=require(_0x4066('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x4066('0xf'));var qs=require(_0x4066('0x10'));var as=require(_0x4066('0x11'));var hardwareService=require(_0x4066('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x4066('0x13'));var db=require(_0x4066('0x14'))['db'];function respondWithStatusCode(_0x10c353,_0x12d36c){_0x12d36c=_0x12d36c||0xcc;return function(_0x425456){if(_0x425456){return _0x10c353[_0x4066('0x15')](_0x12d36c);}return _0x10c353[_0x4066('0x16')](_0x12d36c)[_0x4066('0x17')]();};}function respondWithResult(_0x5b4f38,_0x42a09c){_0x42a09c=_0x42a09c||0xc8;return function(_0x152404){if(_0x152404){return _0x5b4f38['status'](_0x42a09c)[_0x4066('0x18')](_0x152404);}};}function respondWithFilteredResult(_0x5095d6,_0x252e1c){return function(_0x5f37ea){if(_0x5f37ea){var _0x50f71d=_0x5f37ea[_0x4066('0x19')],_0x430ae4=_0x252e1c[_0x4066('0x1a')],_0x1a2f4a=_0x252e1c[_0x4066('0x1a')]+_0x252e1c[_0x4066('0x1b')],_0x309ffc;if(_0x1a2f4a>=_0x50f71d){_0x1a2f4a=_0x50f71d;_0x309ffc=0xc8;}else{_0x309ffc=0xce;}_0x5095d6[_0x4066('0x16')](_0x309ffc);return _0x5095d6[_0x4066('0x1c')](_0x4066('0x1d'),_0x430ae4+'-'+_0x1a2f4a+'/'+_0x50f71d)['json'](_0x5f37ea);}return null;};}function patchUpdates(_0x4c83ac){return function(_0x2e85ee){try{jsonpatch[_0x4066('0x1e')](_0x2e85ee,_0x4c83ac,!![]);}catch(_0x5b02a4){return BPromise[_0x4066('0x1f')](_0x5b02a4);}return _0x2e85ee[_0x4066('0x20')]();};}function saveUpdates(_0x382950,_0x35ae6b){return function(_0x361f1d){if(_0x361f1d){return _0x361f1d[_0x4066('0x21')](_0x382950)['then'](function(_0x550dcf){return _0x550dcf;});}return null;};}function removeEntity(_0x541306,_0x549504){return function(_0x3b2b7f){if(_0x3b2b7f){return _0x3b2b7f[_0x4066('0x22')]()[_0x4066('0x23')](function(){_0x541306[_0x4066('0x16')](0xcc)[_0x4066('0x17')]();});}};}function handleEntityNotFound(_0x5afa04,_0x21a1f7){return function(_0x1433a9){if(!_0x1433a9){_0x5afa04[_0x4066('0x15')](0x194);}return _0x1433a9;};}function handleError(_0x2598c6,_0x3fa05a){_0x3fa05a=_0x3fa05a||0x1f4;return function(_0x59abe2){logger['error'](_0x59abe2[_0x4066('0x24')]);if(_0x59abe2[_0x4066('0x25')]){delete _0x59abe2[_0x4066('0x25')];}_0x2598c6[_0x4066('0x16')](_0x3fa05a)[_0x4066('0x26')](_0x59abe2);};}exports[_0x4066('0x27')]=function(_0x1f9e34,_0x225298){var _0x36fcd8={},_0x1f6368={},_0x383aa5={'count':0x0,'rows':[]};var _0x2e4674=_[_0x4066('0x28')](db[_0x4066('0x29')][_0x4066('0x2a')],function(_0x496c35){return{'name':_0x496c35[_0x4066('0x2b')],'type':_0x496c35['type']['key']};});_0x1f6368['model']=_[_0x4066('0x28')](_0x2e4674,'name');_0x1f6368[_0x4066('0x2c')]=_[_0x4066('0x2d')](_0x1f9e34[_0x4066('0x2c')]);_0x1f6368['filters']=_[_0x4066('0x2e')](_0x1f6368['model'],_0x1f6368[_0x4066('0x2c')]);_0x36fcd8[_0x4066('0x2f')]=_['intersection'](_0x1f6368['model'],qs[_0x4066('0x30')](_0x1f9e34[_0x4066('0x2c')]['fields']));_0x36fcd8[_0x4066('0x2f')]=_0x36fcd8[_0x4066('0x2f')][_0x4066('0x31')]?_0x36fcd8['attributes']:_0x1f6368[_0x4066('0x32')];if(!_0x1f9e34['query'][_0x4066('0x33')](_0x4066('0x34'))){_0x36fcd8[_0x4066('0x1b')]=qs[_0x4066('0x1b')](_0x1f9e34[_0x4066('0x2c')][_0x4066('0x1b')]);_0x36fcd8[_0x4066('0x1a')]=qs[_0x4066('0x1a')](_0x1f9e34[_0x4066('0x2c')][_0x4066('0x1a')]);}_0x36fcd8[_0x4066('0x35')]=qs[_0x4066('0x36')](_0x1f9e34['query'][_0x4066('0x36')]);_0x36fcd8[_0x4066('0x37')]=qs['filters'](_[_0x4066('0x38')](_0x1f9e34[_0x4066('0x2c')],_0x1f6368['filters']),_0x2e4674);if(_0x1f9e34[_0x4066('0x2c')][_0x4066('0x39')]){_0x36fcd8[_0x4066('0x37')]=_[_0x4066('0x3a')](_0x36fcd8[_0x4066('0x37')],{'$or':_[_0x4066('0x28')](_0x2e4674,function(_0x83e8d7){if(_0x83e8d7[_0x4066('0x3b')]!==_0x4066('0x3c')){var _0x598bd5={};_0x598bd5[_0x83e8d7[_0x4066('0x25')]]={'$like':'%'+_0x1f9e34[_0x4066('0x2c')]['filter']+'%'};return _0x598bd5;}})});}_0x36fcd8=_[_0x4066('0x3a')]({},_0x36fcd8,_0x1f9e34[_0x4066('0x3d')]);var _0x35017a={'where':_0x36fcd8['where']};return db[_0x4066('0x29')][_0x4066('0x19')](_0x35017a)[_0x4066('0x23')](function(_0x44650a){_0x383aa5[_0x4066('0x19')]=_0x44650a;if(_0x1f9e34[_0x4066('0x2c')][_0x4066('0x3e')]){_0x36fcd8['include']=[{'all':!![]}];}return db[_0x4066('0x29')][_0x4066('0x3f')](_0x36fcd8);})[_0x4066('0x23')](function(_0x3496e7){_0x383aa5[_0x4066('0x40')]=_0x3496e7;return _0x383aa5;})['then'](respondWithFilteredResult(_0x225298,_0x36fcd8))[_0x4066('0x41')](handleError(_0x225298,null));};exports[_0x4066('0x42')]=function(_0x54d4d7,_0x1f0c82){var _0x285568={'raw':!![],'where':{'id':_0x54d4d7[_0x4066('0x43')]['id']}},_0x16af12={};_0x16af12[_0x4066('0x32')]=_['keys'](db[_0x4066('0x29')][_0x4066('0x2a')]);_0x16af12['query']=_[_0x4066('0x2d')](_0x54d4d7[_0x4066('0x2c')]);_0x16af12[_0x4066('0x44')]=_[_0x4066('0x2e')](_0x16af12[_0x4066('0x32')],_0x16af12[_0x4066('0x2c')]);_0x285568[_0x4066('0x2f')]=_['intersection'](_0x16af12[_0x4066('0x32')],qs[_0x4066('0x30')](_0x54d4d7[_0x4066('0x2c')][_0x4066('0x30')]));_0x285568[_0x4066('0x2f')]=_0x285568[_0x4066('0x2f')]['length']?_0x285568[_0x4066('0x2f')]:_0x16af12['model'];if(_0x54d4d7[_0x4066('0x2c')]['includeAll']){_0x285568[_0x4066('0x45')]=[{'all':!![]}];}_0x285568=_[_0x4066('0x3a')]({},_0x285568,_0x54d4d7[_0x4066('0x3d')]);return db[_0x4066('0x29')]['find'](_0x285568)[_0x4066('0x23')](handleEntityNotFound(_0x1f0c82,null))[_0x4066('0x23')](respondWithResult(_0x1f0c82,null))['catch'](handleError(_0x1f0c82,null));};exports[_0x4066('0x46')]=function(_0x5f5d66,_0x47f8b0){return db['SquareRecording'][_0x4066('0x46')](_0x5f5d66[_0x4066('0x47')],{})[_0x4066('0x23')](respondWithResult(_0x47f8b0,0xc9))[_0x4066('0x41')](handleError(_0x47f8b0,null));};exports[_0x4066('0x21')]=function(_0x5010d0,_0x88bfae){if(_0x5010d0[_0x4066('0x47')]['id']){delete _0x5010d0[_0x4066('0x47')]['id'];}return db[_0x4066('0x29')][_0x4066('0x48')]({'where':{'id':_0x5010d0['params']['id']}})[_0x4066('0x23')](handleEntityNotFound(_0x88bfae,null))[_0x4066('0x23')](saveUpdates(_0x5010d0[_0x4066('0x47')],null))[_0x4066('0x23')](respondWithResult(_0x88bfae,null))[_0x4066('0x41')](handleError(_0x88bfae,null));};exports[_0x4066('0x49')]=function(_0x3ec1a3,_0x4dfadf,_0x3dbb18){var _0x5c7a6d=require(_0x4066('0x4a'));var _0x402452=![];var _0x3bfea2={};if(_0x3ec1a3['query'][_0x4066('0x3b')]&&_0x3ec1a3[_0x4066('0x2c')]['type']===_0x4066('0x4b')){_0x3bfea2[_0x4066('0x4b')]=_0x3ec1a3[_0x4066('0x43')]['id'];}else{_0x3bfea2['id']=_0x3ec1a3[_0x4066('0x43')]['id'];}return db[_0x4066('0x29')][_0x4066('0x48')]({'where':_0x3bfea2,'attributes':['id','savePath',_0x4066('0x4c')],'raw':!![]})[_0x4066('0x23')](handleEntityNotFound(_0x4dfadf,null))[_0x4066('0x23')](function(_0x5cbd2b){if(_0x5cbd2b){var _0xe0f43c=_0x5cbd2b['savePath'];var _0x1a5e95=util[_0x4066('0x4d')]('%s.cypher',_0xe0f43c);if(fs['existsSync'](_0x1a5e95)){_0x402452=!![];return _0x5c7a6d['decryptFile'](_0x1a5e95,_0xe0f43c,config[_0x4066('0x4e')][_0x4066('0x4f')])[_0x4066('0x23')](function(){return _0x5cbd2b;});}return _0x5cbd2b;}})[_0x4066('0x23')](function(_0x4e677c){if(_0x4e677c){var _0x54562d=_0x4e677c[_0x4066('0x50')];if(!fs[_0x4066('0x51')](_0x54562d)){throw new db['Sequelize']['ValidationError'](_0x4066('0x52'));}if(_0x4e677c['filename']){return _0x4dfadf[_0x4066('0x49')](_0x54562d,_0x4e677c['filename']+path[_0x4066('0x53')](_0x54562d),function(){if(_0x402452){fs[_0x4066('0x54')](_0x54562d);}});}else{return _0x4dfadf[_0x4066('0x49')](_0x54562d,function(_0x1af91f){if(_0x402452){fs[_0x4066('0x54')](_0x54562d);}});}}})[_0x4066('0x41')](function(_0x553b8e){if(_0x553b8e[_0x4066('0x55')]===_0x4066('0x52')){_0x4dfadf[_0x4066('0x16')](0x194)[_0x4066('0x26')](_0x4066('0x56'));}else{return handleError(_0x4dfadf,null);}});};exports['destroy']=function(_0x5c9eff,_0x3256ca){return db[_0x4066('0x29')][_0x4066('0x48')]({'where':{'id':_0x5c9eff['params']['id']}})[_0x4066('0x23')](function(_0x539981){if(!_0x539981)throw new ReferenceError(_0x4066('0x57'));return _0x539981;})[_0x4066('0x23')](function(_0x52b69f){var _0x2789a2=_0x52b69f['savePath'];logger[_0x4066('0x58')](_0x4066('0x59'),_0x2789a2);if(!_['isNil'](_0x52b69f['savePath'])&&fs[_0x4066('0x51')](_0x2789a2)){logger[_0x4066('0x58')](_0x4066('0x5a')+_0x2789a2+_0x4066('0x5b'));fs[_0x4066('0x5c')](_0x2789a2);}_0x2789a2=_0x2789a2+_0x4066('0x5d');if(!_[_0x4066('0x5e')](_0x52b69f[_0x4066('0x50')])&&fs[_0x4066('0x51')](_0x2789a2)){logger[_0x4066('0x58')](_0x4066('0x5a')+_0x2789a2+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0x4066('0x5c')](_0x2789a2);}return _0x52b69f;})['then'](function(_0x57aab9){if(!_0x57aab9)throw new InternalError();return _0x57aab9[_0x4066('0x22')]();})[_0x4066('0x23')](function(){_0x3256ca[_0x4066('0x16')](0xcc)[_0x4066('0x17')]();})[_0x4066('0x41')](handleError(_0x3256ca,null));};