3faaf7021ac50b1f2832c95d0c81b04117514f89
[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 _0x07cf=['../../mysqldb','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','stack','name','send','index','map','SquareRecording','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','VIRTUAL','filter','then','includeAll','include','findAll','rows','catch','show','merge','options','find','create','body','update','uniqueid','params','savePath','filename','format','existsSync','decryptFile','Sequelize','ValidationError','SquareRecording\x20not\x20found','download','extname','message','Not\x20found','destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','unlinkSync','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x2c0be1,_0x1e88f2){var _0x3d4bd2=function(_0x2b5497){while(--_0x2b5497){_0x2c0be1['push'](_0x2c0be1['shift']());}};_0x3d4bd2(++_0x1e88f2);}(_0x07cf,0x1c9));var _0xf07c=function(_0x51e79c,_0x51485e){_0x51e79c=_0x51e79c-0x0;var _0x2467be=_0x07cf[_0x51e79c];return _0x2467be;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf07c('0x0'));var zipdir=require(_0xf07c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf07c('0x2'));var moment=require('moment');var BPromise=require(_0xf07c('0x3'));var Mustache=require(_0xf07c('0x4'));var util=require(_0xf07c('0x5'));var path=require(_0xf07c('0x6'));var sox=require(_0xf07c('0x7'));var csv=require('to-csv');var ejs=require(_0xf07c('0x8'));var fs=require('fs');var fs_extra=require(_0xf07c('0x9'));var _=require('lodash');var squel=require(_0xf07c('0xa'));var crypto=require('crypto');var jsforce=require(_0xf07c('0xb'));var deskjs=require(_0xf07c('0xc'));var toCsv=require(_0xf07c('0xd'));var querystring=require('querystring');var Papa=require(_0xf07c('0xe'));var Redis=require(_0xf07c('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf07c('0x10'));var hardwareService=require(_0xf07c('0x11'));var logger=require(_0xf07c('0x12'))(_0xf07c('0x13'));var utils=require(_0xf07c('0x14'));var config=require(_0xf07c('0x15'));var licenseUtil=require(_0xf07c('0x16'));var db=require(_0xf07c('0x17'))['db'];function respondWithStatusCode(_0x3d715c,_0x2cf85f){_0x2cf85f=_0x2cf85f||0xcc;return function(_0x5e6b99){if(_0x5e6b99){return _0x3d715c['sendStatus'](_0x2cf85f);}return _0x3d715c[_0xf07c('0x18')](_0x2cf85f)[_0xf07c('0x19')]();};}function respondWithResult(_0x4d7bb4,_0x3ca16a){_0x3ca16a=_0x3ca16a||0xc8;return function(_0x4761fd){if(_0x4761fd){return _0x4d7bb4['status'](_0x3ca16a)['json'](_0x4761fd);}};}function respondWithFilteredResult(_0x595a0e,_0x27d80f){return function(_0x445cc9){if(_0x445cc9){var _0x1ce664=typeof _0x27d80f[_0xf07c('0x1a')]===_0xf07c('0x1b')&&typeof _0x27d80f[_0xf07c('0x1c')]==='undefined';var _0x42358c=_0x445cc9[_0xf07c('0x1d')];var _0x2e2b4b=_0x1ce664?0x0:_0x27d80f['offset'];var _0x3190ad=_0x1ce664?_0x445cc9['count']:_0x27d80f[_0xf07c('0x1a')]+_0x27d80f[_0xf07c('0x1c')];var _0x41463c;if(_0x3190ad>=_0x42358c){_0x3190ad=_0x42358c;_0x41463c=0xc8;}else{_0x41463c=0xce;}_0x595a0e[_0xf07c('0x18')](_0x41463c);return _0x595a0e['set'](_0xf07c('0x1e'),_0x2e2b4b+'-'+_0x3190ad+'/'+_0x42358c)[_0xf07c('0x1f')](_0x445cc9);}return null;};}function patchUpdates(_0x142443){return function(_0x352653){try{jsonpatch[_0xf07c('0x20')](_0x352653,_0x142443,!![]);}catch(_0xd154e5){return BPromise[_0xf07c('0x21')](_0xd154e5);}return _0x352653[_0xf07c('0x22')]();};}function saveUpdates(_0x50df70,_0x5a4cdd){return function(_0x45e7dd){if(_0x45e7dd){return _0x45e7dd['update'](_0x50df70)['then'](function(_0x2fff89){return _0x2fff89;});}return null;};}function removeEntity(_0xf95865,_0x22d43e){return function(_0x262c3e){if(_0x262c3e){return _0x262c3e['destroy']()['then'](function(){_0xf95865[_0xf07c('0x18')](0xcc)[_0xf07c('0x19')]();});}};}function handleEntityNotFound(_0x3a2ad3,_0x54bf07){return function(_0x5b6404){if(!_0x5b6404){_0x3a2ad3['sendStatus'](0x194);}return _0x5b6404;};}function handleError(_0x29da46,_0x122f7c){_0x122f7c=_0x122f7c||0x1f4;return function(_0x22d70b){logger['error'](_0x22d70b[_0xf07c('0x23')]);if(_0x22d70b['name']){delete _0x22d70b[_0xf07c('0x24')];}_0x29da46['status'](_0x122f7c)[_0xf07c('0x25')](_0x22d70b);};}exports[_0xf07c('0x26')]=function(_0x576c49,_0x328649){var _0x4e5dc9={},_0x3fb624={},_0x4cdacc={'count':0x0,'rows':[]};var _0x41fd7d=_[_0xf07c('0x27')](db[_0xf07c('0x28')][_0xf07c('0x29')],function(_0x498ad1){return{'name':_0x498ad1[_0xf07c('0x2a')],'type':_0x498ad1[_0xf07c('0x2b')]['key']};});_0x3fb624[_0xf07c('0x2c')]=_['map'](_0x41fd7d,_0xf07c('0x24'));_0x3fb624[_0xf07c('0x2d')]=_[_0xf07c('0x2e')](_0x576c49[_0xf07c('0x2d')]);_0x3fb624[_0xf07c('0x2f')]=_[_0xf07c('0x30')](_0x3fb624[_0xf07c('0x2c')],_0x3fb624[_0xf07c('0x2d')]);_0x4e5dc9[_0xf07c('0x31')]=_[_0xf07c('0x30')](_0x3fb624[_0xf07c('0x2c')],qs[_0xf07c('0x32')](_0x576c49[_0xf07c('0x2d')][_0xf07c('0x32')]));_0x4e5dc9['attributes']=_0x4e5dc9[_0xf07c('0x31')][_0xf07c('0x33')]?_0x4e5dc9[_0xf07c('0x31')]:_0x3fb624[_0xf07c('0x2c')];if(!_0x576c49[_0xf07c('0x2d')][_0xf07c('0x34')](_0xf07c('0x35'))){_0x4e5dc9['limit']=qs['limit'](_0x576c49[_0xf07c('0x2d')][_0xf07c('0x1c')]);_0x4e5dc9['offset']=qs['offset'](_0x576c49[_0xf07c('0x2d')][_0xf07c('0x1a')]);}_0x4e5dc9[_0xf07c('0x36')]=qs[_0xf07c('0x37')](_0x576c49[_0xf07c('0x2d')][_0xf07c('0x37')]);_0x4e5dc9['where']=qs[_0xf07c('0x2f')](_[_0xf07c('0x38')](_0x576c49[_0xf07c('0x2d')],_0x3fb624['filters']),_0x41fd7d);if(_0x576c49[_0xf07c('0x2d')]['filter']){_0x4e5dc9[_0xf07c('0x39')]=_['merge'](_0x4e5dc9[_0xf07c('0x39')],{'$or':_['map'](_0x41fd7d,function(_0x41dc69){if(_0x41dc69['type']!==_0xf07c('0x3a')){var _0x4768c2={};_0x4768c2[_0x41dc69[_0xf07c('0x24')]]={'$like':'%'+_0x576c49[_0xf07c('0x2d')][_0xf07c('0x3b')]+'%'};return _0x4768c2;}})});}_0x4e5dc9=_['merge']({},_0x4e5dc9,_0x576c49['options']);var _0x5a7cd1={'where':_0x4e5dc9['where']};return db[_0xf07c('0x28')][_0xf07c('0x1d')](_0x5a7cd1)[_0xf07c('0x3c')](function(_0x2add2e){_0x4cdacc['count']=_0x2add2e;if(_0x576c49[_0xf07c('0x2d')][_0xf07c('0x3d')]){_0x4e5dc9[_0xf07c('0x3e')]=[{'all':!![]}];}return db[_0xf07c('0x28')][_0xf07c('0x3f')](_0x4e5dc9);})[_0xf07c('0x3c')](function(_0x2cfbf1){_0x4cdacc[_0xf07c('0x40')]=_0x2cfbf1;return _0x4cdacc;})[_0xf07c('0x3c')](respondWithFilteredResult(_0x328649,_0x4e5dc9))[_0xf07c('0x41')](handleError(_0x328649,null));};exports[_0xf07c('0x42')]=function(_0x4d0e8d,_0x1ee76c){var _0x3a4930={'raw':!![],'where':{'id':_0x4d0e8d['params']['id']}},_0x46f832={};_0x46f832[_0xf07c('0x2c')]=_['keys'](db[_0xf07c('0x28')][_0xf07c('0x29')]);_0x46f832['query']=_[_0xf07c('0x2e')](_0x4d0e8d[_0xf07c('0x2d')]);_0x46f832[_0xf07c('0x2f')]=_[_0xf07c('0x30')](_0x46f832['model'],_0x46f832[_0xf07c('0x2d')]);_0x3a4930['attributes']=_[_0xf07c('0x30')](_0x46f832[_0xf07c('0x2c')],qs[_0xf07c('0x32')](_0x4d0e8d[_0xf07c('0x2d')]['fields']));_0x3a4930[_0xf07c('0x31')]=_0x3a4930['attributes']['length']?_0x3a4930[_0xf07c('0x31')]:_0x46f832[_0xf07c('0x2c')];if(_0x4d0e8d[_0xf07c('0x2d')][_0xf07c('0x3d')]){_0x3a4930[_0xf07c('0x3e')]=[{'all':!![]}];}_0x3a4930=_[_0xf07c('0x43')]({},_0x3a4930,_0x4d0e8d[_0xf07c('0x44')]);return db['SquareRecording'][_0xf07c('0x45')](_0x3a4930)[_0xf07c('0x3c')](handleEntityNotFound(_0x1ee76c,null))[_0xf07c('0x3c')](respondWithResult(_0x1ee76c,null))[_0xf07c('0x41')](handleError(_0x1ee76c,null));};exports[_0xf07c('0x46')]=function(_0x39f522,_0x553422){return db['SquareRecording']['create'](_0x39f522[_0xf07c('0x47')],{})['then'](respondWithResult(_0x553422,0xc9))[_0xf07c('0x41')](handleError(_0x553422,null));};exports[_0xf07c('0x48')]=function(_0x32074d,_0x24896c){if(_0x32074d[_0xf07c('0x47')]['id']){delete _0x32074d[_0xf07c('0x47')]['id'];}return db['SquareRecording'][_0xf07c('0x45')]({'where':{'id':_0x32074d['params']['id']}})['then'](handleEntityNotFound(_0x24896c,null))[_0xf07c('0x3c')](saveUpdates(_0x32074d[_0xf07c('0x47')],null))[_0xf07c('0x3c')](respondWithResult(_0x24896c,null))[_0xf07c('0x41')](handleError(_0x24896c,null));};exports['download']=function(_0x1dfbeb,_0x40430c,_0x4a99c7){var _0x361e94=require('../../components/encryptor');var _0x188ac6=![];var _0xb219d3={};if(_0x1dfbeb[_0xf07c('0x2d')][_0xf07c('0x2b')]&&_0x1dfbeb[_0xf07c('0x2d')][_0xf07c('0x2b')]===_0xf07c('0x49')){_0xb219d3[_0xf07c('0x49')]=_0x1dfbeb[_0xf07c('0x4a')]['id'];}else{_0xb219d3['id']=_0x1dfbeb['params']['id'];}return db[_0xf07c('0x28')][_0xf07c('0x45')]({'where':_0xb219d3,'attributes':['id',_0xf07c('0x4b'),_0xf07c('0x4c')],'raw':!![]})['then'](handleEntityNotFound(_0x40430c,null))[_0xf07c('0x3c')](function(_0x521ecd){if(_0x521ecd){var _0x16a00d=_0x521ecd[_0xf07c('0x4b')];var _0x1e4ad2=util[_0xf07c('0x4d')]('%s.cypher',_0x16a00d);if(fs[_0xf07c('0x4e')](_0x1e4ad2)){_0x188ac6=!![];return _0x361e94[_0xf07c('0x4f')](_0x1e4ad2,_0x16a00d,config['secrets']['recording'])[_0xf07c('0x3c')](function(){return _0x521ecd;});}return _0x521ecd;}})[_0xf07c('0x3c')](function(_0x430aec){if(_0x430aec){var _0x3821d1=_0x430aec['savePath'];if(!fs[_0xf07c('0x4e')](_0x3821d1)){throw new db[(_0xf07c('0x50'))][(_0xf07c('0x51'))](_0xf07c('0x52'));}if(_0x430aec[_0xf07c('0x4c')]){return _0x40430c[_0xf07c('0x53')](_0x3821d1,_0x430aec[_0xf07c('0x4c')]+path[_0xf07c('0x54')](_0x3821d1),function(){if(_0x188ac6){fs['unlink'](_0x3821d1);}});}else{return _0x40430c['download'](_0x3821d1,function(_0x357929){if(_0x188ac6){fs['unlink'](_0x3821d1);}});}}})[_0xf07c('0x41')](function(_0x505552){if(_0x505552[_0xf07c('0x55')]===_0xf07c('0x52')){_0x40430c['status'](0x194)[_0xf07c('0x25')](_0xf07c('0x56'));}else{return handleError(_0x40430c,null);}});};exports[_0xf07c('0x57')]=function(_0x397ef2,_0x59539a){return db[_0xf07c('0x28')][_0xf07c('0x45')]({'where':{'id':_0x397ef2['params']['id']}})[_0xf07c('0x3c')](function(_0x25b454){if(_['isNil'](_0x25b454)){throw new ReferenceError(_0xf07c('0x58'));}return _0x25b454;})[_0xf07c('0x3c')](function(_0x9577e7){var _0x257e23=_0x9577e7[_0xf07c('0x4b')];logger[_0xf07c('0x59')](_0xf07c('0x5a'),_0x257e23);if(!_[_0xf07c('0x5b')](_0x9577e7[_0xf07c('0x4b')])&&fs[_0xf07c('0x4e')](_0x257e23)){logger['info'](_0xf07c('0x5c')+_0x257e23+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xf07c('0x5d')](_0x257e23);}_0x257e23=_0x257e23+_0xf07c('0x5e');if(!_[_0xf07c('0x5b')](_0x9577e7[_0xf07c('0x4b')])&&fs[_0xf07c('0x4e')](_0x257e23)){logger[_0xf07c('0x59')]('File:\x20\x22'+_0x257e23+_0xf07c('0x5f'));fs[_0xf07c('0x5d')](_0x257e23);}return _0x9577e7;})['then'](function(_0x42ee8d){if(!_0x42ee8d)throw new InternalError();return _0x42ee8d[_0xf07c('0x57')]();})[_0xf07c('0x3c')](function(){_0x59539a[_0xf07c('0x18')](0xcc)['end']();})['catch'](handleError(_0x59539a,null));};