0898413df7eec9ecb359e1a38c895afb82c6f419
[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 _0x820d=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','offset','undefined','limit','count','set','json','apply','reject','save','update','destroy','then','get','Sounds','UserProfileResource','error','stack','name','send','map','rawAttributes','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','type','VIRTUAL','filter','options','Sound','includeAll','catch','show','params','find','download','converted_format','existsSync','join','root','server/files/sounds/converted','save_name','ValidationError','format','%s.%s','create','basename','file','originalname','extname','substring','wav','server/files/sounds/original','filename','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','sampleRate','dest','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','start','description','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','path','sox','to-csv','crypto','jsforce'];(function(_0x1a9c7d,_0x1baf44){var _0x1a588b=function(_0x21f1bf){while(--_0x21f1bf){_0x1a9c7d['push'](_0x1a9c7d['shift']());}};_0x1a588b(++_0x1baf44);}(_0x820d,0x152));var _0xd820=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x820d[_0x1facfa];return _0x9ec701;};'use strict';var emlformat=require(_0xd820('0x0'));var rimraf=require(_0xd820('0x1'));var zipdir=require(_0xd820('0x2'));var jsonpatch=require(_0xd820('0x3'));var rp=require(_0xd820('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xd820('0x5'));var sox=require(_0xd820('0x6'));var csv=require(_0xd820('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xd820('0x8'));var jsforce=require(_0xd820('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xd820('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xd820('0xa'));var authService=require(_0xd820('0xb'));var qs=require(_0xd820('0xc'));var as=require(_0xd820('0xd'));var hardwareService=require(_0xd820('0xe'));var logger=require(_0xd820('0xf'))(_0xd820('0x10'));var utils=require(_0xd820('0x11'));var config=require(_0xd820('0x12'));var licenseUtil=require(_0xd820('0x13'));var db=require(_0xd820('0x14'))['db'];function respondWithStatusCode(_0x44abf7,_0x5ec480){_0x5ec480=_0x5ec480||0xcc;return function(_0x2f0339){if(_0x2f0339){return _0x44abf7['sendStatus'](_0x5ec480);}return _0x44abf7['status'](_0x5ec480)[_0xd820('0x15')]();};}function respondWithResult(_0x598642,_0x51931f){_0x51931f=_0x51931f||0xc8;return function(_0x1569ec){if(_0x1569ec){return _0x598642[_0xd820('0x16')](_0x51931f)['json'](_0x1569ec);}};}function respondWithFilteredResult(_0x3eb736,_0x9db070){return function(_0x353710){if(_0x353710){var _0x2a4127=typeof _0x9db070[_0xd820('0x17')]===_0xd820('0x18')&&typeof _0x9db070[_0xd820('0x19')]===_0xd820('0x18');var _0x55ce8c=_0x353710[_0xd820('0x1a')];var _0xe94262=_0x2a4127?0x0:_0x9db070['offset'];var _0x16a9a2=_0x2a4127?_0x353710[_0xd820('0x1a')]:_0x9db070[_0xd820('0x17')]+_0x9db070[_0xd820('0x19')];var _0x3ce9b7;if(_0x16a9a2>=_0x55ce8c){_0x16a9a2=_0x55ce8c;_0x3ce9b7=0xc8;}else{_0x3ce9b7=0xce;}_0x3eb736[_0xd820('0x16')](_0x3ce9b7);return _0x3eb736[_0xd820('0x1b')]('Content-Range',_0xe94262+'-'+_0x16a9a2+'/'+_0x55ce8c)[_0xd820('0x1c')](_0x353710);}return null;};}function patchUpdates(_0x16c2b5){return function(_0x499b43){try{jsonpatch[_0xd820('0x1d')](_0x499b43,_0x16c2b5,!![]);}catch(_0x13ef40){return BPromise[_0xd820('0x1e')](_0x13ef40);}return _0x499b43[_0xd820('0x1f')]();};}function saveUpdates(_0xa91792,_0x8194a){return function(_0x3cf5da){if(_0x3cf5da){return _0x3cf5da[_0xd820('0x20')](_0xa91792)['then'](function(_0x1009ca){return _0x1009ca;});}return null;};}function removeEntity(_0x2cb66f,_0x3eba55){return function(_0x128884){if(_0x128884){return _0x128884[_0xd820('0x21')]()[_0xd820('0x22')](function(){var _0x1275eb=_0x128884[_0xd820('0x23')]({'plain':!![]});var _0x2e28d9=_0xd820('0x24');return db[_0xd820('0x25')][_0xd820('0x21')]({'where':{'type':_0x2e28d9,'resourceId':_0x1275eb['id']}})[_0xd820('0x22')](function(){return _0x128884;});})[_0xd820('0x22')](function(){_0x2cb66f['status'](0xcc)[_0xd820('0x15')]();});}};}function handleEntityNotFound(_0x14baec,_0xef06b5){return function(_0x15904d){if(!_0x15904d){_0x14baec['sendStatus'](0x194);}return _0x15904d;};}function handleError(_0x1b392a,_0x421a3d){_0x421a3d=_0x421a3d||0x1f4;return function(_0x497e04){logger[_0xd820('0x26')](_0x497e04[_0xd820('0x27')]);if(_0x497e04[_0xd820('0x28')]){delete _0x497e04[_0xd820('0x28')];}_0x1b392a[_0xd820('0x16')](_0x421a3d)[_0xd820('0x29')](_0x497e04);};}exports['index']=function(_0x3ce87e,_0xe3c502){var _0x372265={},_0x16da4f={},_0x355fb7={'count':0x0,'rows':[]};var _0x4e48bc=_[_0xd820('0x2a')](db['Sound'][_0xd820('0x2b')],function(_0x5d86a7){return{'name':_0x5d86a7['fieldName'],'type':_0x5d86a7['type']['key']};});_0x16da4f[_0xd820('0x2c')]=_[_0xd820('0x2a')](_0x4e48bc,_0xd820('0x28'));_0x16da4f[_0xd820('0x2d')]=_[_0xd820('0x2e')](_0x3ce87e[_0xd820('0x2d')]);_0x16da4f[_0xd820('0x2f')]=_[_0xd820('0x30')](_0x16da4f[_0xd820('0x2c')],_0x16da4f[_0xd820('0x2d')]);_0x372265[_0xd820('0x31')]=_[_0xd820('0x30')](_0x16da4f[_0xd820('0x2c')],qs['fields'](_0x3ce87e[_0xd820('0x2d')][_0xd820('0x32')]));_0x372265['attributes']=_0x372265[_0xd820('0x31')][_0xd820('0x33')]?_0x372265[_0xd820('0x31')]:_0x16da4f['model'];if(!_0x3ce87e[_0xd820('0x2d')][_0xd820('0x34')](_0xd820('0x35'))){_0x372265[_0xd820('0x19')]=qs[_0xd820('0x19')](_0x3ce87e[_0xd820('0x2d')][_0xd820('0x19')]);_0x372265[_0xd820('0x17')]=qs[_0xd820('0x17')](_0x3ce87e[_0xd820('0x2d')][_0xd820('0x17')]);}_0x372265[_0xd820('0x36')]=qs[_0xd820('0x37')](_0x3ce87e[_0xd820('0x2d')][_0xd820('0x37')]);_0x372265[_0xd820('0x38')]=qs[_0xd820('0x2f')](_['pick'](_0x3ce87e[_0xd820('0x2d')],_0x16da4f[_0xd820('0x2f')]),_0x4e48bc);if(_0x3ce87e['query']['filter']){_0x372265[_0xd820('0x38')]=_[_0xd820('0x39')](_0x372265[_0xd820('0x38')],{'$or':_[_0xd820('0x2a')](_0x4e48bc,function(_0x2fbea0){if(_0x2fbea0[_0xd820('0x3a')]!==_0xd820('0x3b')){var _0x23e166={};_0x23e166[_0x2fbea0[_0xd820('0x28')]]={'$like':'%'+_0x3ce87e[_0xd820('0x2d')][_0xd820('0x3c')]+'%'};return _0x23e166;}})});}_0x372265=_[_0xd820('0x39')]({},_0x372265,_0x3ce87e[_0xd820('0x3d')]);var _0x188a56={'where':_0x372265['where']};return db[_0xd820('0x3e')][_0xd820('0x1a')](_0x188a56)[_0xd820('0x22')](function(_0x3b9c4e){_0x355fb7['count']=_0x3b9c4e;if(_0x3ce87e[_0xd820('0x2d')][_0xd820('0x3f')]){_0x372265['include']=[{'all':!![]}];}return db[_0xd820('0x3e')]['findAll'](_0x372265);})[_0xd820('0x22')](function(_0x445236){_0x355fb7['rows']=_0x445236;return _0x355fb7;})[_0xd820('0x22')](respondWithFilteredResult(_0xe3c502,_0x372265))[_0xd820('0x40')](handleError(_0xe3c502,null));};exports[_0xd820('0x41')]=function(_0x5b2c6c,_0x383f64){var _0x1a9383={'raw':!![],'where':{'id':_0x5b2c6c[_0xd820('0x42')]['id']}},_0x542a8a={};_0x542a8a[_0xd820('0x2c')]=_['keys'](db[_0xd820('0x3e')][_0xd820('0x2b')]);_0x542a8a[_0xd820('0x2d')]=_[_0xd820('0x2e')](_0x5b2c6c['query']);_0x542a8a[_0xd820('0x2f')]=_[_0xd820('0x30')](_0x542a8a['model'],_0x542a8a[_0xd820('0x2d')]);_0x1a9383[_0xd820('0x31')]=_[_0xd820('0x30')](_0x542a8a[_0xd820('0x2c')],qs[_0xd820('0x32')](_0x5b2c6c[_0xd820('0x2d')][_0xd820('0x32')]));_0x1a9383[_0xd820('0x31')]=_0x1a9383['attributes']['length']?_0x1a9383[_0xd820('0x31')]:_0x542a8a[_0xd820('0x2c')];if(_0x5b2c6c[_0xd820('0x2d')][_0xd820('0x3f')]){_0x1a9383['include']=[{'all':!![]}];}_0x1a9383=_[_0xd820('0x39')]({},_0x1a9383,_0x5b2c6c[_0xd820('0x3d')]);return db[_0xd820('0x3e')][_0xd820('0x43')](_0x1a9383)[_0xd820('0x22')](handleEntityNotFound(_0x383f64,null))[_0xd820('0x22')](respondWithResult(_0x383f64,null))[_0xd820('0x40')](handleError(_0x383f64,null));};exports[_0xd820('0x44')]=function(_0x12c11e,_0x5c04e2,_0x59487e){return db[_0xd820('0x3e')]['find']({'where':{'id':_0x12c11e[_0xd820('0x42')]['id']},'attributes':['name','save_name',_0xd820('0x45')],'raw':!![]})[_0xd820('0x22')](handleEntityNotFound(_0x5c04e2,null))[_0xd820('0x22')](function(_0x42d3e5){if(_0x42d3e5){if(!fs[_0xd820('0x46')](path[_0xd820('0x47')](config[_0xd820('0x48')],_0xd820('0x49'),_0x42d3e5[_0xd820('0x4a')]+'.'+_0x42d3e5[_0xd820('0x45')]))){throw new db['Sequelize'][(_0xd820('0x4b'))]('Sound\x20not\x20found');}return _0x5c04e2['download'](path['join'](config[_0xd820('0x48')],_0xd820('0x49'),util[_0xd820('0x4c')](_0xd820('0x4d'),_0x42d3e5[_0xd820('0x4a')],_0x42d3e5['converted_format'])),util[_0xd820('0x4c')](_0xd820('0x4d'),_0x42d3e5[_0xd820('0x28')],_0x42d3e5[_0xd820('0x45')]));}return null;})['catch'](handleError(_0x5c04e2,null));};exports[_0xd820('0x4e')]=function(_0x295c50,_0x1b164d,_0x4a0b22){var _0x467e75={'name':path[_0xd820('0x4f')](_0x295c50[_0xd820('0x50')][_0xd820('0x51')],path[_0xd820('0x52')](_0x295c50[_0xd820('0x50')][_0xd820('0x51')])),'save_name':path[_0xd820('0x4f')](_0x295c50['file']['filename'],path[_0xd820('0x52')](_0x295c50[_0xd820('0x50')]['filename'])),'original_format':path[_0xd820('0x52')](_0x295c50[_0xd820('0x50')]['originalname'])[_0xd820('0x53')](0x1),'converted_format':_0xd820('0x54')};var _0x345f70=path[_0xd820('0x47')](config[_0xd820('0x48')],_0xd820('0x55'),_0x295c50['file']['filename']);var _0x38d924=path[_0xd820('0x47')](config[_0xd820('0x48')],_0xd820('0x49'),util[_0xd820('0x4c')](_0xd820('0x4d'),path[_0xd820('0x4f')](_0x295c50[_0xd820('0x50')][_0xd820('0x56')],path[_0xd820('0x52')](_0x295c50[_0xd820('0x50')][_0xd820('0x56')])),_0x467e75[_0xd820('0x45')]));logger[_0xd820('0x57')]('Sound\x20upload\x20filepath:\x20%s',_0x345f70);logger['info'](_0xd820('0x58'),_0x38d924);try{fs[_0xd820('0x59')](_0x345f70,parseInt(_0xd820('0x5a'),0x8));var _0x201941=sox['transcode'](_0x345f70,_0x38d924,{'sampleRate':0x1f40,'format':_0xd820('0x54'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x201941['on'](_0xd820('0x26'),function(_0x2a6b9f){fs[_0xd820('0x5b')](_0x345f70);_0x1b164d[_0xd820('0x16')](0x1f4)[_0xd820('0x29')](_0x2a6b9f);});_0x201941['on'](_0xd820('0x5c'),function(_0x19d9fa){_0x467e75[_0xd820('0x5d')]=isNaN(_0x19d9fa[_0xd820('0x5e')])?null:_0x19d9fa[_0xd820('0x5e')]*0x3e8;_0x467e75[_0xd820('0x5f')]=isNaN(_0x19d9fa[_0xd820('0x60')])?null:_0x19d9fa[_0xd820('0x60')];_0x467e75[_0xd820('0x61')]=isNaN(_0x19d9fa[_0xd820('0x62')])?null:_0x19d9fa[_0xd820('0x62')];_0x467e75['original_bitRate']=isNaN(_0x19d9fa['bitRate'])?null:_0x19d9fa[_0xd820('0x63')];_0x467e75['original_sampleRate']=isNaN(_0x19d9fa[_0xd820('0x64')])?null:_0x19d9fa[_0xd820('0x64')];});_0x201941['on'](_0xd820('0x65'),function(_0x2a1789){_0x467e75['converted_duration']=isNaN(_0x2a1789[_0xd820('0x5e')])?null:_0x2a1789[_0xd820('0x5e')]*0x3e8;_0x467e75[_0xd820('0x66')]=isNaN(_0x2a1789[_0xd820('0x60')])?null:_0x2a1789[_0xd820('0x60')];_0x467e75[_0xd820('0x67')]=isNaN(_0x2a1789[_0xd820('0x62')])?null:_0x2a1789[_0xd820('0x62')];_0x467e75[_0xd820('0x68')]=isNaN(_0x2a1789[_0xd820('0x63')])?null:_0x2a1789[_0xd820('0x63')];_0x467e75[_0xd820('0x69')]=isNaN(_0x2a1789[_0xd820('0x64')])?null:_0x2a1789['sampleRate'];});_0x201941['on'](_0xd820('0x15'),function(){fs['chmodSync'](_0x38d924,parseInt('0777',0x8));return db[_0xd820('0x3e')]['create'](_0x467e75)[_0xd820('0x22')](function(_0x9deebc){var _0x1cfe8f={'role':_0x295c50[_0xd820('0x6a')][_0xd820('0x6b')],'userProfileId':_0x295c50[_0xd820('0x6a')][_0xd820('0x6c')]};if(!_0x1cfe8f)throw new Error(_0xd820('0x6d'));if(_0x1cfe8f[_0xd820('0x6b')]===_0xd820('0x6e')){var _0x397296=_0x9deebc[_0xd820('0x23')]({'plain':!![]});return db[_0xd820('0x6f')][_0xd820('0x43')]({'where':{'name':_0xd820('0x24'),'userProfileId':_0x1cfe8f['userProfileId']},'raw':!![]})[_0xd820('0x22')](function(_0x2fc732){if(_0x2fc732&&_0x2fc732[_0xd820('0x70')]===0x0){return db[_0xd820('0x25')][_0xd820('0x4e')]({'name':_0x397296[_0xd820('0x28')],'resourceId':_0x397296['id'],'type':_0x2fc732[_0xd820('0x28')],'sectionId':_0x2fc732['id']},{})[_0xd820('0x22')](function(){return _0x9deebc;});}else{return _0x9deebc;}})[_0xd820('0x40')](function(_0x60bceb){logger[_0xd820('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x60bceb);throw _0x60bceb;});}return _0x9deebc;})[_0xd820('0x22')](respondWithResult(_0x1b164d,null))['catch'](handleError(_0x1b164d,null));});_0x201941[_0xd820('0x71')]();}catch(_0x3fa5e9){_0x1b164d['status'](0x1f4)[_0xd820('0x29')](_0x3fa5e9);}};exports['update']=function(_0x4b989c,_0x352c50,_0x2b5b52){return db[_0xd820('0x3e')][_0xd820('0x43')]({'where':{'id':_0x4b989c[_0xd820('0x42')]['id']}})[_0xd820('0x22')](handleEntityNotFound(_0x352c50,null))[_0xd820('0x22')](saveUpdates(_['pick'](_0x4b989c[_0xd820('0x6a')],['name',_0xd820('0x72')]),null))['then'](respondWithResult(_0x352c50,null))[_0xd820('0x40')](handleError(_0x352c50,null));};exports['delete']=function(_0x48dd77,_0x38322d,_0x147448){return db[_0xd820('0x3e')]['find']({'where':{'id':_0x48dd77[_0xd820('0x42')]['id']}})[_0xd820('0x22')](function(_0x1f3192){if(_0x1f3192){return _0x1f3192[_0xd820('0x21')]();}})[_0xd820('0x22')](function(_0x36acbb){var _0x987607=path[_0xd820('0x47')](config[_0xd820('0x48')],_0xd820('0x55'),util['format'](_0xd820('0x4d'),_0x36acbb['save_name'],_0x36acbb[_0xd820('0x73')]));var _0x39e85c=path[_0xd820('0x47')](config[_0xd820('0x48')],_0xd820('0x49'),util[_0xd820('0x4c')](_0xd820('0x4d'),_0x36acbb[_0xd820('0x4a')],_0x36acbb['converted_format']));fs[_0xd820('0x5b')](_0x987607);fs[_0xd820('0x5b')](_0x39e85c);return _0x36acbb;})[_0xd820('0x22')](function(_0x100846){if(_0x100846){return _0x38322d[_0xd820('0x16')](0xcc)[_0xd820('0x15')]();}})[_0xd820('0x22')](handleEntityNotFound(_0x38322d,null))['catch'](handleError(_0x38322d,null));};