e2fdc2764dd56c3262c2d4f415ef81c4ead698ff
[motion2.git] / server / api / voiceRecording / voiceRecording.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 _0x23d7=['path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','end','json','count','offset','limit','status','Content-Range','save','update','then','destroy','sendStatus','error','stack','name','send','index','rawAttributes','fieldName','type','key','differenceBy','format','query','keys','model','fields','attributes','length','nolimit','sort','where','filters','pick','filter','map','VIRTUAL','merge','options','VoiceRecording','includeAll','findAll','catch','show','params','intersection','include','find','body','describe','download','../../components/encryptor','uniqueid','value','%s.cypher','existsSync','decryptFile','recording','Sequelize','ValidationError','VoiceRecording\x20not\x20found','filename','extname','unlink','Not\x20found','downloads','sequelize','MD5','col','token','$and','push','secrets','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache'];(function(_0x4991d6,_0x348deb){var _0x50faf7=function(_0x14c7f8){while(--_0x14c7f8){_0x4991d6['push'](_0x4991d6['shift']());}};_0x50faf7(++_0x348deb);}(_0x23d7,0x128));var _0x723d=function(_0x4bb3de,_0x230ba2){_0x4bb3de=_0x4bb3de-0x0;var _0xe27505=_0x23d7[_0x4bb3de];return _0xe27505;};'use strict';var pdf=require(_0x723d('0x0'));var emlformat=require(_0x723d('0x1'));var rimraf=require(_0x723d('0x2'));var zipdir=require(_0x723d('0x3'));var jsonpatch=require(_0x723d('0x4'));var rp=require('request-promise');var moment=require(_0x723d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x723d('0x6'));var util=require('util');var path=require(_0x723d('0x7'));var sox=require(_0x723d('0x8'));var csv=require(_0x723d('0x9'));var ejs=require(_0x723d('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x723d('0xb'));var crypto=require(_0x723d('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x723d('0xd'));var toCsv=require(_0x723d('0x9'));var querystring=require(_0x723d('0xe'));var Papa=require('papaparse');var Redis=require(_0x723d('0xf'));var authService=require(_0x723d('0x10'));var qs=require(_0x723d('0x11'));var as=require(_0x723d('0x12'));var hardwareService=require(_0x723d('0x13'));var logger=require('../../config/logger')(_0x723d('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x723d('0x15'))['db'];function respondWithStatusCode(_0x438672,_0x45dc8e){_0x45dc8e=_0x45dc8e||0xcc;return function(_0x593e07){if(_0x593e07){return _0x438672['sendStatus'](_0x45dc8e);}return _0x438672['status'](_0x45dc8e)[_0x723d('0x16')]();};}function respondWithResult(_0x5b1d24,_0xe7286c){_0xe7286c=_0xe7286c||0xc8;return function(_0x4d0ab8){if(_0x4d0ab8){return _0x5b1d24['status'](_0xe7286c)[_0x723d('0x17')](_0x4d0ab8);}};}function respondWithFilteredResult(_0x4cac3c,_0x173125){return function(_0xadd824){if(_0xadd824){var _0x439d38=_0xadd824[_0x723d('0x18')],_0xb678f6=_0x173125[_0x723d('0x19')],_0x13ac60=_0x173125[_0x723d('0x19')]+_0x173125[_0x723d('0x1a')],_0x2c1ff1;if(_0x13ac60>=_0x439d38){_0x13ac60=_0x439d38;_0x2c1ff1=0xc8;}else{_0x2c1ff1=0xce;}_0x4cac3c[_0x723d('0x1b')](_0x2c1ff1);return _0x4cac3c['set'](_0x723d('0x1c'),_0xb678f6+'-'+_0x13ac60+'/'+_0x439d38)[_0x723d('0x17')](_0xadd824);}return null;};}function patchUpdates(_0x1c159d){return function(_0x1dd4fa){try{jsonpatch['apply'](_0x1dd4fa,_0x1c159d,!![]);}catch(_0x2143f3){return BPromise['reject'](_0x2143f3);}return _0x1dd4fa[_0x723d('0x1d')]();};}function saveUpdates(_0x42cc4c,_0x333bda){return function(_0x5a413c){if(_0x5a413c){return _0x5a413c[_0x723d('0x1e')](_0x42cc4c)[_0x723d('0x1f')](function(_0x2e2242){return _0x2e2242;});}return null;};}function removeEntity(_0x480da4,_0x135fcd){return function(_0x4fde38){if(_0x4fde38){return _0x4fde38[_0x723d('0x20')]()[_0x723d('0x1f')](function(){_0x480da4['status'](0xcc)[_0x723d('0x16')]();});}};}function handleEntityNotFound(_0xf77fdd,_0x3b49c0){return function(_0x393677){if(!_0x393677){_0xf77fdd[_0x723d('0x21')](0x194);}return _0x393677;};}function handleError(_0x1b2e3b,_0x1e6706){_0x1e6706=_0x1e6706||0x1f4;return function(_0x5bedf9){logger[_0x723d('0x22')](_0x5bedf9[_0x723d('0x23')]);if(_0x5bedf9[_0x723d('0x24')]){delete _0x5bedf9[_0x723d('0x24')];}_0x1b2e3b[_0x723d('0x1b')](_0x1e6706)[_0x723d('0x25')](_0x5bedf9);};}exports[_0x723d('0x26')]=function(_0x1f8a4f,_0x2ee1ef){var _0x38ebdc={},_0x109f1f={},_0x3846ad={'count':0x0,'rows':[]};var _0x49ac33=_['map'](db['VoiceRecording'][_0x723d('0x27')],function(_0x63aa16){return{'name':_0x63aa16[_0x723d('0x28')],'type':_0x63aa16[_0x723d('0x29')][_0x723d('0x2a')]};});_0x109f1f['model']=_[_0x723d('0x2b')](_['map'](_0x49ac33,_0x723d('0x24')),[_0x723d('0x2c')]);_0x109f1f[_0x723d('0x2d')]=_[_0x723d('0x2e')](_0x1f8a4f[_0x723d('0x2d')]);_0x109f1f['filters']=_['intersection'](_0x109f1f[_0x723d('0x2f')],_0x109f1f[_0x723d('0x2d')]);_0x38ebdc['attributes']=_['intersection'](_0x109f1f[_0x723d('0x2f')],qs['fields'](_0x1f8a4f[_0x723d('0x2d')][_0x723d('0x30')]));_0x38ebdc[_0x723d('0x31')]=_0x38ebdc[_0x723d('0x31')][_0x723d('0x32')]?_0x38ebdc[_0x723d('0x31')]:_0x109f1f[_0x723d('0x2f')];if(!_0x1f8a4f['query']['hasOwnProperty'](_0x723d('0x33'))){_0x38ebdc[_0x723d('0x1a')]=qs[_0x723d('0x1a')](_0x1f8a4f['query'][_0x723d('0x1a')]);_0x38ebdc['offset']=qs[_0x723d('0x19')](_0x1f8a4f[_0x723d('0x2d')][_0x723d('0x19')]);}_0x38ebdc['order']=qs[_0x723d('0x34')](_0x1f8a4f['query']['sort']);_0x38ebdc[_0x723d('0x35')]=qs[_0x723d('0x36')](_[_0x723d('0x37')](_0x1f8a4f[_0x723d('0x2d')],_0x109f1f['filters']));if(_0x1f8a4f['query'][_0x723d('0x38')]){_0x38ebdc[_0x723d('0x35')]=_['merge'](_0x38ebdc[_0x723d('0x35')],{'$or':_[_0x723d('0x39')](_0x49ac33,function(_0x1dad2a){if(_0x1dad2a[_0x723d('0x29')]!==_0x723d('0x3a')){var _0x4e17e2={};_0x4e17e2[_0x1dad2a['name']]={'$like':'%'+_0x1f8a4f[_0x723d('0x2d')]['filter']+'%'};return _0x4e17e2;}})});}_0x38ebdc=_[_0x723d('0x3b')]({},_0x38ebdc,_0x1f8a4f[_0x723d('0x3c')]);var _0x1a7eb7={'where':_0x38ebdc['where']};return db[_0x723d('0x3d')]['count'](_0x1a7eb7)[_0x723d('0x1f')](function(_0x52de59){_0x3846ad[_0x723d('0x18')]=_0x52de59;if(_0x1f8a4f[_0x723d('0x2d')][_0x723d('0x3e')]){_0x38ebdc['include']=[{'all':!![]}];}return db[_0x723d('0x3d')][_0x723d('0x3f')](_0x38ebdc);})[_0x723d('0x1f')](function(_0x561af2){_0x3846ad['rows']=_0x561af2;return _0x3846ad;})[_0x723d('0x1f')](respondWithFilteredResult(_0x2ee1ef,_0x38ebdc))[_0x723d('0x40')](handleError(_0x2ee1ef,null));};exports[_0x723d('0x41')]=function(_0x488c0b,_0x15cd1b){var _0x1ca0cb={'raw':![],'where':{'id':_0x488c0b[_0x723d('0x42')]['id']}},_0x379ff5={};_0x379ff5[_0x723d('0x2f')]=_[_0x723d('0x2e')](db[_0x723d('0x3d')][_0x723d('0x27')]);_0x379ff5['query']=_[_0x723d('0x2e')](_0x488c0b['query']);_0x379ff5['filters']=_['intersection'](_0x379ff5[_0x723d('0x2f')],_0x379ff5['query']);_0x1ca0cb[_0x723d('0x31')]=_[_0x723d('0x43')](_0x379ff5[_0x723d('0x2f')],qs['fields'](_0x488c0b['query'][_0x723d('0x30')]));_0x1ca0cb[_0x723d('0x31')]=_0x1ca0cb[_0x723d('0x31')][_0x723d('0x32')]?_0x1ca0cb[_0x723d('0x31')]:_0x379ff5['model'];if(_0x488c0b[_0x723d('0x2d')][_0x723d('0x3e')]){_0x1ca0cb[_0x723d('0x44')]=[{'all':!![]}];}_0x1ca0cb=_['merge']({},_0x1ca0cb,_0x488c0b['options']);return db[_0x723d('0x3d')][_0x723d('0x45')](_0x1ca0cb)[_0x723d('0x1f')](handleEntityNotFound(_0x15cd1b,null))[_0x723d('0x1f')](respondWithResult(_0x15cd1b,null))[_0x723d('0x40')](handleError(_0x15cd1b,null));};exports['create']=function(_0x824809,_0x18ce0b){return db[_0x723d('0x3d')]['create'](_0x824809[_0x723d('0x46')],{})[_0x723d('0x1f')](respondWithResult(_0x18ce0b,0xc9))[_0x723d('0x40')](handleError(_0x18ce0b,null));};exports[_0x723d('0x1e')]=function(_0x1dda25,_0x30ad97){if(_0x1dda25[_0x723d('0x46')]['id']){delete _0x1dda25[_0x723d('0x46')]['id'];}return db[_0x723d('0x3d')][_0x723d('0x45')]({'where':{'id':_0x1dda25[_0x723d('0x42')]['id']}})['then'](handleEntityNotFound(_0x30ad97,null))['then'](saveUpdates(_0x1dda25[_0x723d('0x46')],null))['then'](respondWithResult(_0x30ad97,null))[_0x723d('0x40')](handleError(_0x30ad97,null));};exports['describe']=function(_0xa8ccb2,_0x1ce195){return db[_0x723d('0x3d')][_0x723d('0x47')]()[_0x723d('0x1f')](respondWithResult(_0x1ce195,null))[_0x723d('0x40')](handleError(_0x1ce195,null));};exports[_0x723d('0x48')]=function(_0x28f1c8,_0x117734,_0x2005f3){var _0x1f655a=require(_0x723d('0x49'));var _0x18d709=![];var _0x30fc08={};if(_0x28f1c8['query']['type']&&_0x28f1c8[_0x723d('0x2d')][_0x723d('0x29')]==='uniqueid'){_0x30fc08[_0x723d('0x4a')]=_0x28f1c8['params']['id'];}else{_0x30fc08['id']=_0x28f1c8[_0x723d('0x42')]['id'];}return db[_0x723d('0x3d')]['find']({'where':_0x30fc08,'attributes':['id',_0x723d('0x4b')],'raw':!![]})[_0x723d('0x1f')](handleEntityNotFound(_0x117734,null))[_0x723d('0x1f')](function(_0xb39a6a){if(_0xb39a6a){var _0x32b49d=_0xb39a6a[_0x723d('0x4b')];var _0x231785=util[_0x723d('0x2c')](_0x723d('0x4c'),_0x32b49d);if(fs[_0x723d('0x4d')](_0x231785)){_0x18d709=!![];return _0x1f655a[_0x723d('0x4e')](_0x231785,_0x32b49d,config['secrets'][_0x723d('0x4f')])[_0x723d('0x1f')](function(){return _0xb39a6a;});}return _0xb39a6a;}})[_0x723d('0x1f')](function(_0x198db6){if(_0x198db6){var _0x14f514=_0x198db6['value'];if(!fs['existsSync'](_0x14f514)){throw new db[(_0x723d('0x50'))][(_0x723d('0x51'))](_0x723d('0x52'));}if(_0x198db6[_0x723d('0x53')]){return _0x117734[_0x723d('0x48')](_0x14f514,_0x198db6[_0x723d('0x53')]+path[_0x723d('0x54')](_0x14f514),function(){if(_0x18d709){fs[_0x723d('0x55')](_0x14f514);}});}else{return _0x117734[_0x723d('0x48')](_0x14f514,function(_0xe6628a){if(_0x18d709){fs[_0x723d('0x55')](_0x14f514);}});}}})[_0x723d('0x40')](function(_0x479943){if(_0x479943['message']===_0x723d('0x52')){_0x117734[_0x723d('0x1b')](0x194)[_0x723d('0x25')](_0x723d('0x56'));}else{return handleError(_0x117734,null);}});};exports[_0x723d('0x57')]=function(_0x17484b,_0xe214e8,_0x4acb65){var _0x23b6b5=require(_0x723d('0x49'));var _0x40e203=![];var _0x2c03cf={'$and':[db['sequelize'][_0x723d('0x35')](db[_0x723d('0x58')]['fn'](_0x723d('0x59'),db[_0x723d('0x58')][_0x723d('0x5a')](_0x723d('0x4a'))),_0x17484b[_0x723d('0x2d')][_0x723d('0x5b')])]};if(_0x17484b['query'][_0x723d('0x29')]&&_0x17484b[_0x723d('0x2d')][_0x723d('0x29')]===_0x723d('0x4a')){_0x2c03cf[_0x723d('0x5c')][_0x723d('0x5d')]({'uniqueid':_0x17484b['params']['id']});}else{_0x2c03cf[_0x723d('0x5c')][_0x723d('0x5d')]({'id':_0x17484b[_0x723d('0x42')]['id']});}return db[_0x723d('0x3d')][_0x723d('0x45')]({'where':_0x2c03cf,'attributes':['id',_0x723d('0x4b')],'raw':!![]})[_0x723d('0x1f')](handleEntityNotFound(_0xe214e8,null))[_0x723d('0x1f')](function(_0x5e688f){if(_0x5e688f){var _0xb1554b=util['format'](_0x723d('0x4c'),_0x5e688f[_0x723d('0x4b')]);if(fs[_0x723d('0x4d')](_0xb1554b)){_0x40e203=!![];return _0x23b6b5[_0x723d('0x4e')](_0xb1554b,_0x5e688f[_0x723d('0x4b')],config[_0x723d('0x5e')][_0x723d('0x4f')])[_0x723d('0x1f')](function(){return _0x5e688f;});}return _0x5e688f;}})['then'](function(_0x46700e){if(_0x46700e){if(!fs[_0x723d('0x4d')](_0x46700e[_0x723d('0x4b')])){throw new db[(_0x723d('0x50'))][(_0x723d('0x51'))](_0x723d('0x52'));}if(_0x46700e[_0x723d('0x53')]){return _0xe214e8['download'](_0x46700e[_0x723d('0x4b')],_0x46700e['filename']+path['extname'](_0x46700e[_0x723d('0x4b')]),function(){if(_0x40e203){fs[_0x723d('0x55')](_0x46700e[_0x723d('0x4b')]);}});}else{return _0xe214e8['download'](_0x46700e['value'],function(_0x224453){if(_0x40e203){fs['unlink'](_0x46700e[_0x723d('0x4b')]);}});}}})[_0x723d('0x40')](handleError(_0xe214e8,null));};exports[_0x723d('0x20')]=function(_0x265181,_0x74ed0c){return db[_0x723d('0x3d')]['find']({'where':{'id':_0x265181[_0x723d('0x42')]['id']}})[_0x723d('0x1f')](function(_0x4798af){if(!_0x4798af)throw new ReferenceError('Entity\x20not\x20found');return _0x4798af;})[_0x723d('0x1f')](function(_0x36406c){var _0x5b4f99=_0x36406c[_0x723d('0x4b')];logger[_0x723d('0x5f')](_0x723d('0x60'),_0x5b4f99);if(!_['isNil'](_0x36406c[_0x723d('0x4b')])&&fs[_0x723d('0x4d')](_0x5b4f99)){logger['info'](_0x723d('0x61')+_0x5b4f99+_0x723d('0x62'));fs['unlinkSync'](_0x5b4f99);}_0x5b4f99=_0x5b4f99+_0x723d('0x63');if(!_['isNil'](_0x36406c[_0x723d('0x4b')])&&fs[_0x723d('0x4d')](_0x5b4f99)){logger['info'](_0x723d('0x61')+_0x5b4f99+_0x723d('0x62'));fs[_0x723d('0x64')](_0x5b4f99);}return _0x36406c;})[_0x723d('0x1f')](function(_0xffd9d6){if(!_0xffd9d6)throw new InternalError();return _0xffd9d6[_0x723d('0x20')]();})[_0x723d('0x1f')](function(){_0x74ed0c[_0x723d('0x1b')](0xcc)[_0x723d('0x16')]();})['catch'](handleError(_0x74ed0c,null));};