26ca8b8b624f638b7b9f5d910c79f9dbee52402f
[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 _0x79d2=['pick','merge','VIRTUAL','filter','options','includeAll','include','rows','catch','show','params','keys','create','body','find','download','../../components/encryptor','uniqueid','filename','savePath','format','%s.cypher','existsSync','decryptFile','secrets','recording','ValidationError','SquareRecording\x20not\x20found','extname','unlink','Not\x20found','isNil','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','info','File:\x20\x22','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','SquareRecording','fieldName','type','key','model','map','query','filters','attributes','intersection','fields','length','hasOwnProperty','sort','where'];(function(_0x20d096,_0x280505){var _0x2b841a=function(_0x10342b){while(--_0x10342b){_0x20d096['push'](_0x20d096['shift']());}};_0x2b841a(++_0x280505);}(_0x79d2,0x8e));var _0x279d=function(_0x145eae,_0x2fc6a5){_0x145eae=_0x145eae-0x0;var _0x4c6a1f=_0x79d2[_0x145eae];return _0x4c6a1f;};'use strict';var emlformat=require(_0x279d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x279d('0x1'));var jsonpatch=require(_0x279d('0x2'));var rp=require(_0x279d('0x3'));var moment=require(_0x279d('0x4'));var BPromise=require(_0x279d('0x5'));var Mustache=require(_0x279d('0x6'));var util=require(_0x279d('0x7'));var path=require(_0x279d('0x8'));var sox=require(_0x279d('0x9'));var csv=require(_0x279d('0xa'));var ejs=require(_0x279d('0xb'));var fs=require('fs');var fs_extra=require(_0x279d('0xc'));var _=require(_0x279d('0xd'));var squel=require(_0x279d('0xe'));var crypto=require(_0x279d('0xf'));var jsforce=require(_0x279d('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x279d('0xa'));var querystring=require(_0x279d('0x11'));var Papa=require(_0x279d('0x12'));var Redis=require(_0x279d('0x13'));var authService=require(_0x279d('0x14'));var qs=require(_0x279d('0x15'));var as=require(_0x279d('0x16'));var hardwareService=require(_0x279d('0x17'));var logger=require(_0x279d('0x18'))(_0x279d('0x19'));var utils=require(_0x279d('0x1a'));var config=require(_0x279d('0x1b'));var licenseUtil=require(_0x279d('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x214f0a,_0x147320){_0x147320=_0x147320||0xcc;return function(_0x15acae){if(_0x15acae){return _0x214f0a[_0x279d('0x1d')](_0x147320);}return _0x214f0a['status'](_0x147320)[_0x279d('0x1e')]();};}function respondWithResult(_0x35b555,_0x5cb794){_0x5cb794=_0x5cb794||0xc8;return function(_0x487309){if(_0x487309){return _0x35b555[_0x279d('0x1f')](_0x5cb794)[_0x279d('0x20')](_0x487309);}};}function respondWithFilteredResult(_0x1f9a2b,_0x58637e){return function(_0x4deddf){if(_0x4deddf){var _0x2caf46=typeof _0x58637e[_0x279d('0x21')]===_0x279d('0x22')&&typeof _0x58637e[_0x279d('0x23')]===_0x279d('0x22');var _0x9b2369=_0x4deddf[_0x279d('0x24')];var _0x49cacb=_0x2caf46?0x0:_0x58637e['offset'];var _0x156ae1=_0x2caf46?_0x4deddf['count']:_0x58637e['offset']+_0x58637e[_0x279d('0x23')];var _0x5e7aa7;if(_0x156ae1>=_0x9b2369){_0x156ae1=_0x9b2369;_0x5e7aa7=0xc8;}else{_0x5e7aa7=0xce;}_0x1f9a2b[_0x279d('0x1f')](_0x5e7aa7);return _0x1f9a2b[_0x279d('0x25')](_0x279d('0x26'),_0x49cacb+'-'+_0x156ae1+'/'+_0x9b2369)['json'](_0x4deddf);}return null;};}function patchUpdates(_0x5ac877){return function(_0x4e0d11){try{jsonpatch[_0x279d('0x27')](_0x4e0d11,_0x5ac877,!![]);}catch(_0xcb07b4){return BPromise[_0x279d('0x28')](_0xcb07b4);}return _0x4e0d11[_0x279d('0x29')]();};}function saveUpdates(_0x5791f4,_0x1ce1d2){return function(_0x2c4e86){if(_0x2c4e86){return _0x2c4e86[_0x279d('0x2a')](_0x5791f4)[_0x279d('0x2b')](function(_0x29960e){return _0x29960e;});}return null;};}function removeEntity(_0x3350a3,_0xc25067){return function(_0x3e7540){if(_0x3e7540){return _0x3e7540[_0x279d('0x2c')]()['then'](function(){_0x3350a3[_0x279d('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2e5f3e,_0x59c96e){return function(_0x5617d5){if(!_0x5617d5){_0x2e5f3e[_0x279d('0x1d')](0x194);}return _0x5617d5;};}function handleError(_0x36b97d,_0x3e25e2){_0x3e25e2=_0x3e25e2||0x1f4;return function(_0x5617ce){logger[_0x279d('0x2d')](_0x5617ce['stack']);if(_0x5617ce['name']){delete _0x5617ce[_0x279d('0x2e')];}_0x36b97d['status'](_0x3e25e2)[_0x279d('0x2f')](_0x5617ce);};}exports[_0x279d('0x30')]=function(_0x1e6cf5,_0x41ad77){var _0x2fdcb7={},_0xf104e3={},_0x523fdb={'count':0x0,'rows':[]};var _0x1c0939=_['map'](db[_0x279d('0x31')]['rawAttributes'],function(_0x416ece){return{'name':_0x416ece[_0x279d('0x32')],'type':_0x416ece[_0x279d('0x33')][_0x279d('0x34')]};});_0xf104e3[_0x279d('0x35')]=_[_0x279d('0x36')](_0x1c0939,_0x279d('0x2e'));_0xf104e3[_0x279d('0x37')]=_['keys'](_0x1e6cf5['query']);_0xf104e3[_0x279d('0x38')]=_['intersection'](_0xf104e3[_0x279d('0x35')],_0xf104e3[_0x279d('0x37')]);_0x2fdcb7[_0x279d('0x39')]=_[_0x279d('0x3a')](_0xf104e3[_0x279d('0x35')],qs[_0x279d('0x3b')](_0x1e6cf5[_0x279d('0x37')][_0x279d('0x3b')]));_0x2fdcb7['attributes']=_0x2fdcb7['attributes'][_0x279d('0x3c')]?_0x2fdcb7['attributes']:_0xf104e3['model'];if(!_0x1e6cf5[_0x279d('0x37')][_0x279d('0x3d')]('nolimit')){_0x2fdcb7[_0x279d('0x23')]=qs[_0x279d('0x23')](_0x1e6cf5['query'][_0x279d('0x23')]);_0x2fdcb7[_0x279d('0x21')]=qs['offset'](_0x1e6cf5['query'][_0x279d('0x21')]);}_0x2fdcb7['order']=qs['sort'](_0x1e6cf5['query'][_0x279d('0x3e')]);_0x2fdcb7[_0x279d('0x3f')]=qs[_0x279d('0x38')](_[_0x279d('0x40')](_0x1e6cf5[_0x279d('0x37')],_0xf104e3[_0x279d('0x38')]),_0x1c0939);if(_0x1e6cf5['query']['filter']){_0x2fdcb7['where']=_[_0x279d('0x41')](_0x2fdcb7['where'],{'$or':_[_0x279d('0x36')](_0x1c0939,function(_0x484fad){if(_0x484fad[_0x279d('0x33')]!==_0x279d('0x42')){var _0x24391e={};_0x24391e[_0x484fad[_0x279d('0x2e')]]={'$like':'%'+_0x1e6cf5[_0x279d('0x37')][_0x279d('0x43')]+'%'};return _0x24391e;}})});}_0x2fdcb7=_['merge']({},_0x2fdcb7,_0x1e6cf5[_0x279d('0x44')]);var _0x1639e4={'where':_0x2fdcb7[_0x279d('0x3f')]};return db[_0x279d('0x31')][_0x279d('0x24')](_0x1639e4)[_0x279d('0x2b')](function(_0x4964c6){_0x523fdb[_0x279d('0x24')]=_0x4964c6;if(_0x1e6cf5['query'][_0x279d('0x45')]){_0x2fdcb7[_0x279d('0x46')]=[{'all':!![]}];}return db[_0x279d('0x31')]['findAll'](_0x2fdcb7);})[_0x279d('0x2b')](function(_0x66a643){_0x523fdb[_0x279d('0x47')]=_0x66a643;return _0x523fdb;})[_0x279d('0x2b')](respondWithFilteredResult(_0x41ad77,_0x2fdcb7))[_0x279d('0x48')](handleError(_0x41ad77,null));};exports[_0x279d('0x49')]=function(_0x563513,_0x10651f){var _0x495e32={'raw':!![],'where':{'id':_0x563513[_0x279d('0x4a')]['id']}},_0x4430a6={};_0x4430a6[_0x279d('0x35')]=_[_0x279d('0x4b')](db['SquareRecording']['rawAttributes']);_0x4430a6['query']=_[_0x279d('0x4b')](_0x563513[_0x279d('0x37')]);_0x4430a6[_0x279d('0x38')]=_[_0x279d('0x3a')](_0x4430a6['model'],_0x4430a6[_0x279d('0x37')]);_0x495e32['attributes']=_[_0x279d('0x3a')](_0x4430a6[_0x279d('0x35')],qs['fields'](_0x563513[_0x279d('0x37')][_0x279d('0x3b')]));_0x495e32[_0x279d('0x39')]=_0x495e32['attributes'][_0x279d('0x3c')]?_0x495e32[_0x279d('0x39')]:_0x4430a6[_0x279d('0x35')];if(_0x563513['query'][_0x279d('0x45')]){_0x495e32['include']=[{'all':!![]}];}_0x495e32=_['merge']({},_0x495e32,_0x563513[_0x279d('0x44')]);return db[_0x279d('0x31')]['find'](_0x495e32)[_0x279d('0x2b')](handleEntityNotFound(_0x10651f,null))[_0x279d('0x2b')](respondWithResult(_0x10651f,null))[_0x279d('0x48')](handleError(_0x10651f,null));};exports[_0x279d('0x4c')]=function(_0x443a6e,_0x53ec45){return db[_0x279d('0x31')][_0x279d('0x4c')](_0x443a6e['body'],{})[_0x279d('0x2b')](respondWithResult(_0x53ec45,0xc9))['catch'](handleError(_0x53ec45,null));};exports[_0x279d('0x2a')]=function(_0x1a1586,_0x2dc0a8){if(_0x1a1586['body']['id']){delete _0x1a1586[_0x279d('0x4d')]['id'];}return db['SquareRecording'][_0x279d('0x4e')]({'where':{'id':_0x1a1586[_0x279d('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2dc0a8,null))[_0x279d('0x2b')](saveUpdates(_0x1a1586[_0x279d('0x4d')],null))[_0x279d('0x2b')](respondWithResult(_0x2dc0a8,null))[_0x279d('0x48')](handleError(_0x2dc0a8,null));};exports[_0x279d('0x4f')]=function(_0x409bdc,_0x166c9c,_0x17d616){var _0x502f56=require(_0x279d('0x50'));var _0x57e30f=![];var _0x709797={};if(_0x409bdc[_0x279d('0x37')][_0x279d('0x33')]&&_0x409bdc['query'][_0x279d('0x33')]===_0x279d('0x51')){_0x709797[_0x279d('0x51')]=_0x409bdc[_0x279d('0x4a')]['id'];}else{_0x709797['id']=_0x409bdc[_0x279d('0x4a')]['id'];}return db['SquareRecording']['find']({'where':_0x709797,'attributes':['id','savePath',_0x279d('0x52')],'raw':!![]})[_0x279d('0x2b')](handleEntityNotFound(_0x166c9c,null))[_0x279d('0x2b')](function(_0x1169dd){if(_0x1169dd){var _0x5900ca=_0x1169dd[_0x279d('0x53')];var _0x2f082c=util[_0x279d('0x54')](_0x279d('0x55'),_0x5900ca);if(fs[_0x279d('0x56')](_0x2f082c)){_0x57e30f=!![];return _0x502f56[_0x279d('0x57')](_0x2f082c,_0x5900ca,config[_0x279d('0x58')][_0x279d('0x59')])[_0x279d('0x2b')](function(){return _0x1169dd;});}return _0x1169dd;}})[_0x279d('0x2b')](function(_0x1b89cf){if(_0x1b89cf){var _0x927241=_0x1b89cf[_0x279d('0x53')];if(!fs[_0x279d('0x56')](_0x927241)){throw new db['Sequelize'][(_0x279d('0x5a'))](_0x279d('0x5b'));}if(_0x1b89cf[_0x279d('0x52')]){return _0x166c9c['download'](_0x927241,_0x1b89cf[_0x279d('0x52')]+path[_0x279d('0x5c')](_0x927241),function(){if(_0x57e30f){fs['unlink'](_0x927241);}});}else{return _0x166c9c[_0x279d('0x4f')](_0x927241,function(_0x4a112f){if(_0x57e30f){fs[_0x279d('0x5d')](_0x927241);}});}}})[_0x279d('0x48')](function(_0x4580fa){if(_0x4580fa['message']===_0x279d('0x5b')){_0x166c9c['status'](0x194)[_0x279d('0x2f')](_0x279d('0x5e'));}else{return handleError(_0x166c9c,null);}});};exports[_0x279d('0x2c')]=function(_0x3c6d02,_0x136379){return db[_0x279d('0x31')][_0x279d('0x4e')]({'where':{'id':_0x3c6d02[_0x279d('0x4a')]['id']}})['then'](function(_0x1d7f7f){if(_[_0x279d('0x5f')](_0x1d7f7f)){throw new ReferenceError(_0x279d('0x60'));}return _0x1d7f7f;})[_0x279d('0x2b')](function(_0x473138){var _0x2400c2=_0x473138[_0x279d('0x53')];logger['info'](_0x279d('0x61'),_0x2400c2);if(!_[_0x279d('0x5f')](_0x473138[_0x279d('0x53')])&&fs[_0x279d('0x56')](_0x2400c2)){logger[_0x279d('0x62')](_0x279d('0x63')+_0x2400c2+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x2400c2);}_0x2400c2=_0x2400c2+_0x279d('0x64');if(!_[_0x279d('0x5f')](_0x473138[_0x279d('0x53')])&&fs['existsSync'](_0x2400c2)){logger['info']('File:\x20\x22'+_0x2400c2+_0x279d('0x65'));fs[_0x279d('0x66')](_0x2400c2);}return _0x473138;})[_0x279d('0x2b')](function(_0x7fecb4){if(!_0x7fecb4)throw new InternalError();return _0x7fecb4['destroy']();})['then'](function(){_0x136379[_0x279d('0x1f')](0xcc)[_0x279d('0x1e')]();})['catch'](handleError(_0x136379,null));};