Built motion from commit (unavailable).|2.4.20
[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 _0x9aa1=['squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','sendStatus','error','index','VoiceRecording','fieldName','type','key','differenceBy','name','format','query','keys','filters','attributes','intersection','model','fields','hasOwnProperty','sort','pick','filter','where','merge','map','VIRTUAL','options','include','findAll','rows','show','params','length','includeAll','create','body','catch','find','describe','../../components/encryptor','uniqueid','value','decryptFile','secrets','existsSync','VoiceRecording\x20not\x20found','filename','download','extname','unlink','send','downloads','sequelize','MD5','token','push','$and','%s.cypher','recording','Sequelize','destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','end','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash'];(function(_0x2c1eae,_0x24a74f){var _0x1d3494=function(_0x53aeae){while(--_0x53aeae){_0x2c1eae['push'](_0x2c1eae['shift']());}};_0x1d3494(++_0x24a74f);}(_0x9aa1,0x12e));var _0x19aa=function(_0x7ddd81,_0x4c65e1){_0x7ddd81=_0x7ddd81-0x0;var _0x2d5688=_0x9aa1[_0x7ddd81];return _0x2d5688;};'use strict';var pdf=require(_0x19aa('0x0'));var emlformat=require(_0x19aa('0x1'));var rimraf=require(_0x19aa('0x2'));var zipdir=require(_0x19aa('0x3'));var jsonpatch=require(_0x19aa('0x4'));var rp=require(_0x19aa('0x5'));var moment=require(_0x19aa('0x6'));var BPromise=require(_0x19aa('0x7'));var Mustache=require(_0x19aa('0x8'));var util=require(_0x19aa('0x9'));var path=require('path');var sox=require('sox');var csv=require(_0x19aa('0xa'));var ejs=require(_0x19aa('0xb'));var fs=require('fs');var _=require(_0x19aa('0xc'));var squel=require(_0x19aa('0xd'));var crypto=require(_0x19aa('0xe'));var jsforce=require(_0x19aa('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x19aa('0xa'));var querystring=require(_0x19aa('0x10'));var Papa=require(_0x19aa('0x11'));var Redis=require(_0x19aa('0x12'));var authService=require(_0x19aa('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x19aa('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x19aa('0x15'))(_0x19aa('0x16'));var utils=require('../../config/utils');var config=require(_0x19aa('0x17'));var db=require(_0x19aa('0x18'))['db'];function respondWithStatusCode(_0x53be8c,_0x53ca2d){_0x53ca2d=_0x53ca2d||0xcc;return function(_0x418151){if(_0x418151){return _0x53be8c['sendStatus'](_0x53ca2d);}return _0x53be8c[_0x19aa('0x19')](_0x53ca2d)['end']();};}function respondWithResult(_0x59696d,_0x5a4545){_0x5a4545=_0x5a4545||0xc8;return function(_0x1c1cfd){if(_0x1c1cfd){return _0x59696d[_0x19aa('0x19')](_0x5a4545)[_0x19aa('0x1a')](_0x1c1cfd);}};}function respondWithFilteredResult(_0x30ed66,_0x4c8737){return function(_0x27d2b2){if(_0x27d2b2){var _0x55c6df=_0x27d2b2[_0x19aa('0x1b')],_0x4bbca7=_0x4c8737[_0x19aa('0x1c')],_0x20169b=_0x4c8737[_0x19aa('0x1c')]+_0x4c8737[_0x19aa('0x1d')],_0x1f8e1f;if(_0x20169b>=_0x55c6df){_0x20169b=_0x55c6df;_0x1f8e1f=0xc8;}else{_0x1f8e1f=0xce;}_0x30ed66[_0x19aa('0x19')](_0x1f8e1f);return _0x30ed66[_0x19aa('0x1e')](_0x19aa('0x1f'),_0x4bbca7+'-'+_0x20169b+'/'+_0x55c6df)[_0x19aa('0x1a')](_0x27d2b2);}return null;};}function patchUpdates(_0x518ab7){return function(_0x43858f){try{jsonpatch[_0x19aa('0x20')](_0x43858f,_0x518ab7,!![]);}catch(_0x2c2828){return BPromise[_0x19aa('0x21')](_0x2c2828);}return _0x43858f[_0x19aa('0x22')]();};}function saveUpdates(_0x308a45,_0xcea139){return function(_0x4d05ad){if(_0x4d05ad){return _0x4d05ad[_0x19aa('0x23')](_0x308a45)[_0x19aa('0x24')](function(_0x585464){return _0x585464;});}return null;};}function removeEntity(_0x68f79a,_0x27b433){return function(_0x598c4d){if(_0x598c4d){return _0x598c4d['destroy']()[_0x19aa('0x24')](function(){_0x68f79a[_0x19aa('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x59f471,_0x4d23d8){return function(_0x5cec76){if(!_0x5cec76){_0x59f471[_0x19aa('0x25')](0x194);}return _0x5cec76;};}function handleError(_0x48d65c,_0x5011a4){_0x5011a4=_0x5011a4||0x1f4;return function(_0x28afbe){logger[_0x19aa('0x26')](_0x28afbe['stack']);if(_0x28afbe['name']){delete _0x28afbe['name'];}_0x48d65c[_0x19aa('0x19')](_0x5011a4)['send'](_0x28afbe);};}exports[_0x19aa('0x27')]=function(_0x54e302,_0x2b2a09){var _0x231e5e={},_0xa64a43={},_0x531773={'count':0x0,'rows':[]};var _0x423ba4=_['map'](db[_0x19aa('0x28')]['rawAttributes'],function(_0x1038ef){return{'name':_0x1038ef[_0x19aa('0x29')],'type':_0x1038ef[_0x19aa('0x2a')][_0x19aa('0x2b')]};});_0xa64a43['model']=_[_0x19aa('0x2c')](_['map'](_0x423ba4,_0x19aa('0x2d')),[_0x19aa('0x2e')]);_0xa64a43[_0x19aa('0x2f')]=_[_0x19aa('0x30')](_0x54e302['query']);_0xa64a43[_0x19aa('0x31')]=_['intersection'](_0xa64a43['model'],_0xa64a43[_0x19aa('0x2f')]);_0x231e5e[_0x19aa('0x32')]=_[_0x19aa('0x33')](_0xa64a43[_0x19aa('0x34')],qs[_0x19aa('0x35')](_0x54e302[_0x19aa('0x2f')]['fields']));_0x231e5e[_0x19aa('0x32')]=_0x231e5e[_0x19aa('0x32')]['length']?_0x231e5e['attributes']:_0xa64a43[_0x19aa('0x34')];if(!_0x54e302['query'][_0x19aa('0x36')]('nolimit')){_0x231e5e[_0x19aa('0x1d')]=qs['limit'](_0x54e302[_0x19aa('0x2f')][_0x19aa('0x1d')]);_0x231e5e[_0x19aa('0x1c')]=qs[_0x19aa('0x1c')](_0x54e302['query'][_0x19aa('0x1c')]);}_0x231e5e['order']=qs['sort'](_0x54e302[_0x19aa('0x2f')][_0x19aa('0x37')]);_0x231e5e['where']=qs[_0x19aa('0x31')](_[_0x19aa('0x38')](_0x54e302['query'],_0xa64a43[_0x19aa('0x31')]));if(_0x54e302[_0x19aa('0x2f')][_0x19aa('0x39')]){_0x231e5e[_0x19aa('0x3a')]=_[_0x19aa('0x3b')](_0x231e5e[_0x19aa('0x3a')],{'$or':_[_0x19aa('0x3c')](_0x423ba4,function(_0x1260a3){if(_0x1260a3['type']!==_0x19aa('0x3d')){var _0x5db6d7={};_0x5db6d7[_0x1260a3[_0x19aa('0x2d')]]={'$like':'%'+_0x54e302[_0x19aa('0x2f')][_0x19aa('0x39')]+'%'};return _0x5db6d7;}})});}_0x231e5e=_[_0x19aa('0x3b')]({},_0x231e5e,_0x54e302[_0x19aa('0x3e')]);var _0x6ef6b1={'where':_0x231e5e[_0x19aa('0x3a')]};return db['VoiceRecording'][_0x19aa('0x1b')](_0x6ef6b1)[_0x19aa('0x24')](function(_0x367569){_0x531773['count']=_0x367569;if(_0x54e302[_0x19aa('0x2f')]['includeAll']){_0x231e5e[_0x19aa('0x3f')]=[{'all':!![]}];}return db['VoiceRecording'][_0x19aa('0x40')](_0x231e5e);})['then'](function(_0x488748){_0x531773[_0x19aa('0x41')]=_0x488748;return _0x531773;})[_0x19aa('0x24')](respondWithFilteredResult(_0x2b2a09,_0x231e5e))['catch'](handleError(_0x2b2a09,null));};exports[_0x19aa('0x42')]=function(_0x3bfca2,_0x542f18){var _0x591814={'raw':![],'where':{'id':_0x3bfca2[_0x19aa('0x43')]['id']}},_0x30c357={};_0x30c357['model']=_[_0x19aa('0x30')](db[_0x19aa('0x28')]['rawAttributes']);_0x30c357[_0x19aa('0x2f')]=_[_0x19aa('0x30')](_0x3bfca2[_0x19aa('0x2f')]);_0x30c357[_0x19aa('0x31')]=_['intersection'](_0x30c357[_0x19aa('0x34')],_0x30c357[_0x19aa('0x2f')]);_0x591814[_0x19aa('0x32')]=_['intersection'](_0x30c357[_0x19aa('0x34')],qs[_0x19aa('0x35')](_0x3bfca2[_0x19aa('0x2f')]['fields']));_0x591814['attributes']=_0x591814[_0x19aa('0x32')][_0x19aa('0x44')]?_0x591814[_0x19aa('0x32')]:_0x30c357[_0x19aa('0x34')];if(_0x3bfca2[_0x19aa('0x2f')][_0x19aa('0x45')]){_0x591814[_0x19aa('0x3f')]=[{'all':!![]}];}_0x591814=_['merge']({},_0x591814,_0x3bfca2[_0x19aa('0x3e')]);return db[_0x19aa('0x28')]['find'](_0x591814)['then'](handleEntityNotFound(_0x542f18,null))[_0x19aa('0x24')](respondWithResult(_0x542f18,null))['catch'](handleError(_0x542f18,null));};exports[_0x19aa('0x46')]=function(_0x432051,_0x186af9){return db['VoiceRecording']['create'](_0x432051[_0x19aa('0x47')],{})[_0x19aa('0x24')](respondWithResult(_0x186af9,0xc9))[_0x19aa('0x48')](handleError(_0x186af9,null));};exports[_0x19aa('0x23')]=function(_0x5f5b72,_0x2638d1){if(_0x5f5b72['body']['id']){delete _0x5f5b72['body']['id'];}return db['VoiceRecording'][_0x19aa('0x49')]({'where':{'id':_0x5f5b72[_0x19aa('0x43')]['id']}})['then'](handleEntityNotFound(_0x2638d1,null))['then'](saveUpdates(_0x5f5b72[_0x19aa('0x47')],null))[_0x19aa('0x24')](respondWithResult(_0x2638d1,null))['catch'](handleError(_0x2638d1,null));};exports[_0x19aa('0x4a')]=function(_0x795e1a,_0x220138){return db[_0x19aa('0x28')][_0x19aa('0x4a')]()[_0x19aa('0x24')](respondWithResult(_0x220138,null))[_0x19aa('0x48')](handleError(_0x220138,null));};exports['download']=function(_0x22dcac,_0x2dbb36,_0x2636d5){var _0x357676=require(_0x19aa('0x4b'));var _0x124801=![];var _0x58b981={};if(_0x22dcac['query'][_0x19aa('0x2a')]&&_0x22dcac[_0x19aa('0x2f')][_0x19aa('0x2a')]===_0x19aa('0x4c')){_0x58b981[_0x19aa('0x4c')]=_0x22dcac['params']['id'];}else{_0x58b981['id']=_0x22dcac[_0x19aa('0x43')]['id'];}return db[_0x19aa('0x28')][_0x19aa('0x49')]({'where':_0x58b981,'attributes':['id',_0x19aa('0x4d')],'raw':!![]})['then'](handleEntityNotFound(_0x2dbb36,null))[_0x19aa('0x24')](function(_0x5c4bcd){if(_0x5c4bcd){var _0x49e51c=_0x5c4bcd[_0x19aa('0x4d')];var _0x224e72=util[_0x19aa('0x2e')]('%s.cypher',_0x49e51c);if(fs['existsSync'](_0x224e72)){_0x124801=!![];return _0x357676[_0x19aa('0x4e')](_0x224e72,_0x49e51c,config[_0x19aa('0x4f')]['recording'])['then'](function(){return _0x5c4bcd;});}return _0x5c4bcd;}})['then'](function(_0x4fbbdd){if(_0x4fbbdd){var _0x33eecb=_0x4fbbdd[_0x19aa('0x4d')];if(!fs[_0x19aa('0x50')](_0x33eecb)){throw new db['Sequelize']['ValidationError'](_0x19aa('0x51'));}if(_0x4fbbdd[_0x19aa('0x52')]){return _0x2dbb36[_0x19aa('0x53')](_0x33eecb,_0x4fbbdd[_0x19aa('0x52')]+path[_0x19aa('0x54')](_0x33eecb),function(){if(_0x124801){fs['unlink'](_0x33eecb);}});}else{return _0x2dbb36[_0x19aa('0x53')](_0x33eecb,function(_0x4651c0){if(_0x124801){fs[_0x19aa('0x55')](_0x33eecb);}});}}})[_0x19aa('0x48')](function(_0x32c26a){if(_0x32c26a['message']==='VoiceRecording\x20not\x20found'){_0x2dbb36[_0x19aa('0x19')](0x194)[_0x19aa('0x56')]('Not\x20found');}else{return handleError(_0x2dbb36,null);}});};exports[_0x19aa('0x57')]=function(_0x171b57,_0x1c2f61,_0x57603e){var _0x5a4f41=require('../../components/encryptor');var _0x9f72d0=![];var _0x3f4bce={'$and':[db['sequelize'][_0x19aa('0x3a')](db[_0x19aa('0x58')]['fn'](_0x19aa('0x59'),db[_0x19aa('0x58')]['col'](_0x19aa('0x4c'))),_0x171b57[_0x19aa('0x2f')][_0x19aa('0x5a')])]};if(_0x171b57['query']['type']&&_0x171b57[_0x19aa('0x2f')][_0x19aa('0x2a')]==='uniqueid'){_0x3f4bce['$and'][_0x19aa('0x5b')]({'uniqueid':_0x171b57[_0x19aa('0x43')]['id']});}else{_0x3f4bce[_0x19aa('0x5c')][_0x19aa('0x5b')]({'id':_0x171b57[_0x19aa('0x43')]['id']});}return db[_0x19aa('0x28')][_0x19aa('0x49')]({'where':_0x3f4bce,'attributes':['id',_0x19aa('0x4d')],'raw':!![]})['then'](handleEntityNotFound(_0x1c2f61,null))['then'](function(_0x2adcdf){if(_0x2adcdf){var _0x44a7bd=util[_0x19aa('0x2e')](_0x19aa('0x5d'),_0x2adcdf[_0x19aa('0x4d')]);if(fs[_0x19aa('0x50')](_0x44a7bd)){_0x9f72d0=!![];return _0x5a4f41['decryptFile'](_0x44a7bd,_0x2adcdf[_0x19aa('0x4d')],config[_0x19aa('0x4f')][_0x19aa('0x5e')])[_0x19aa('0x24')](function(){return _0x2adcdf;});}return _0x2adcdf;}})[_0x19aa('0x24')](function(_0x340618){if(_0x340618){if(!fs[_0x19aa('0x50')](_0x340618[_0x19aa('0x4d')])){throw new db[(_0x19aa('0x5f'))]['ValidationError'](_0x19aa('0x51'));}if(_0x340618['filename']){return _0x1c2f61[_0x19aa('0x53')](_0x340618[_0x19aa('0x4d')],_0x340618[_0x19aa('0x52')]+path['extname'](_0x340618[_0x19aa('0x4d')]),function(){if(_0x9f72d0){fs[_0x19aa('0x55')](_0x340618[_0x19aa('0x4d')]);}});}else{return _0x1c2f61['download'](_0x340618[_0x19aa('0x4d')],function(_0x10db04){if(_0x9f72d0){fs[_0x19aa('0x55')](_0x340618[_0x19aa('0x4d')]);}});}}})[_0x19aa('0x48')](handleError(_0x1c2f61,null));};exports[_0x19aa('0x60')]=function(_0x777057,_0x14b521){return db[_0x19aa('0x28')][_0x19aa('0x49')]({'where':{'id':_0x777057[_0x19aa('0x43')]['id']}})[_0x19aa('0x24')](function(_0x426332){if(!_0x426332)throw new ReferenceError(_0x19aa('0x61'));return _0x426332;})[_0x19aa('0x24')](function(_0x429f2b){var _0x5afd2a=_0x429f2b[_0x19aa('0x4d')];logger[_0x19aa('0x62')](_0x19aa('0x63'),_0x5afd2a);if(!_[_0x19aa('0x64')](_0x429f2b[_0x19aa('0x4d')])&&fs[_0x19aa('0x50')](_0x5afd2a)){logger[_0x19aa('0x62')](_0x19aa('0x65')+_0x5afd2a+_0x19aa('0x66'));fs['unlinkSync'](_0x5afd2a);}_0x5afd2a=_0x5afd2a+'.cypher';if(!_['isNil'](_0x429f2b['value'])&&fs['existsSync'](_0x5afd2a)){logger[_0x19aa('0x62')](_0x19aa('0x65')+_0x5afd2a+_0x19aa('0x66'));fs[_0x19aa('0x67')](_0x5afd2a);}return _0x429f2b;})[_0x19aa('0x24')](function(_0x3e42fa){if(!_0x3e42fa)throw new InternalError();return _0x3e42fa[_0x19aa('0x60')]();})['then'](function(){_0x14b521[_0x19aa('0x19')](0xcc)[_0x19aa('0x68')]();})['catch'](handleError(_0x14b521,null));};