Built motion from commit (unavailable).|2.5.14
[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 _0x52ea=['path','sox','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','count','offset','limit','status','set','Content-Range','reject','save','then','destroy','get','Sounds','error','stack','name','send','map','Sound','fieldName','type','key','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','fields','catch','download','find','save_name','converted_format','join','root','server/files/sounds/converted','ValidationError','Sound\x20not\x20found','format','%s.%s','create','basename','file','originalname','extname','filename','substring','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','chmodSync','0777','transcode','wav','src','original_duration','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','update','description','delete','original_format','unlinkSync','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache'];(function(_0x4275ef,_0x26906e){var _0x1061ce=function(_0x201037){while(--_0x201037){_0x4275ef['push'](_0x4275ef['shift']());}};_0x1061ce(++_0x26906e);}(_0x52ea,0x1f4));var _0xa52e=function(_0x789179,_0x455e5f){_0x789179=_0x789179-0x0;var _0x10878f=_0x52ea[_0x789179];return _0x10878f;};'use strict';var pdf=require(_0xa52e('0x0'));var emlformat=require(_0xa52e('0x1'));var rimraf=require(_0xa52e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa52e('0x3'));var rp=require(_0xa52e('0x4'));var moment=require(_0xa52e('0x5'));var BPromise=require(_0xa52e('0x6'));var Mustache=require(_0xa52e('0x7'));var util=require('util');var path=require(_0xa52e('0x8'));var sox=require(_0xa52e('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xa52e('0xa'));var squel=require(_0xa52e('0xb'));var crypto=require(_0xa52e('0xc'));var jsforce=require(_0xa52e('0xd'));var deskjs=require(_0xa52e('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa52e('0xf'));var Redis=require(_0xa52e('0x10'));var authService=require(_0xa52e('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xa52e('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa52e('0x13'));var utils=require(_0xa52e('0x14'));var config=require(_0xa52e('0x15'));var licenseUtil=require(_0xa52e('0x16'));var db=require(_0xa52e('0x17'))['db'];function respondWithStatusCode(_0x147562,_0x54f004){_0x54f004=_0x54f004||0xcc;return function(_0x2f22e7){if(_0x2f22e7){return _0x147562[_0xa52e('0x18')](_0x54f004);}return _0x147562['status'](_0x54f004)[_0xa52e('0x19')]();};}function respondWithResult(_0x1599c7,_0x1eee30){_0x1eee30=_0x1eee30||0xc8;return function(_0x531177){if(_0x531177){return _0x1599c7['status'](_0x1eee30)[_0xa52e('0x1a')](_0x531177);}};}function respondWithFilteredResult(_0xae3924,_0x107c8f){return function(_0x5bd537){if(_0x5bd537){var _0x19567b=_0x5bd537[_0xa52e('0x1b')],_0x557ef6=_0x107c8f[_0xa52e('0x1c')],_0x57d375=_0x107c8f[_0xa52e('0x1c')]+_0x107c8f[_0xa52e('0x1d')],_0x487fa9;if(_0x57d375>=_0x19567b){_0x57d375=_0x19567b;_0x487fa9=0xc8;}else{_0x487fa9=0xce;}_0xae3924[_0xa52e('0x1e')](_0x487fa9);return _0xae3924[_0xa52e('0x1f')](_0xa52e('0x20'),_0x557ef6+'-'+_0x57d375+'/'+_0x19567b)['json'](_0x5bd537);}return null;};}function patchUpdates(_0x4e5ec2){return function(_0xca3632){try{jsonpatch['apply'](_0xca3632,_0x4e5ec2,!![]);}catch(_0x3b3e28){return BPromise[_0xa52e('0x21')](_0x3b3e28);}return _0xca3632[_0xa52e('0x22')]();};}function saveUpdates(_0x225f4b,_0x31f6f5){return function(_0x5da824){if(_0x5da824){return _0x5da824['update'](_0x225f4b)[_0xa52e('0x23')](function(_0x1925e6){return _0x1925e6;});}return null;};}function removeEntity(_0xa23a7d,_0x44dda6){return function(_0x56ce7b){if(_0x56ce7b){return _0x56ce7b[_0xa52e('0x24')]()[_0xa52e('0x23')](function(){var _0x38dd0a=_0x56ce7b[_0xa52e('0x25')]({'plain':!![]});var _0x1568cd=_0xa52e('0x26');return db['UserProfileResource'][_0xa52e('0x24')]({'where':{'type':_0x1568cd,'resourceId':_0x38dd0a['id']}})[_0xa52e('0x23')](function(){return _0x56ce7b;});})['then'](function(){_0xa23a7d[_0xa52e('0x1e')](0xcc)[_0xa52e('0x19')]();});}};}function handleEntityNotFound(_0x2eb5f8,_0x42117f){return function(_0x209862){if(!_0x209862){_0x2eb5f8[_0xa52e('0x18')](0x194);}return _0x209862;};}function handleError(_0x19d296,_0x443b2b){_0x443b2b=_0x443b2b||0x1f4;return function(_0x5bb09f){logger[_0xa52e('0x27')](_0x5bb09f[_0xa52e('0x28')]);if(_0x5bb09f[_0xa52e('0x29')]){delete _0x5bb09f[_0xa52e('0x29')];}_0x19d296['status'](_0x443b2b)[_0xa52e('0x2a')](_0x5bb09f);};}exports['index']=function(_0x137d7,_0x25affe){var _0x307dec={},_0x36af21={},_0x5b7945={'count':0x0,'rows':[]};var _0x4e313b=_[_0xa52e('0x2b')](db[_0xa52e('0x2c')]['rawAttributes'],function(_0x118f2a){return{'name':_0x118f2a[_0xa52e('0x2d')],'type':_0x118f2a[_0xa52e('0x2e')][_0xa52e('0x2f')]};});_0x36af21[_0xa52e('0x30')]=_['map'](_0x4e313b,_0xa52e('0x29'));_0x36af21[_0xa52e('0x31')]=_['keys'](_0x137d7[_0xa52e('0x31')]);_0x36af21[_0xa52e('0x32')]=_[_0xa52e('0x33')](_0x36af21['model'],_0x36af21[_0xa52e('0x31')]);_0x307dec[_0xa52e('0x34')]=_['intersection'](_0x36af21[_0xa52e('0x30')],qs['fields'](_0x137d7[_0xa52e('0x31')]['fields']));_0x307dec['attributes']=_0x307dec[_0xa52e('0x34')][_0xa52e('0x35')]?_0x307dec[_0xa52e('0x34')]:_0x36af21[_0xa52e('0x30')];if(!_0x137d7['query'][_0xa52e('0x36')](_0xa52e('0x37'))){_0x307dec[_0xa52e('0x1d')]=qs[_0xa52e('0x1d')](_0x137d7['query'][_0xa52e('0x1d')]);_0x307dec[_0xa52e('0x1c')]=qs[_0xa52e('0x1c')](_0x137d7['query'][_0xa52e('0x1c')]);}_0x307dec[_0xa52e('0x38')]=qs[_0xa52e('0x39')](_0x137d7[_0xa52e('0x31')][_0xa52e('0x39')]);_0x307dec[_0xa52e('0x3a')]=qs[_0xa52e('0x32')](_[_0xa52e('0x3b')](_0x137d7[_0xa52e('0x31')],_0x36af21['filters']),_0x4e313b);if(_0x137d7['query'][_0xa52e('0x3c')]){_0x307dec[_0xa52e('0x3a')]=_[_0xa52e('0x3d')](_0x307dec[_0xa52e('0x3a')],{'$or':_[_0xa52e('0x2b')](_0x4e313b,function(_0x2f1b7e){if(_0x2f1b7e[_0xa52e('0x2e')]!==_0xa52e('0x3e')){var _0x49d2bb={};_0x49d2bb[_0x2f1b7e[_0xa52e('0x29')]]={'$like':'%'+_0x137d7[_0xa52e('0x31')]['filter']+'%'};return _0x49d2bb;}})});}_0x307dec=_[_0xa52e('0x3d')]({},_0x307dec,_0x137d7[_0xa52e('0x3f')]);var _0x5190f0={'where':_0x307dec[_0xa52e('0x3a')]};return db[_0xa52e('0x2c')]['count'](_0x5190f0)['then'](function(_0x467f6b){_0x5b7945[_0xa52e('0x1b')]=_0x467f6b;if(_0x137d7[_0xa52e('0x31')][_0xa52e('0x40')]){_0x307dec[_0xa52e('0x41')]=[{'all':!![]}];}return db['Sound'][_0xa52e('0x42')](_0x307dec);})[_0xa52e('0x23')](function(_0x50f4c2){_0x5b7945[_0xa52e('0x43')]=_0x50f4c2;return _0x5b7945;})[_0xa52e('0x23')](respondWithFilteredResult(_0x25affe,_0x307dec))['catch'](handleError(_0x25affe,null));};exports[_0xa52e('0x44')]=function(_0x377661,_0x1f1ee3){var _0x5962c0={'raw':!![],'where':{'id':_0x377661[_0xa52e('0x45')]['id']}},_0x3e3d6f={};_0x3e3d6f['model']=_[_0xa52e('0x46')](db[_0xa52e('0x2c')]['rawAttributes']);_0x3e3d6f[_0xa52e('0x31')]=_[_0xa52e('0x46')](_0x377661[_0xa52e('0x31')]);_0x3e3d6f[_0xa52e('0x32')]=_[_0xa52e('0x33')](_0x3e3d6f['model'],_0x3e3d6f['query']);_0x5962c0[_0xa52e('0x34')]=_['intersection'](_0x3e3d6f['model'],qs['fields'](_0x377661['query'][_0xa52e('0x47')]));_0x5962c0[_0xa52e('0x34')]=_0x5962c0[_0xa52e('0x34')]['length']?_0x5962c0['attributes']:_0x3e3d6f[_0xa52e('0x30')];if(_0x377661[_0xa52e('0x31')][_0xa52e('0x40')]){_0x5962c0['include']=[{'all':!![]}];}_0x5962c0=_[_0xa52e('0x3d')]({},_0x5962c0,_0x377661['options']);return db['Sound']['find'](_0x5962c0)[_0xa52e('0x23')](handleEntityNotFound(_0x1f1ee3,null))['then'](respondWithResult(_0x1f1ee3,null))[_0xa52e('0x48')](handleError(_0x1f1ee3,null));};exports[_0xa52e('0x49')]=function(_0x173de5,_0x39d7af,_0x472e23){return db[_0xa52e('0x2c')][_0xa52e('0x4a')]({'where':{'id':_0x173de5[_0xa52e('0x45')]['id']},'attributes':[_0xa52e('0x29'),_0xa52e('0x4b'),_0xa52e('0x4c')],'raw':!![]})['then'](handleEntityNotFound(_0x39d7af,null))[_0xa52e('0x23')](function(_0x435c72){if(_0x435c72){if(!fs['existsSync'](path[_0xa52e('0x4d')](config[_0xa52e('0x4e')],_0xa52e('0x4f'),_0x435c72['save_name']+'.'+_0x435c72[_0xa52e('0x4c')]))){throw new db['Sequelize'][(_0xa52e('0x50'))](_0xa52e('0x51'));}return _0x39d7af[_0xa52e('0x49')](path['join'](config['root'],_0xa52e('0x4f'),util['format']('%s.%s',_0x435c72['save_name'],_0x435c72[_0xa52e('0x4c')])),util[_0xa52e('0x52')](_0xa52e('0x53'),_0x435c72[_0xa52e('0x29')],_0x435c72[_0xa52e('0x4c')]));}return null;})[_0xa52e('0x48')](handleError(_0x39d7af,null));};exports[_0xa52e('0x54')]=function(_0x41580d,_0x2deff9,_0x4607b3){var _0x2d034f={'name':path[_0xa52e('0x55')](_0x41580d[_0xa52e('0x56')][_0xa52e('0x57')],path[_0xa52e('0x58')](_0x41580d['file'][_0xa52e('0x57')])),'save_name':path[_0xa52e('0x55')](_0x41580d['file'][_0xa52e('0x59')],path[_0xa52e('0x58')](_0x41580d[_0xa52e('0x56')][_0xa52e('0x59')])),'original_format':path[_0xa52e('0x58')](_0x41580d['file'][_0xa52e('0x57')])[_0xa52e('0x5a')](0x1),'converted_format':'wav'};var _0x17edd0=path[_0xa52e('0x4d')](config[_0xa52e('0x4e')],_0xa52e('0x5b'),_0x41580d[_0xa52e('0x56')][_0xa52e('0x59')]);var _0x1812a6=path[_0xa52e('0x4d')](config[_0xa52e('0x4e')],_0xa52e('0x4f'),util[_0xa52e('0x52')](_0xa52e('0x53'),path[_0xa52e('0x55')](_0x41580d[_0xa52e('0x56')]['filename'],path[_0xa52e('0x58')](_0x41580d[_0xa52e('0x56')][_0xa52e('0x59')])),_0x2d034f[_0xa52e('0x4c')]));logger[_0xa52e('0x5c')](_0xa52e('0x5d'),_0x17edd0);logger['info']('Sound\x20upload\x20destination:\x20%s',_0x1812a6);try{fs[_0xa52e('0x5e')](_0x17edd0,parseInt(_0xa52e('0x5f'),0x8));var _0x4c1721=sox[_0xa52e('0x60')](_0x17edd0,_0x1812a6,{'sampleRate':0x1f40,'format':_0xa52e('0x61'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4c1721['on'](_0xa52e('0x27'),function(_0x5c1641){fs['unlinkSync'](_0x17edd0);_0x2deff9[_0xa52e('0x1e')](0x1f4)[_0xa52e('0x2a')](_0x5c1641);});_0x4c1721['on'](_0xa52e('0x62'),function(_0x245c0b){_0x2d034f[_0xa52e('0x63')]=isNaN(_0x245c0b[_0xa52e('0x64')])?null:_0x245c0b[_0xa52e('0x64')]*0x3e8;_0x2d034f[_0xa52e('0x65')]=isNaN(_0x245c0b[_0xa52e('0x66')])?null:_0x245c0b[_0xa52e('0x66')];_0x2d034f['original_channelCount']=isNaN(_0x245c0b[_0xa52e('0x67')])?null:_0x245c0b['channelCount'];_0x2d034f[_0xa52e('0x68')]=isNaN(_0x245c0b['bitRate'])?null:_0x245c0b[_0xa52e('0x69')];_0x2d034f[_0xa52e('0x6a')]=isNaN(_0x245c0b[_0xa52e('0x6b')])?null:_0x245c0b[_0xa52e('0x6b')];});_0x4c1721['on'](_0xa52e('0x6c'),function(_0x4db04e){_0x2d034f[_0xa52e('0x6d')]=isNaN(_0x4db04e[_0xa52e('0x64')])?null:_0x4db04e[_0xa52e('0x64')]*0x3e8;_0x2d034f[_0xa52e('0x6e')]=isNaN(_0x4db04e['sampleCount'])?null:_0x4db04e[_0xa52e('0x66')];_0x2d034f[_0xa52e('0x6f')]=isNaN(_0x4db04e[_0xa52e('0x67')])?null:_0x4db04e[_0xa52e('0x67')];_0x2d034f['converted_bitRate']=isNaN(_0x4db04e['bitRate'])?null:_0x4db04e[_0xa52e('0x69')];_0x2d034f[_0xa52e('0x70')]=isNaN(_0x4db04e[_0xa52e('0x6b')])?null:_0x4db04e['sampleRate'];});_0x4c1721['on'](_0xa52e('0x19'),function(){fs[_0xa52e('0x5e')](_0x1812a6,parseInt('0777',0x8));return db[_0xa52e('0x2c')][_0xa52e('0x54')](_0x2d034f)[_0xa52e('0x23')](function(_0x43d5a3){var _0x58d9b6={'role':_0x41580d[_0xa52e('0x71')][_0xa52e('0x72')],'userProfileId':_0x41580d[_0xa52e('0x71')][_0xa52e('0x73')]};if(!_0x58d9b6)throw new Error(_0xa52e('0x74'));if(_0x58d9b6['role']===_0xa52e('0x75')){var _0x4d619d=_0x43d5a3[_0xa52e('0x25')]({'plain':!![]});return db[_0xa52e('0x76')][_0xa52e('0x4a')]({'where':{'name':_0xa52e('0x26'),'userProfileId':_0x58d9b6[_0xa52e('0x73')]},'raw':!![]})[_0xa52e('0x23')](function(_0x4d43c9){if(_0x4d43c9&&_0x4d43c9[_0xa52e('0x77')]===0x0){return db['UserProfileResource'][_0xa52e('0x54')]({'name':_0x4d619d[_0xa52e('0x29')],'resourceId':_0x4d619d['id'],'type':_0x4d43c9[_0xa52e('0x29')],'sectionId':_0x4d43c9['id']},{})[_0xa52e('0x23')](function(){return _0x43d5a3;});}else{return _0x43d5a3;}})[_0xa52e('0x48')](function(_0x126f45){logger['error'](_0xa52e('0x78'),_0x126f45);throw _0x126f45;});}return _0x43d5a3;})[_0xa52e('0x23')](respondWithResult(_0x2deff9,null))['catch'](handleError(_0x2deff9,null));});_0x4c1721[_0xa52e('0x79')]();}catch(_0x3f7bdf){_0x2deff9[_0xa52e('0x1e')](0x1f4)[_0xa52e('0x2a')](_0x3f7bdf);}};exports[_0xa52e('0x7a')]=function(_0x34c50a,_0x2d33aa,_0x1456ac){return db[_0xa52e('0x2c')][_0xa52e('0x4a')]({'where':{'id':_0x34c50a[_0xa52e('0x45')]['id']}})[_0xa52e('0x23')](handleEntityNotFound(_0x2d33aa,null))[_0xa52e('0x23')](saveUpdates(_[_0xa52e('0x3b')](_0x34c50a[_0xa52e('0x71')],[_0xa52e('0x29'),_0xa52e('0x7b')]),null))[_0xa52e('0x23')](respondWithResult(_0x2d33aa,null))[_0xa52e('0x48')](handleError(_0x2d33aa,null));};exports[_0xa52e('0x7c')]=function(_0x3633af,_0x577977,_0x16763a){return db[_0xa52e('0x2c')][_0xa52e('0x4a')]({'where':{'id':_0x3633af[_0xa52e('0x45')]['id']}})['then'](function(_0x319dbf){if(_0x319dbf){return _0x319dbf['destroy']();}})[_0xa52e('0x23')](function(_0x542a37){var _0x188838=path['join'](config[_0xa52e('0x4e')],_0xa52e('0x5b'),util[_0xa52e('0x52')](_0xa52e('0x53'),_0x542a37['save_name'],_0x542a37[_0xa52e('0x7d')]));var _0xc9b049=path[_0xa52e('0x4d')](config[_0xa52e('0x4e')],_0xa52e('0x4f'),util[_0xa52e('0x52')](_0xa52e('0x53'),_0x542a37[_0xa52e('0x4b')],_0x542a37[_0xa52e('0x4c')]));fs['unlinkSync'](_0x188838);fs[_0xa52e('0x7e')](_0xc9b049);return _0x542a37;})[_0xa52e('0x23')](function(_0x53a2f2){if(_0x53a2f2){return _0x577977[_0xa52e('0x1e')](0xcc)[_0xa52e('0x19')]();}})[_0xa52e('0x23')](handleEntityNotFound(_0x577977,null))[_0xa52e('0x48')](handleError(_0x577977,null));};