42c7fa2c58ec264a6c1f51c3e95149ee29bd7df6
[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 _0xffb0=['ioredis','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','error','stack','send','index','SquareRecording','rawAttributes','type','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','download','uniqueid','savePath','filename','format','%s.cypher','existsSync','secrets','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','message','Not\x20found','isNil','Entity\x20not\x20found','.cypher','File:\x20\x22','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','sox','to-csv','squel','jsforce','desk.js','papaparse'];(function(_0x32c8d5,_0x10fea6){var _0x11d1b7=function(_0x429c97){while(--_0x429c97){_0x32c8d5['push'](_0x32c8d5['shift']());}};_0x11d1b7(++_0x10fea6);}(_0xffb0,0x1a7));var _0x0ffb=function(_0x8009ac,_0xd567a5){_0x8009ac=_0x8009ac-0x0;var _0x23461a=_0xffb0[_0x8009ac];return _0x23461a;};'use strict';var emlformat=require(_0x0ffb('0x0'));var rimraf=require(_0x0ffb('0x1'));var zipdir=require(_0x0ffb('0x2'));var jsonpatch=require(_0x0ffb('0x3'));var rp=require('request-promise');var moment=require(_0x0ffb('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x0ffb('0x5'));var path=require('path');var sox=require(_0x0ffb('0x6'));var csv=require(_0x0ffb('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x0ffb('0x8'));var crypto=require('crypto');var jsforce=require(_0x0ffb('0x9'));var deskjs=require(_0x0ffb('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0ffb('0xb'));var Redis=require(_0x0ffb('0xc'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x0ffb('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x0ffb('0xe'));var utils=require('../../config/utils');var config=require(_0x0ffb('0xf'));var licenseUtil=require(_0x0ffb('0x10'));var db=require(_0x0ffb('0x11'))['db'];function respondWithStatusCode(_0x43bd97,_0x308b17){_0x308b17=_0x308b17||0xcc;return function(_0x27ac61){if(_0x27ac61){return _0x43bd97[_0x0ffb('0x12')](_0x308b17);}return _0x43bd97[_0x0ffb('0x13')](_0x308b17)[_0x0ffb('0x14')]();};}function respondWithResult(_0x1f9ecd,_0x486e64){_0x486e64=_0x486e64||0xc8;return function(_0x50717a){if(_0x50717a){return _0x1f9ecd['status'](_0x486e64)[_0x0ffb('0x15')](_0x50717a);}};}function respondWithFilteredResult(_0x1cf0ca,_0x351a5a){return function(_0x3ed2fe){if(_0x3ed2fe){var _0x4c094d=typeof _0x351a5a[_0x0ffb('0x16')]===_0x0ffb('0x17')&&typeof _0x351a5a[_0x0ffb('0x18')]===_0x0ffb('0x17');var _0x26c416=_0x3ed2fe[_0x0ffb('0x19')];var _0x473b59=_0x4c094d?0x0:_0x351a5a[_0x0ffb('0x16')];var _0x377b2e=_0x4c094d?_0x3ed2fe[_0x0ffb('0x19')]:_0x351a5a[_0x0ffb('0x16')]+_0x351a5a[_0x0ffb('0x18')];var _0x411f91;if(_0x377b2e>=_0x26c416){_0x377b2e=_0x26c416;_0x411f91=0xc8;}else{_0x411f91=0xce;}_0x1cf0ca[_0x0ffb('0x13')](_0x411f91);return _0x1cf0ca['set'](_0x0ffb('0x1a'),_0x473b59+'-'+_0x377b2e+'/'+_0x26c416)[_0x0ffb('0x15')](_0x3ed2fe);}return null;};}function patchUpdates(_0x5c2a9a){return function(_0x1f48c6){try{jsonpatch[_0x0ffb('0x1b')](_0x1f48c6,_0x5c2a9a,!![]);}catch(_0x272922){return BPromise['reject'](_0x272922);}return _0x1f48c6[_0x0ffb('0x1c')]();};}function saveUpdates(_0x249d75,_0x11ea30){return function(_0x3d3a15){if(_0x3d3a15){return _0x3d3a15[_0x0ffb('0x1d')](_0x249d75)[_0x0ffb('0x1e')](function(_0x2c07c4){return _0x2c07c4;});}return null;};}function removeEntity(_0x5a9b9c,_0xbd5ba4){return function(_0x2961a8){if(_0x2961a8){return _0x2961a8[_0x0ffb('0x1f')]()['then'](function(){_0x5a9b9c[_0x0ffb('0x13')](0xcc)[_0x0ffb('0x14')]();});}};}function handleEntityNotFound(_0x39a862,_0x268154){return function(_0x37febe){if(!_0x37febe){_0x39a862[_0x0ffb('0x12')](0x194);}return _0x37febe;};}function handleError(_0x22e9dd,_0xd38fa4){_0xd38fa4=_0xd38fa4||0x1f4;return function(_0x2a7c40){logger[_0x0ffb('0x20')](_0x2a7c40[_0x0ffb('0x21')]);if(_0x2a7c40['name']){delete _0x2a7c40['name'];}_0x22e9dd[_0x0ffb('0x13')](_0xd38fa4)[_0x0ffb('0x22')](_0x2a7c40);};}exports[_0x0ffb('0x23')]=function(_0x485088,_0x5a5da2){var _0x145399={},_0x3d210a={},_0x3fb8bf={'count':0x0,'rows':[]};var _0x4eb41a=_['map'](db[_0x0ffb('0x24')][_0x0ffb('0x25')],function(_0x40bc1a){return{'name':_0x40bc1a['fieldName'],'type':_0x40bc1a[_0x0ffb('0x26')][_0x0ffb('0x27')]};});_0x3d210a[_0x0ffb('0x28')]=_[_0x0ffb('0x29')](_0x4eb41a,_0x0ffb('0x2a'));_0x3d210a[_0x0ffb('0x2b')]=_[_0x0ffb('0x2c')](_0x485088[_0x0ffb('0x2b')]);_0x3d210a[_0x0ffb('0x2d')]=_[_0x0ffb('0x2e')](_0x3d210a['model'],_0x3d210a[_0x0ffb('0x2b')]);_0x145399[_0x0ffb('0x2f')]=_[_0x0ffb('0x2e')](_0x3d210a[_0x0ffb('0x28')],qs['fields'](_0x485088[_0x0ffb('0x2b')][_0x0ffb('0x30')]));_0x145399[_0x0ffb('0x2f')]=_0x145399[_0x0ffb('0x2f')][_0x0ffb('0x31')]?_0x145399[_0x0ffb('0x2f')]:_0x3d210a[_0x0ffb('0x28')];if(!_0x485088['query'][_0x0ffb('0x32')]('nolimit')){_0x145399[_0x0ffb('0x18')]=qs[_0x0ffb('0x18')](_0x485088['query'][_0x0ffb('0x18')]);_0x145399[_0x0ffb('0x16')]=qs[_0x0ffb('0x16')](_0x485088[_0x0ffb('0x2b')][_0x0ffb('0x16')]);}_0x145399['order']=qs[_0x0ffb('0x33')](_0x485088[_0x0ffb('0x2b')][_0x0ffb('0x33')]);_0x145399[_0x0ffb('0x34')]=qs[_0x0ffb('0x2d')](_[_0x0ffb('0x35')](_0x485088[_0x0ffb('0x2b')],_0x3d210a[_0x0ffb('0x2d')]),_0x4eb41a);if(_0x485088[_0x0ffb('0x2b')][_0x0ffb('0x36')]){_0x145399['where']=_[_0x0ffb('0x37')](_0x145399['where'],{'$or':_[_0x0ffb('0x29')](_0x4eb41a,function(_0x2b2202){if(_0x2b2202[_0x0ffb('0x26')]!=='VIRTUAL'){var _0x37dd85={};_0x37dd85[_0x2b2202[_0x0ffb('0x2a')]]={'$like':'%'+_0x485088[_0x0ffb('0x2b')][_0x0ffb('0x36')]+'%'};return _0x37dd85;}})});}_0x145399=_[_0x0ffb('0x37')]({},_0x145399,_0x485088['options']);var _0x346071={'where':_0x145399[_0x0ffb('0x34')]};return db['SquareRecording']['count'](_0x346071)[_0x0ffb('0x1e')](function(_0x470b79){_0x3fb8bf[_0x0ffb('0x19')]=_0x470b79;if(_0x485088[_0x0ffb('0x2b')][_0x0ffb('0x38')]){_0x145399[_0x0ffb('0x39')]=[{'all':!![]}];}return db[_0x0ffb('0x24')][_0x0ffb('0x3a')](_0x145399);})['then'](function(_0x4e4861){_0x3fb8bf[_0x0ffb('0x3b')]=_0x4e4861;return _0x3fb8bf;})[_0x0ffb('0x1e')](respondWithFilteredResult(_0x5a5da2,_0x145399))[_0x0ffb('0x3c')](handleError(_0x5a5da2,null));};exports[_0x0ffb('0x3d')]=function(_0x3097b0,_0x21e889){var _0x58796c={'raw':!![],'where':{'id':_0x3097b0[_0x0ffb('0x3e')]['id']}},_0x7fd2b9={};_0x7fd2b9[_0x0ffb('0x28')]=_[_0x0ffb('0x2c')](db[_0x0ffb('0x24')][_0x0ffb('0x25')]);_0x7fd2b9[_0x0ffb('0x2b')]=_[_0x0ffb('0x2c')](_0x3097b0['query']);_0x7fd2b9[_0x0ffb('0x2d')]=_[_0x0ffb('0x2e')](_0x7fd2b9[_0x0ffb('0x28')],_0x7fd2b9[_0x0ffb('0x2b')]);_0x58796c[_0x0ffb('0x2f')]=_['intersection'](_0x7fd2b9[_0x0ffb('0x28')],qs[_0x0ffb('0x30')](_0x3097b0[_0x0ffb('0x2b')][_0x0ffb('0x30')]));_0x58796c['attributes']=_0x58796c[_0x0ffb('0x2f')][_0x0ffb('0x31')]?_0x58796c[_0x0ffb('0x2f')]:_0x7fd2b9['model'];if(_0x3097b0[_0x0ffb('0x2b')]['includeAll']){_0x58796c[_0x0ffb('0x39')]=[{'all':!![]}];}_0x58796c=_[_0x0ffb('0x37')]({},_0x58796c,_0x3097b0[_0x0ffb('0x3f')]);return db[_0x0ffb('0x24')][_0x0ffb('0x40')](_0x58796c)[_0x0ffb('0x1e')](handleEntityNotFound(_0x21e889,null))['then'](respondWithResult(_0x21e889,null))[_0x0ffb('0x3c')](handleError(_0x21e889,null));};exports[_0x0ffb('0x41')]=function(_0x5469d3,_0x1cce3b){return db['SquareRecording'][_0x0ffb('0x41')](_0x5469d3['body'],{})[_0x0ffb('0x1e')](respondWithResult(_0x1cce3b,0xc9))['catch'](handleError(_0x1cce3b,null));};exports[_0x0ffb('0x1d')]=function(_0x5e0df5,_0x3afbc5){if(_0x5e0df5[_0x0ffb('0x42')]['id']){delete _0x5e0df5[_0x0ffb('0x42')]['id'];}return db[_0x0ffb('0x24')][_0x0ffb('0x40')]({'where':{'id':_0x5e0df5[_0x0ffb('0x3e')]['id']}})[_0x0ffb('0x1e')](handleEntityNotFound(_0x3afbc5,null))[_0x0ffb('0x1e')](saveUpdates(_0x5e0df5[_0x0ffb('0x42')],null))[_0x0ffb('0x1e')](respondWithResult(_0x3afbc5,null))[_0x0ffb('0x3c')](handleError(_0x3afbc5,null));};exports[_0x0ffb('0x43')]=function(_0xd15b12,_0x9179f6,_0x12280d){var _0x1ab1d6=require('../../components/encryptor');var _0x25c9ed=![];var _0x12b7a0={};if(_0xd15b12[_0x0ffb('0x2b')][_0x0ffb('0x26')]&&_0xd15b12[_0x0ffb('0x2b')]['type']===_0x0ffb('0x44')){_0x12b7a0[_0x0ffb('0x44')]=_0xd15b12[_0x0ffb('0x3e')]['id'];}else{_0x12b7a0['id']=_0xd15b12[_0x0ffb('0x3e')]['id'];}return db[_0x0ffb('0x24')][_0x0ffb('0x40')]({'where':_0x12b7a0,'attributes':['id',_0x0ffb('0x45'),_0x0ffb('0x46')],'raw':!![]})[_0x0ffb('0x1e')](handleEntityNotFound(_0x9179f6,null))[_0x0ffb('0x1e')](function(_0x371617){if(_0x371617){var _0x4541e5=_0x371617[_0x0ffb('0x45')];var _0x89e39b=util[_0x0ffb('0x47')](_0x0ffb('0x48'),_0x4541e5);if(fs[_0x0ffb('0x49')](_0x89e39b)){_0x25c9ed=!![];return _0x1ab1d6['decryptFile'](_0x89e39b,_0x4541e5,config[_0x0ffb('0x4a')][_0x0ffb('0x4b')])[_0x0ffb('0x1e')](function(){return _0x371617;});}return _0x371617;}})[_0x0ffb('0x1e')](function(_0x107acd){if(_0x107acd){var _0x1b8778=_0x107acd['savePath'];if(!fs[_0x0ffb('0x49')](_0x1b8778)){throw new db[(_0x0ffb('0x4c'))][(_0x0ffb('0x4d'))](_0x0ffb('0x4e'));}if(_0x107acd[_0x0ffb('0x46')]){return _0x9179f6[_0x0ffb('0x43')](_0x1b8778,_0x107acd[_0x0ffb('0x46')]+path[_0x0ffb('0x4f')](_0x1b8778),function(){if(_0x25c9ed){fs['unlink'](_0x1b8778);}});}else{return _0x9179f6[_0x0ffb('0x43')](_0x1b8778,function(_0x448cdc){if(_0x25c9ed){fs[_0x0ffb('0x50')](_0x1b8778);}});}}})[_0x0ffb('0x3c')](function(_0x59b6ba){if(_0x59b6ba[_0x0ffb('0x51')]===_0x0ffb('0x4e')){_0x9179f6['status'](0x194)['send'](_0x0ffb('0x52'));}else{return handleError(_0x9179f6,null);}});};exports[_0x0ffb('0x1f')]=function(_0x934b2b,_0x501bee){return db[_0x0ffb('0x24')]['find']({'where':{'id':_0x934b2b['params']['id']}})[_0x0ffb('0x1e')](function(_0xb2fa17){if(_[_0x0ffb('0x53')](_0xb2fa17)){throw new ReferenceError(_0x0ffb('0x54'));}return _0xb2fa17;})[_0x0ffb('0x1e')](function(_0x4cc475){var _0x271401=_0x4cc475['savePath'];logger['info']('cancellazione\x20fisica\x20documento\x20%s',_0x271401);if(!_[_0x0ffb('0x53')](_0x4cc475[_0x0ffb('0x45')])&&fs[_0x0ffb('0x49')](_0x271401)){logger['info']('File:\x20\x22'+_0x271401+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x271401);}_0x271401=_0x271401+_0x0ffb('0x55');if(!_['isNil'](_0x4cc475[_0x0ffb('0x45')])&&fs[_0x0ffb('0x49')](_0x271401)){logger['info'](_0x0ffb('0x56')+_0x271401+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x271401);}return _0x4cc475;})['then'](function(_0x3c9eb3){if(!_0x3c9eb3)throw new InternalError();return _0x3c9eb3['destroy']();})[_0x0ffb('0x1e')](function(){_0x501bee[_0x0ffb('0x13')](0xcc)[_0x0ffb('0x14')]();})[_0x0ffb('0x3c')](handleError(_0x501bee,null));};