9c0500b8e44f45dd481cf1ef15519763aa5428b6
[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 _0xb645=['Sounds','UserProfileResource','then','end','error','name','send','map','rawAttributes','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','nolimit','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','include','Sound','findAll','rows','catch','show','params','find','download','converted_format','existsSync','root','save_name','Sequelize','ValidationError','Sound\x20not\x20found','join','format','%s.%s','basename','file','extname','originalname','filename','substring','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','unlinkSync','duration','sampleCount','original_channelCount','channelCount','bitRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','pick','description','delete','original_format','server/files/sounds/converted','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','count','limit','Content-Range','apply','reject','save','update','destroy','get'];(function(_0xada4b6,_0x5a7960){var _0x18a7e0=function(_0x382311){while(--_0x382311){_0xada4b6['push'](_0xada4b6['shift']());}};_0x18a7e0(++_0x5a7960);}(_0xb645,0x153));var _0x5b64=function(_0x382fd7,_0x1f3a02){_0x382fd7=_0x382fd7-0x0;var _0x507671=_0xb645[_0x382fd7];return _0x507671;};'use strict';var emlformat=require(_0x5b64('0x0'));var rimraf=require(_0x5b64('0x1'));var zipdir=require(_0x5b64('0x2'));var jsonpatch=require(_0x5b64('0x3'));var rp=require('request-promise');var moment=require(_0x5b64('0x4'));var BPromise=require(_0x5b64('0x5'));var Mustache=require(_0x5b64('0x6'));var util=require(_0x5b64('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x5b64('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5b64('0x9'));var _=require(_0x5b64('0xa'));var squel=require(_0x5b64('0xb'));var crypto=require(_0x5b64('0xc'));var jsforce=require(_0x5b64('0xd'));var deskjs=require(_0x5b64('0xe'));var toCsv=require(_0x5b64('0x8'));var querystring=require(_0x5b64('0xf'));var Papa=require(_0x5b64('0x10'));var Redis=require('ioredis');var authService=require(_0x5b64('0x11'));var qs=require(_0x5b64('0x12'));var as=require(_0x5b64('0x13'));var hardwareService=require(_0x5b64('0x14'));var logger=require(_0x5b64('0x15'))(_0x5b64('0x16'));var utils=require(_0x5b64('0x17'));var config=require(_0x5b64('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x5b64('0x19'))['db'];function respondWithStatusCode(_0x5f54fe,_0x2799a8){_0x2799a8=_0x2799a8||0xcc;return function(_0x19b545){if(_0x19b545){return _0x5f54fe[_0x5b64('0x1a')](_0x2799a8);}return _0x5f54fe[_0x5b64('0x1b')](_0x2799a8)['end']();};}function respondWithResult(_0xf7abe9,_0x4517ca){_0x4517ca=_0x4517ca||0xc8;return function(_0x14185d){if(_0x14185d){return _0xf7abe9['status'](_0x4517ca)['json'](_0x14185d);}};}function respondWithFilteredResult(_0x3fe042,_0x23c21a){return function(_0x20a20e){if(_0x20a20e){var _0x4539fd=typeof _0x23c21a[_0x5b64('0x1c')]===_0x5b64('0x1d')&&typeof _0x23c21a['limit']===_0x5b64('0x1d');var _0x5b9d19=_0x20a20e['count'];var _0x383002=_0x4539fd?0x0:_0x23c21a[_0x5b64('0x1c')];var _0x6a7acf=_0x4539fd?_0x20a20e[_0x5b64('0x1e')]:_0x23c21a['offset']+_0x23c21a[_0x5b64('0x1f')];var _0x39c027;if(_0x6a7acf>=_0x5b9d19){_0x6a7acf=_0x5b9d19;_0x39c027=0xc8;}else{_0x39c027=0xce;}_0x3fe042[_0x5b64('0x1b')](_0x39c027);return _0x3fe042['set'](_0x5b64('0x20'),_0x383002+'-'+_0x6a7acf+'/'+_0x5b9d19)['json'](_0x20a20e);}return null;};}function patchUpdates(_0x557075){return function(_0x246605){try{jsonpatch[_0x5b64('0x21')](_0x246605,_0x557075,!![]);}catch(_0x15f7c6){return BPromise[_0x5b64('0x22')](_0x15f7c6);}return _0x246605[_0x5b64('0x23')]();};}function saveUpdates(_0xddbe60,_0x4d8699){return function(_0x5f204b){if(_0x5f204b){return _0x5f204b[_0x5b64('0x24')](_0xddbe60)['then'](function(_0x8e0d76){return _0x8e0d76;});}return null;};}function removeEntity(_0x3659e4,_0x43b44a){return function(_0x47284f){if(_0x47284f){return _0x47284f[_0x5b64('0x25')]()['then'](function(){var _0x42ee2d=_0x47284f[_0x5b64('0x26')]({'plain':!![]});var _0x47450a=_0x5b64('0x27');return db[_0x5b64('0x28')][_0x5b64('0x25')]({'where':{'type':_0x47450a,'resourceId':_0x42ee2d['id']}})[_0x5b64('0x29')](function(){return _0x47284f;});})[_0x5b64('0x29')](function(){_0x3659e4[_0x5b64('0x1b')](0xcc)[_0x5b64('0x2a')]();});}};}function handleEntityNotFound(_0x32c4b1,_0x3fc87b){return function(_0x2f74e5){if(!_0x2f74e5){_0x32c4b1[_0x5b64('0x1a')](0x194);}return _0x2f74e5;};}function handleError(_0x323847,_0x445df3){_0x445df3=_0x445df3||0x1f4;return function(_0x43121f){logger[_0x5b64('0x2b')](_0x43121f['stack']);if(_0x43121f['name']){delete _0x43121f[_0x5b64('0x2c')];}_0x323847['status'](_0x445df3)[_0x5b64('0x2d')](_0x43121f);};}exports['index']=function(_0x4f4ba1,_0x2de4d7){var _0xb6f04e={},_0x375bc7={},_0x4352f9={'count':0x0,'rows':[]};var _0x539c03=_[_0x5b64('0x2e')](db['Sound'][_0x5b64('0x2f')],function(_0x2a26ff){return{'name':_0x2a26ff[_0x5b64('0x30')],'type':_0x2a26ff[_0x5b64('0x31')][_0x5b64('0x32')]};});_0x375bc7['model']=_[_0x5b64('0x2e')](_0x539c03,_0x5b64('0x2c'));_0x375bc7[_0x5b64('0x33')]=_[_0x5b64('0x34')](_0x4f4ba1['query']);_0x375bc7['filters']=_[_0x5b64('0x35')](_0x375bc7[_0x5b64('0x36')],_0x375bc7[_0x5b64('0x33')]);_0xb6f04e[_0x5b64('0x37')]=_[_0x5b64('0x35')](_0x375bc7[_0x5b64('0x36')],qs[_0x5b64('0x38')](_0x4f4ba1[_0x5b64('0x33')]['fields']));_0xb6f04e[_0x5b64('0x37')]=_0xb6f04e[_0x5b64('0x37')][_0x5b64('0x39')]?_0xb6f04e[_0x5b64('0x37')]:_0x375bc7[_0x5b64('0x36')];if(!_0x4f4ba1['query']['hasOwnProperty'](_0x5b64('0x3a'))){_0xb6f04e[_0x5b64('0x1f')]=qs[_0x5b64('0x1f')](_0x4f4ba1['query'][_0x5b64('0x1f')]);_0xb6f04e[_0x5b64('0x1c')]=qs['offset'](_0x4f4ba1[_0x5b64('0x33')]['offset']);}_0xb6f04e['order']=qs[_0x5b64('0x3b')](_0x4f4ba1[_0x5b64('0x33')][_0x5b64('0x3b')]);_0xb6f04e[_0x5b64('0x3c')]=qs[_0x5b64('0x3d')](_['pick'](_0x4f4ba1[_0x5b64('0x33')],_0x375bc7[_0x5b64('0x3d')]),_0x539c03);if(_0x4f4ba1[_0x5b64('0x33')][_0x5b64('0x3e')]){_0xb6f04e[_0x5b64('0x3c')]=_[_0x5b64('0x3f')](_0xb6f04e[_0x5b64('0x3c')],{'$or':_[_0x5b64('0x2e')](_0x539c03,function(_0x4502bc){if(_0x4502bc[_0x5b64('0x31')]!==_0x5b64('0x40')){var _0x451b68={};_0x451b68[_0x4502bc[_0x5b64('0x2c')]]={'$like':'%'+_0x4f4ba1['query'][_0x5b64('0x3e')]+'%'};return _0x451b68;}})});}_0xb6f04e=_[_0x5b64('0x3f')]({},_0xb6f04e,_0x4f4ba1[_0x5b64('0x41')]);var _0x3265a7={'where':_0xb6f04e['where']};return db['Sound']['count'](_0x3265a7)[_0x5b64('0x29')](function(_0x53ca4d){_0x4352f9[_0x5b64('0x1e')]=_0x53ca4d;if(_0x4f4ba1[_0x5b64('0x33')][_0x5b64('0x42')]){_0xb6f04e[_0x5b64('0x43')]=[{'all':!![]}];}return db[_0x5b64('0x44')][_0x5b64('0x45')](_0xb6f04e);})[_0x5b64('0x29')](function(_0x40b8f5){_0x4352f9[_0x5b64('0x46')]=_0x40b8f5;return _0x4352f9;})['then'](respondWithFilteredResult(_0x2de4d7,_0xb6f04e))[_0x5b64('0x47')](handleError(_0x2de4d7,null));};exports[_0x5b64('0x48')]=function(_0x4ca3e6,_0x4fed7c){var _0x44ae04={'raw':!![],'where':{'id':_0x4ca3e6[_0x5b64('0x49')]['id']}},_0x2eecb1={};_0x2eecb1['model']=_[_0x5b64('0x34')](db[_0x5b64('0x44')]['rawAttributes']);_0x2eecb1[_0x5b64('0x33')]=_['keys'](_0x4ca3e6[_0x5b64('0x33')]);_0x2eecb1[_0x5b64('0x3d')]=_[_0x5b64('0x35')](_0x2eecb1[_0x5b64('0x36')],_0x2eecb1[_0x5b64('0x33')]);_0x44ae04[_0x5b64('0x37')]=_[_0x5b64('0x35')](_0x2eecb1['model'],qs['fields'](_0x4ca3e6[_0x5b64('0x33')][_0x5b64('0x38')]));_0x44ae04[_0x5b64('0x37')]=_0x44ae04[_0x5b64('0x37')][_0x5b64('0x39')]?_0x44ae04['attributes']:_0x2eecb1['model'];if(_0x4ca3e6[_0x5b64('0x33')][_0x5b64('0x42')]){_0x44ae04[_0x5b64('0x43')]=[{'all':!![]}];}_0x44ae04=_[_0x5b64('0x3f')]({},_0x44ae04,_0x4ca3e6[_0x5b64('0x41')]);return db[_0x5b64('0x44')][_0x5b64('0x4a')](_0x44ae04)['then'](handleEntityNotFound(_0x4fed7c,null))[_0x5b64('0x29')](respondWithResult(_0x4fed7c,null))[_0x5b64('0x47')](handleError(_0x4fed7c,null));};exports[_0x5b64('0x4b')]=function(_0x5d9ea1,_0x270ee5,_0x1372f6){return db[_0x5b64('0x44')][_0x5b64('0x4a')]({'where':{'id':_0x5d9ea1[_0x5b64('0x49')]['id']},'attributes':[_0x5b64('0x2c'),'save_name',_0x5b64('0x4c')],'raw':!![]})[_0x5b64('0x29')](handleEntityNotFound(_0x270ee5,null))[_0x5b64('0x29')](function(_0x217409){if(_0x217409){if(!fs[_0x5b64('0x4d')](path['join'](config[_0x5b64('0x4e')],'server/files/sounds/converted',_0x217409[_0x5b64('0x4f')]+'.'+_0x217409[_0x5b64('0x4c')]))){throw new db[(_0x5b64('0x50'))][(_0x5b64('0x51'))](_0x5b64('0x52'));}return _0x270ee5[_0x5b64('0x4b')](path[_0x5b64('0x53')](config[_0x5b64('0x4e')],'server/files/sounds/converted',util[_0x5b64('0x54')](_0x5b64('0x55'),_0x217409[_0x5b64('0x4f')],_0x217409[_0x5b64('0x4c')])),util[_0x5b64('0x54')]('%s.%s',_0x217409[_0x5b64('0x2c')],_0x217409['converted_format']));}return null;})[_0x5b64('0x47')](handleError(_0x270ee5,null));};exports['create']=function(_0x29c089,_0x5a094c,_0x5b42de){var _0x1f2c45={'name':path[_0x5b64('0x56')](_0x29c089[_0x5b64('0x57')]['originalname'],path[_0x5b64('0x58')](_0x29c089[_0x5b64('0x57')][_0x5b64('0x59')])),'save_name':path[_0x5b64('0x56')](_0x29c089[_0x5b64('0x57')]['filename'],path[_0x5b64('0x58')](_0x29c089['file'][_0x5b64('0x5a')])),'original_format':path[_0x5b64('0x58')](_0x29c089[_0x5b64('0x57')][_0x5b64('0x59')])[_0x5b64('0x5b')](0x1),'converted_format':'wav'};var _0x3e9013=path[_0x5b64('0x53')](config[_0x5b64('0x4e')],_0x5b64('0x5c'),_0x29c089['file'][_0x5b64('0x5a')]);var _0x5e4747=path['join'](config[_0x5b64('0x4e')],'server/files/sounds/converted',util['format'](_0x5b64('0x55'),path[_0x5b64('0x56')](_0x29c089[_0x5b64('0x57')]['filename'],path[_0x5b64('0x58')](_0x29c089[_0x5b64('0x57')][_0x5b64('0x5a')])),_0x1f2c45[_0x5b64('0x4c')]));logger[_0x5b64('0x5d')](_0x5b64('0x5e'),_0x3e9013);logger[_0x5b64('0x5d')](_0x5b64('0x5f'),_0x5e4747);try{fs[_0x5b64('0x60')](_0x3e9013,parseInt(_0x5b64('0x61'),0x8));var _0x74d6a=sox['transcode'](_0x3e9013,_0x5e4747,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x74d6a['on'](_0x5b64('0x2b'),function(_0x10a2be){fs[_0x5b64('0x62')](_0x3e9013);_0x5a094c[_0x5b64('0x1b')](0x1f4)['send'](_0x10a2be);});_0x74d6a['on']('src',function(_0x5509c0){_0x1f2c45['original_duration']=isNaN(_0x5509c0['duration'])?null:_0x5509c0[_0x5b64('0x63')]*0x3e8;_0x1f2c45['original_sampleCount']=isNaN(_0x5509c0[_0x5b64('0x64')])?null:_0x5509c0[_0x5b64('0x64')];_0x1f2c45[_0x5b64('0x65')]=isNaN(_0x5509c0[_0x5b64('0x66')])?null:_0x5509c0['channelCount'];_0x1f2c45['original_bitRate']=isNaN(_0x5509c0['bitRate'])?null:_0x5509c0[_0x5b64('0x67')];_0x1f2c45['original_sampleRate']=isNaN(_0x5509c0[_0x5b64('0x68')])?null:_0x5509c0[_0x5b64('0x68')];});_0x74d6a['on'](_0x5b64('0x69'),function(_0x970857){_0x1f2c45[_0x5b64('0x6a')]=isNaN(_0x970857[_0x5b64('0x63')])?null:_0x970857['duration']*0x3e8;_0x1f2c45[_0x5b64('0x6b')]=isNaN(_0x970857[_0x5b64('0x64')])?null:_0x970857['sampleCount'];_0x1f2c45[_0x5b64('0x6c')]=isNaN(_0x970857[_0x5b64('0x66')])?null:_0x970857['channelCount'];_0x1f2c45[_0x5b64('0x6d')]=isNaN(_0x970857[_0x5b64('0x67')])?null:_0x970857[_0x5b64('0x67')];_0x1f2c45[_0x5b64('0x6e')]=isNaN(_0x970857[_0x5b64('0x68')])?null:_0x970857[_0x5b64('0x68')];});_0x74d6a['on'](_0x5b64('0x2a'),function(){fs[_0x5b64('0x60')](_0x5e4747,parseInt(_0x5b64('0x61'),0x8));return db[_0x5b64('0x44')][_0x5b64('0x6f')](_0x1f2c45)[_0x5b64('0x29')](function(_0xbde682){var _0x5dbec9={'role':_0x29c089[_0x5b64('0x70')][_0x5b64('0x71')],'userProfileId':_0x29c089[_0x5b64('0x70')]['userProfileId']};if(!_0x5dbec9)throw new Error(_0x5b64('0x72'));if(_0x5dbec9['role']===_0x5b64('0x73')){var _0x46241f=_0xbde682[_0x5b64('0x26')]({'plain':!![]});return db[_0x5b64('0x74')][_0x5b64('0x4a')]({'where':{'name':_0x5b64('0x27'),'userProfileId':_0x5dbec9[_0x5b64('0x75')]},'raw':!![]})['then'](function(_0x6b8b79){if(_0x6b8b79&&_0x6b8b79[_0x5b64('0x76')]===0x0){return db['UserProfileResource'][_0x5b64('0x6f')]({'name':_0x46241f['name'],'resourceId':_0x46241f['id'],'type':_0x6b8b79[_0x5b64('0x2c')],'sectionId':_0x6b8b79['id']},{})[_0x5b64('0x29')](function(){return _0xbde682;});}else{return _0xbde682;}})[_0x5b64('0x47')](function(_0x5aed5c){logger[_0x5b64('0x2b')](_0x5b64('0x77'),_0x5aed5c);throw _0x5aed5c;});}return _0xbde682;})['then'](respondWithResult(_0x5a094c,null))['catch'](handleError(_0x5a094c,null));});_0x74d6a[_0x5b64('0x78')]();}catch(_0x18d653){_0x5a094c[_0x5b64('0x1b')](0x1f4)[_0x5b64('0x2d')](_0x18d653);}};exports[_0x5b64('0x24')]=function(_0x3375de,_0x9e2e9e,_0x481e31){return db['Sound'][_0x5b64('0x4a')]({'where':{'id':_0x3375de[_0x5b64('0x49')]['id']}})[_0x5b64('0x29')](handleEntityNotFound(_0x9e2e9e,null))[_0x5b64('0x29')](saveUpdates(_[_0x5b64('0x79')](_0x3375de[_0x5b64('0x70')],[_0x5b64('0x2c'),_0x5b64('0x7a')]),null))[_0x5b64('0x29')](respondWithResult(_0x9e2e9e,null))['catch'](handleError(_0x9e2e9e,null));};exports[_0x5b64('0x7b')]=function(_0x40af7b,_0x562f9f,_0x1af5b9){return db[_0x5b64('0x44')]['find']({'where':{'id':_0x40af7b[_0x5b64('0x49')]['id']}})[_0x5b64('0x29')](function(_0x3148d6){if(_0x3148d6){return _0x3148d6[_0x5b64('0x25')]();}})[_0x5b64('0x29')](function(_0x17ccfa){var _0x2b70c7=path['join'](config[_0x5b64('0x4e')],_0x5b64('0x5c'),util[_0x5b64('0x54')](_0x5b64('0x55'),_0x17ccfa[_0x5b64('0x4f')],_0x17ccfa[_0x5b64('0x7c')]));var _0x50b2b9=path[_0x5b64('0x53')](config['root'],_0x5b64('0x7d'),util[_0x5b64('0x54')](_0x5b64('0x55'),_0x17ccfa[_0x5b64('0x4f')],_0x17ccfa[_0x5b64('0x4c')]));fs[_0x5b64('0x62')](_0x2b70c7);fs[_0x5b64('0x62')](_0x50b2b9);return _0x17ccfa;})[_0x5b64('0x29')](function(_0x5b1fba){if(_0x5b1fba){return _0x562f9f[_0x5b64('0x1b')](0xcc)['end']();}})[_0x5b64('0x29')](handleEntityNotFound(_0x562f9f,null))[_0x5b64('0x47')](handleError(_0x562f9f,null));};