Built motion from commit (unavailable).|2.4.3
[motion2.git] / server / api / sound / sound.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 _0x8782=['original_sampleRate','sampleRate','dest','converted_sampleCount','converted_channelCount','converted_sampleRate','chmodSync','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','original_format','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','set','Content-Range','apply','update','then','destroy','get','Sounds','UserProfileResource','error','stack','name','send','index','Sound','model','query','keys','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','where','pick','filter','merge','map','type','VIRTUAL','field','options','includeAll','findAll','rows','catch','show','params','rawAttributes','find','download','converted_format','join','root','server/files/sounds/converted','save_name','Sequelize','Sound\x20not\x20found','format','%s.%s','create','basename','originalname','extname','file','filename','substring','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','transcode','wav','unlinkSync','duration','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate'];(function(_0x32a838,_0x257672){var _0x4d7d9f=function(_0x32d96c){while(--_0x32d96c){_0x32a838['push'](_0x32a838['shift']());}};_0x4d7d9f(++_0x257672);}(_0x8782,0x104));var _0x2878=function(_0x1d0990,_0x18779e){_0x1d0990=_0x1d0990-0x0;var _0x2e6b66=_0x8782[_0x1d0990];return _0x2e6b66;};'use strict';var pdf=require(_0x2878('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x2878('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2878('0x2'));var rp=require(_0x2878('0x3'));var moment=require(_0x2878('0x4'));var BPromise=require(_0x2878('0x5'));var Mustache=require(_0x2878('0x6'));var util=require(_0x2878('0x7'));var path=require(_0x2878('0x8'));var sox=require(_0x2878('0x9'));var csv=require(_0x2878('0xa'));var ejs=require(_0x2878('0xb'));var fs=require('fs');var _=require(_0x2878('0xc'));var squel=require(_0x2878('0xd'));var crypto=require(_0x2878('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x2878('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2878('0x10'));var Redis=require('ioredis');var authService=require(_0x2878('0x11'));var qs=require('../../components/parsers/qs');var hardwareService=require(_0x2878('0x12'));var logger=require(_0x2878('0x13'))('api');var utils=require(_0x2878('0x14'));var config=require(_0x2878('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2eb5b7,_0x3d3444){_0x3d3444=_0x3d3444||0xcc;return function(_0x44c358){if(_0x44c358){return _0x2eb5b7[_0x2878('0x16')](_0x3d3444);}return _0x2eb5b7[_0x2878('0x17')](_0x3d3444)[_0x2878('0x18')]();};}function respondWithResult(_0x57fb66,_0x425c39){_0x425c39=_0x425c39||0xc8;return function(_0x1ca69c){if(_0x1ca69c){return _0x57fb66[_0x2878('0x17')](_0x425c39)[_0x2878('0x19')](_0x1ca69c);}};}function respondWithFilteredResult(_0x35d3d5,_0x1d7519){return function(_0x1821a6){if(_0x1821a6){var _0x52f29d=_0x1821a6[_0x2878('0x1a')],_0x4c4a33=_0x1d7519[_0x2878('0x1b')],_0x3b7e6a=_0x1d7519[_0x2878('0x1b')]+_0x1d7519['limit'],_0x84ca00;if(_0x3b7e6a>=_0x52f29d){_0x3b7e6a=_0x52f29d;_0x84ca00=0xc8;}else{_0x84ca00=0xce;}_0x35d3d5['status'](_0x84ca00);return _0x35d3d5[_0x2878('0x1c')](_0x2878('0x1d'),_0x4c4a33+'-'+_0x3b7e6a+'/'+_0x52f29d)[_0x2878('0x19')](_0x1821a6);}return null;};}function patchUpdates(_0x486e3d){return function(_0x2c7aa0){try{jsonpatch[_0x2878('0x1e')](_0x2c7aa0,_0x486e3d,!![]);}catch(_0xb6b0ea){return BPromise['reject'](_0xb6b0ea);}return _0x2c7aa0['save']();};}function saveUpdates(_0x45ba30,_0x153bf6){return function(_0x6cc09d){if(_0x6cc09d){return _0x6cc09d[_0x2878('0x1f')](_0x45ba30)[_0x2878('0x20')](function(_0x3fc575){return _0x3fc575;});}return null;};}function removeEntity(_0x309fa6,_0x1384a7){return function(_0x1d5b49){if(_0x1d5b49){return _0x1d5b49[_0x2878('0x21')]()[_0x2878('0x20')](function(){var _0x30178f=_0x1d5b49[_0x2878('0x22')]({'plain':!![]});var _0x112740=_0x2878('0x23');return db[_0x2878('0x24')]['destroy']({'where':{'type':_0x112740,'resourceId':_0x30178f['id']}})['then'](function(){return _0x1d5b49;});})[_0x2878('0x20')](function(){_0x309fa6[_0x2878('0x17')](0xcc)[_0x2878('0x18')]();});}};}function handleEntityNotFound(_0x579a05,_0x29512f){return function(_0x196640){if(!_0x196640){_0x579a05[_0x2878('0x16')](0x194);}return _0x196640;};}function handleError(_0x5d89ee,_0x68349d){_0x68349d=_0x68349d||0x1f4;return function(_0x30ab67){logger[_0x2878('0x25')](_0x30ab67[_0x2878('0x26')]);if(_0x30ab67[_0x2878('0x27')]){delete _0x30ab67['name'];}_0x5d89ee['status'](_0x68349d)[_0x2878('0x28')](_0x30ab67);};}exports[_0x2878('0x29')]=function(_0x4482e1,_0x3de4ee){var _0x19d2b4={},_0x2f3781={},_0x2748dd={'count':0x0,'rows':[]};var _0x289f1d=db[_0x2878('0x2a')]['rawAttributes'];_0x2f3781[_0x2878('0x2b')]=_['keys'](_0x289f1d);_0x2f3781[_0x2878('0x2c')]=_[_0x2878('0x2d')](_0x4482e1[_0x2878('0x2c')]);_0x2f3781[_0x2878('0x2e')]=_[_0x2878('0x2f')](_0x2f3781[_0x2878('0x2b')],_0x2f3781[_0x2878('0x2c')]);_0x19d2b4[_0x2878('0x30')]=_[_0x2878('0x2f')](_0x2f3781[_0x2878('0x2b')],qs[_0x2878('0x31')](_0x4482e1[_0x2878('0x2c')][_0x2878('0x31')]));_0x19d2b4[_0x2878('0x30')]=_0x19d2b4[_0x2878('0x30')][_0x2878('0x32')]?_0x19d2b4[_0x2878('0x30')]:_0x2f3781[_0x2878('0x2b')];if(!_0x4482e1['query']['hasOwnProperty'](_0x2878('0x33'))){_0x19d2b4[_0x2878('0x34')]=qs['limit'](_0x4482e1[_0x2878('0x2c')][_0x2878('0x34')]);_0x19d2b4[_0x2878('0x1b')]=qs[_0x2878('0x1b')](_0x4482e1[_0x2878('0x2c')][_0x2878('0x1b')]);}_0x19d2b4[_0x2878('0x35')]=qs[_0x2878('0x36')](_0x4482e1[_0x2878('0x2c')][_0x2878('0x36')]);_0x19d2b4[_0x2878('0x37')]=qs[_0x2878('0x2e')](_[_0x2878('0x38')](_0x4482e1[_0x2878('0x2c')],_0x2f3781[_0x2878('0x2e')]));if(_0x4482e1[_0x2878('0x2c')][_0x2878('0x39')]){_0x19d2b4['where']=_[_0x2878('0x3a')](_0x19d2b4['where'],{'$or':_[_0x2878('0x3b')](_0x289f1d,function(_0x264b7d){if(_0x264b7d[_0x2878('0x3c')]['key']!==_0x2878('0x3d')){var _0x36e2e6={};_0x36e2e6[_0x264b7d[_0x2878('0x3e')]]={'$like':'%'+_0x4482e1['query'][_0x2878('0x39')]+'%'};return _0x36e2e6;}})});}_0x19d2b4=_[_0x2878('0x3a')]({},_0x19d2b4,_0x4482e1[_0x2878('0x3f')]);var _0x24d822={'where':_0x19d2b4[_0x2878('0x37')]};return db[_0x2878('0x2a')]['count'](_0x24d822)[_0x2878('0x20')](function(_0x1f7d7b){_0x2748dd[_0x2878('0x1a')]=_0x1f7d7b;if(_0x4482e1[_0x2878('0x2c')][_0x2878('0x40')]){_0x19d2b4['include']=[{'all':!![]}];}return db[_0x2878('0x2a')][_0x2878('0x41')](_0x19d2b4);})[_0x2878('0x20')](function(_0x366b7d){_0x2748dd[_0x2878('0x42')]=_0x366b7d;return _0x2748dd;})['then'](respondWithFilteredResult(_0x3de4ee,_0x19d2b4))[_0x2878('0x43')](handleError(_0x3de4ee,null));};exports[_0x2878('0x44')]=function(_0x5189cb,_0xff77d2){var _0x1d47b5={'raw':!![],'where':{'id':_0x5189cb[_0x2878('0x45')]['id']}},_0x1c60d1={};_0x1c60d1[_0x2878('0x2b')]=_[_0x2878('0x2d')](db[_0x2878('0x2a')][_0x2878('0x46')]);_0x1c60d1[_0x2878('0x2c')]=_[_0x2878('0x2d')](_0x5189cb['query']);_0x1c60d1['filters']=_['intersection'](_0x1c60d1[_0x2878('0x2b')],_0x1c60d1[_0x2878('0x2c')]);_0x1d47b5['attributes']=_[_0x2878('0x2f')](_0x1c60d1[_0x2878('0x2b')],qs[_0x2878('0x31')](_0x5189cb[_0x2878('0x2c')][_0x2878('0x31')]));_0x1d47b5[_0x2878('0x30')]=_0x1d47b5[_0x2878('0x30')]['length']?_0x1d47b5['attributes']:_0x1c60d1[_0x2878('0x2b')];if(_0x5189cb[_0x2878('0x2c')]['includeAll']){_0x1d47b5['include']=[{'all':!![]}];}_0x1d47b5=_[_0x2878('0x3a')]({},_0x1d47b5,_0x5189cb['options']);return db['Sound'][_0x2878('0x47')](_0x1d47b5)['then'](handleEntityNotFound(_0xff77d2,null))[_0x2878('0x20')](respondWithResult(_0xff77d2,null))['catch'](handleError(_0xff77d2,null));};exports[_0x2878('0x48')]=function(_0x24329f,_0x1615ee,_0x562976){return db['Sound'][_0x2878('0x47')]({'where':{'id':_0x24329f['params']['id']},'attributes':[_0x2878('0x27'),'save_name',_0x2878('0x49')],'raw':!![]})[_0x2878('0x20')](handleEntityNotFound(_0x1615ee,null))[_0x2878('0x20')](function(_0xd67698){if(_0xd67698){if(!fs['existsSync'](path[_0x2878('0x4a')](config[_0x2878('0x4b')],_0x2878('0x4c'),_0xd67698[_0x2878('0x4d')]+'.'+_0xd67698['converted_format']))){throw new db[(_0x2878('0x4e'))]['ValidationError'](_0x2878('0x4f'));}return _0x1615ee[_0x2878('0x48')](path['join'](config[_0x2878('0x4b')],'server/files/sounds/converted',util[_0x2878('0x50')](_0x2878('0x51'),_0xd67698[_0x2878('0x4d')],_0xd67698[_0x2878('0x49')])),util[_0x2878('0x50')](_0x2878('0x51'),_0xd67698[_0x2878('0x27')],_0xd67698[_0x2878('0x49')]));}return null;})[_0x2878('0x43')](handleError(_0x1615ee,null));};exports[_0x2878('0x52')]=function(_0x39dc61,_0x1f4618,_0x1e4dd1){var _0x3922b2={'name':path[_0x2878('0x53')](_0x39dc61['file'][_0x2878('0x54')],path[_0x2878('0x55')](_0x39dc61[_0x2878('0x56')][_0x2878('0x54')])),'save_name':path[_0x2878('0x53')](_0x39dc61[_0x2878('0x56')][_0x2878('0x57')],path[_0x2878('0x55')](_0x39dc61[_0x2878('0x56')][_0x2878('0x57')])),'original_format':path[_0x2878('0x55')](_0x39dc61[_0x2878('0x56')][_0x2878('0x54')])[_0x2878('0x58')](0x1),'converted_format':'wav'};var _0x38ff46=path[_0x2878('0x4a')](config[_0x2878('0x4b')],_0x2878('0x59'),_0x39dc61[_0x2878('0x56')][_0x2878('0x57')]);var _0x88367a=path['join'](config[_0x2878('0x4b')],'server/files/sounds/converted',util[_0x2878('0x50')]('%s.%s',path[_0x2878('0x53')](_0x39dc61[_0x2878('0x56')][_0x2878('0x57')],path['extname'](_0x39dc61['file'][_0x2878('0x57')])),_0x3922b2['converted_format']));logger[_0x2878('0x5a')](_0x2878('0x5b'),_0x38ff46);logger['info'](_0x2878('0x5c'),_0x88367a);try{fs['chmodSync'](_0x38ff46,parseInt(_0x2878('0x5d'),0x8));var _0x17bed7=sox[_0x2878('0x5e')](_0x38ff46,_0x88367a,{'sampleRate':0x1f40,'format':_0x2878('0x5f'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x17bed7['on'](_0x2878('0x25'),function(_0x280a37){fs[_0x2878('0x60')](_0x38ff46);_0x1f4618[_0x2878('0x17')](0x1f4)['send'](_0x280a37);});_0x17bed7['on']('src',function(_0x2c08ef){_0x3922b2['original_duration']=isNaN(_0x2c08ef[_0x2878('0x61')])?null:_0x2c08ef['duration']*0x3e8;_0x3922b2['original_sampleCount']=isNaN(_0x2c08ef[_0x2878('0x62')])?null:_0x2c08ef[_0x2878('0x62')];_0x3922b2[_0x2878('0x63')]=isNaN(_0x2c08ef[_0x2878('0x64')])?null:_0x2c08ef[_0x2878('0x64')];_0x3922b2[_0x2878('0x65')]=isNaN(_0x2c08ef[_0x2878('0x66')])?null:_0x2c08ef['bitRate'];_0x3922b2[_0x2878('0x67')]=isNaN(_0x2c08ef[_0x2878('0x68')])?null:_0x2c08ef[_0x2878('0x68')];});_0x17bed7['on'](_0x2878('0x69'),function(_0x11a455){_0x3922b2['converted_duration']=isNaN(_0x11a455[_0x2878('0x61')])?null:_0x11a455['duration']*0x3e8;_0x3922b2[_0x2878('0x6a')]=isNaN(_0x11a455[_0x2878('0x62')])?null:_0x11a455['sampleCount'];_0x3922b2[_0x2878('0x6b')]=isNaN(_0x11a455[_0x2878('0x64')])?null:_0x11a455[_0x2878('0x64')];_0x3922b2['converted_bitRate']=isNaN(_0x11a455[_0x2878('0x66')])?null:_0x11a455[_0x2878('0x66')];_0x3922b2[_0x2878('0x6c')]=isNaN(_0x11a455['sampleRate'])?null:_0x11a455['sampleRate'];});_0x17bed7['on']('end',function(){fs[_0x2878('0x6d')](_0x88367a,parseInt('0777',0x8));return db[_0x2878('0x2a')]['create'](_0x3922b2)['then'](function(_0x18e666){var _0x4db22b={'role':_0x39dc61[_0x2878('0x6e')]['role'],'userProfileId':_0x39dc61[_0x2878('0x6e')][_0x2878('0x6f')]};if(!_0x4db22b)throw new Error(_0x2878('0x70'));if(_0x4db22b[_0x2878('0x71')]==='user'){var _0x1edba0=_0x18e666[_0x2878('0x22')]({'plain':!![]});return db[_0x2878('0x72')][_0x2878('0x47')]({'where':{'name':'Sounds','userProfileId':_0x4db22b[_0x2878('0x6f')]},'raw':!![]})[_0x2878('0x20')](function(_0x48b2f3){if(_0x48b2f3&&_0x48b2f3[_0x2878('0x73')]===0x0){return db['UserProfileResource'][_0x2878('0x52')]({'name':_0x1edba0['name'],'resourceId':_0x1edba0['id'],'type':_0x48b2f3['name'],'sectionId':_0x48b2f3['id']},{})[_0x2878('0x20')](function(){return _0x18e666;});}else{return _0x18e666;}})[_0x2878('0x43')](function(_0x2e2257){logger[_0x2878('0x25')](_0x2878('0x74'),_0x2e2257);throw _0x2e2257;});}return _0x18e666;})[_0x2878('0x20')](respondWithResult(_0x1f4618,null))[_0x2878('0x43')](handleError(_0x1f4618,null));});_0x17bed7[_0x2878('0x75')]();}catch(_0x132066){_0x1f4618[_0x2878('0x17')](0x1f4)[_0x2878('0x28')](_0x132066);}};exports[_0x2878('0x1f')]=function(_0x1d7a85,_0x203df2,_0x14256a){return db[_0x2878('0x2a')][_0x2878('0x47')]({'where':{'id':_0x1d7a85['params']['id']}})[_0x2878('0x20')](handleEntityNotFound(_0x203df2,null))[_0x2878('0x20')](saveUpdates(_['pick'](_0x1d7a85[_0x2878('0x6e')],[_0x2878('0x27'),_0x2878('0x76')]),null))[_0x2878('0x20')](respondWithResult(_0x203df2,null))['catch'](handleError(_0x203df2,null));};exports[_0x2878('0x77')]=function(_0x3e90b0,_0x10ca92,_0x16546a){return db[_0x2878('0x2a')][_0x2878('0x47')]({'where':{'id':_0x3e90b0['params']['id']}})['then'](function(_0x4e2a05){if(_0x4e2a05){return _0x4e2a05[_0x2878('0x21')]();}})[_0x2878('0x20')](function(_0xabacc5){var _0x97bac2=path['join'](config['root'],_0x2878('0x59'),util[_0x2878('0x50')](_0x2878('0x51'),_0xabacc5[_0x2878('0x4d')],_0xabacc5[_0x2878('0x78')]));var _0x1dbfa1=path[_0x2878('0x4a')](config[_0x2878('0x4b')],_0x2878('0x4c'),util[_0x2878('0x50')]('%s.%s',_0xabacc5[_0x2878('0x4d')],_0xabacc5['converted_format']));fs['unlinkSync'](_0x97bac2);fs[_0x2878('0x60')](_0x1dbfa1);return _0xabacc5;})[_0x2878('0x20')](function(_0xe325){if(_0xe325){return _0x10ca92[_0x2878('0x17')](0xcc)[_0x2878('0x18')]();}})[_0x2878('0x20')](handleEntityNotFound(_0x10ca92,null))['catch'](handleError(_0x10ca92,null));};