Built motion from commit b5413ace.|2.6.9
[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 _0xefb9=['end','json','offset','undefined','count','set','Content-Range','apply','reject','update','then','destroy','get','Sounds','UserProfileResource','error','stack','name','send','index','map','Sound','rawAttributes','fieldName','type','key','query','filters','model','intersection','attributes','nolimit','limit','order','sort','where','pick','merge','filter','options','includeAll','include','findAll','rows','catch','show','keys','fields','length','find','download','converted_format','join','server/files/sounds/converted','save_name','Sequelize','ValidationError','Sound\x20not\x20found','root','format','create','originalname','file','basename','filename','extname','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s','0777','unlinkSync','src','original_duration','original_sampleCount','sampleCount','original_channelCount','sampleRate','dest','converted_duration','duration','converted_channelCount','channelCount','converted_bitRate','bitRate','converted_sampleRate','chmodSync','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','params','description','delete','%s.%s','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x30bf04,_0xc060d1){var _0x255b00=function(_0x332f8b){while(--_0x332f8b){_0x30bf04['push'](_0x30bf04['shift']());}};_0x255b00(++_0xc060d1);}(_0xefb9,0x164));var _0x9efb=function(_0x3740fe,_0x6c543c){_0x3740fe=_0x3740fe-0x0;var _0x55492b=_0xefb9[_0x3740fe];return _0x55492b;};'use strict';var emlformat=require(_0x9efb('0x0'));var rimraf=require(_0x9efb('0x1'));var zipdir=require(_0x9efb('0x2'));var jsonpatch=require(_0x9efb('0x3'));var rp=require(_0x9efb('0x4'));var moment=require(_0x9efb('0x5'));var BPromise=require(_0x9efb('0x6'));var Mustache=require(_0x9efb('0x7'));var util=require('util');var path=require(_0x9efb('0x8'));var sox=require(_0x9efb('0x9'));var csv=require(_0x9efb('0xa'));var ejs=require(_0x9efb('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9efb('0xc'));var squel=require(_0x9efb('0xd'));var crypto=require(_0x9efb('0xe'));var jsforce=require(_0x9efb('0xf'));var deskjs=require(_0x9efb('0x10'));var toCsv=require(_0x9efb('0xa'));var querystring=require(_0x9efb('0x11'));var Papa=require(_0x9efb('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9efb('0x13'))(_0x9efb('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x9efb('0x15'));var db=require(_0x9efb('0x16'))['db'];function respondWithStatusCode(_0x4c645a,_0x40614f){_0x40614f=_0x40614f||0xcc;return function(_0x5dd1be){if(_0x5dd1be){return _0x4c645a[_0x9efb('0x17')](_0x40614f);}return _0x4c645a[_0x9efb('0x18')](_0x40614f)[_0x9efb('0x19')]();};}function respondWithResult(_0x183de8,_0x4b4a38){_0x4b4a38=_0x4b4a38||0xc8;return function(_0xd1477e){if(_0xd1477e){return _0x183de8[_0x9efb('0x18')](_0x4b4a38)[_0x9efb('0x1a')](_0xd1477e);}};}function respondWithFilteredResult(_0x762594,_0x517b0d){return function(_0x1c9a29){if(_0x1c9a29){var _0x1739fb=typeof _0x517b0d[_0x9efb('0x1b')]===_0x9efb('0x1c')&&typeof _0x517b0d['limit']==='undefined';var _0x5a9465=_0x1c9a29['count'];var _0x2a5649=_0x1739fb?0x0:_0x517b0d[_0x9efb('0x1b')];var _0x34be94=_0x1739fb?_0x1c9a29[_0x9efb('0x1d')]:_0x517b0d[_0x9efb('0x1b')]+_0x517b0d['limit'];var _0x559d0f;if(_0x34be94>=_0x5a9465){_0x34be94=_0x5a9465;_0x559d0f=0xc8;}else{_0x559d0f=0xce;}_0x762594[_0x9efb('0x18')](_0x559d0f);return _0x762594[_0x9efb('0x1e')](_0x9efb('0x1f'),_0x2a5649+'-'+_0x34be94+'/'+_0x5a9465)['json'](_0x1c9a29);}return null;};}function patchUpdates(_0xf6cab5){return function(_0x534b70){try{jsonpatch[_0x9efb('0x20')](_0x534b70,_0xf6cab5,!![]);}catch(_0x5383ca){return BPromise[_0x9efb('0x21')](_0x5383ca);}return _0x534b70['save']();};}function saveUpdates(_0x1d72a8,_0x2b897b){return function(_0x728283){if(_0x728283){return _0x728283[_0x9efb('0x22')](_0x1d72a8)[_0x9efb('0x23')](function(_0x1cbc12){return _0x1cbc12;});}return null;};}function removeEntity(_0x5a7a43,_0x3132fc){return function(_0x31958e){if(_0x31958e){return _0x31958e[_0x9efb('0x24')]()['then'](function(){var _0x47466e=_0x31958e[_0x9efb('0x25')]({'plain':!![]});var _0x2737b3=_0x9efb('0x26');return db[_0x9efb('0x27')][_0x9efb('0x24')]({'where':{'type':_0x2737b3,'resourceId':_0x47466e['id']}})[_0x9efb('0x23')](function(){return _0x31958e;});})['then'](function(){_0x5a7a43[_0x9efb('0x18')](0xcc)[_0x9efb('0x19')]();});}};}function handleEntityNotFound(_0x3cb2b2,_0x4f9e05){return function(_0x2fd38c){if(!_0x2fd38c){_0x3cb2b2['sendStatus'](0x194);}return _0x2fd38c;};}function handleError(_0x26145f,_0x5ee23c){_0x5ee23c=_0x5ee23c||0x1f4;return function(_0x1c4c7f){logger[_0x9efb('0x28')](_0x1c4c7f[_0x9efb('0x29')]);if(_0x1c4c7f['name']){delete _0x1c4c7f[_0x9efb('0x2a')];}_0x26145f['status'](_0x5ee23c)[_0x9efb('0x2b')](_0x1c4c7f);};}exports[_0x9efb('0x2c')]=function(_0x20f6a8,_0x24ae52){var _0xe63df={},_0xf23ee8={},_0x1a60be={'count':0x0,'rows':[]};var _0x1f01f1=_[_0x9efb('0x2d')](db[_0x9efb('0x2e')][_0x9efb('0x2f')],function(_0x2a2562){return{'name':_0x2a2562[_0x9efb('0x30')],'type':_0x2a2562[_0x9efb('0x31')][_0x9efb('0x32')]};});_0xf23ee8['model']=_[_0x9efb('0x2d')](_0x1f01f1,_0x9efb('0x2a'));_0xf23ee8['query']=_['keys'](_0x20f6a8[_0x9efb('0x33')]);_0xf23ee8[_0x9efb('0x34')]=_['intersection'](_0xf23ee8[_0x9efb('0x35')],_0xf23ee8[_0x9efb('0x33')]);_0xe63df['attributes']=_[_0x9efb('0x36')](_0xf23ee8[_0x9efb('0x35')],qs['fields'](_0x20f6a8[_0x9efb('0x33')]['fields']));_0xe63df[_0x9efb('0x37')]=_0xe63df[_0x9efb('0x37')]['length']?_0xe63df[_0x9efb('0x37')]:_0xf23ee8[_0x9efb('0x35')];if(!_0x20f6a8[_0x9efb('0x33')]['hasOwnProperty'](_0x9efb('0x38'))){_0xe63df['limit']=qs[_0x9efb('0x39')](_0x20f6a8[_0x9efb('0x33')][_0x9efb('0x39')]);_0xe63df[_0x9efb('0x1b')]=qs[_0x9efb('0x1b')](_0x20f6a8[_0x9efb('0x33')][_0x9efb('0x1b')]);}_0xe63df[_0x9efb('0x3a')]=qs[_0x9efb('0x3b')](_0x20f6a8[_0x9efb('0x33')][_0x9efb('0x3b')]);_0xe63df[_0x9efb('0x3c')]=qs[_0x9efb('0x34')](_[_0x9efb('0x3d')](_0x20f6a8[_0x9efb('0x33')],_0xf23ee8[_0x9efb('0x34')]),_0x1f01f1);if(_0x20f6a8[_0x9efb('0x33')]['filter']){_0xe63df['where']=_[_0x9efb('0x3e')](_0xe63df['where'],{'$or':_['map'](_0x1f01f1,function(_0x13ba09){if(_0x13ba09['type']!=='VIRTUAL'){var _0x2eaef9={};_0x2eaef9[_0x13ba09[_0x9efb('0x2a')]]={'$like':'%'+_0x20f6a8[_0x9efb('0x33')][_0x9efb('0x3f')]+'%'};return _0x2eaef9;}})});}_0xe63df=_[_0x9efb('0x3e')]({},_0xe63df,_0x20f6a8[_0x9efb('0x40')]);var _0x5b1083={'where':_0xe63df[_0x9efb('0x3c')]};return db[_0x9efb('0x2e')][_0x9efb('0x1d')](_0x5b1083)[_0x9efb('0x23')](function(_0x248269){_0x1a60be[_0x9efb('0x1d')]=_0x248269;if(_0x20f6a8[_0x9efb('0x33')][_0x9efb('0x41')]){_0xe63df[_0x9efb('0x42')]=[{'all':!![]}];}return db[_0x9efb('0x2e')][_0x9efb('0x43')](_0xe63df);})[_0x9efb('0x23')](function(_0x1f0df0){_0x1a60be[_0x9efb('0x44')]=_0x1f0df0;return _0x1a60be;})[_0x9efb('0x23')](respondWithFilteredResult(_0x24ae52,_0xe63df))[_0x9efb('0x45')](handleError(_0x24ae52,null));};exports[_0x9efb('0x46')]=function(_0x8e7759,_0x492466){var _0x55b7f4={'raw':!![],'where':{'id':_0x8e7759['params']['id']}},_0x2e9c9f={};_0x2e9c9f[_0x9efb('0x35')]=_[_0x9efb('0x47')](db[_0x9efb('0x2e')]['rawAttributes']);_0x2e9c9f[_0x9efb('0x33')]=_['keys'](_0x8e7759[_0x9efb('0x33')]);_0x2e9c9f[_0x9efb('0x34')]=_[_0x9efb('0x36')](_0x2e9c9f[_0x9efb('0x35')],_0x2e9c9f[_0x9efb('0x33')]);_0x55b7f4[_0x9efb('0x37')]=_['intersection'](_0x2e9c9f['model'],qs['fields'](_0x8e7759[_0x9efb('0x33')][_0x9efb('0x48')]));_0x55b7f4[_0x9efb('0x37')]=_0x55b7f4['attributes'][_0x9efb('0x49')]?_0x55b7f4[_0x9efb('0x37')]:_0x2e9c9f[_0x9efb('0x35')];if(_0x8e7759[_0x9efb('0x33')][_0x9efb('0x41')]){_0x55b7f4[_0x9efb('0x42')]=[{'all':!![]}];}_0x55b7f4=_[_0x9efb('0x3e')]({},_0x55b7f4,_0x8e7759[_0x9efb('0x40')]);return db[_0x9efb('0x2e')][_0x9efb('0x4a')](_0x55b7f4)[_0x9efb('0x23')](handleEntityNotFound(_0x492466,null))[_0x9efb('0x23')](respondWithResult(_0x492466,null))[_0x9efb('0x45')](handleError(_0x492466,null));};exports[_0x9efb('0x4b')]=function(_0x17a093,_0x15bf37,_0x59ea31){return db[_0x9efb('0x2e')]['find']({'where':{'id':_0x17a093['params']['id']},'attributes':[_0x9efb('0x2a'),'save_name',_0x9efb('0x4c')],'raw':!![]})['then'](handleEntityNotFound(_0x15bf37,null))[_0x9efb('0x23')](function(_0x53ac57){if(_0x53ac57){if(!fs['existsSync'](path[_0x9efb('0x4d')](config['root'],_0x9efb('0x4e'),_0x53ac57[_0x9efb('0x4f')]+'.'+_0x53ac57[_0x9efb('0x4c')]))){throw new db[(_0x9efb('0x50'))][(_0x9efb('0x51'))](_0x9efb('0x52'));}return _0x15bf37[_0x9efb('0x4b')](path['join'](config[_0x9efb('0x53')],_0x9efb('0x4e'),util[_0x9efb('0x54')]('%s.%s',_0x53ac57[_0x9efb('0x4f')],_0x53ac57['converted_format'])),util[_0x9efb('0x54')]('%s.%s',_0x53ac57[_0x9efb('0x2a')],_0x53ac57[_0x9efb('0x4c')]));}return null;})[_0x9efb('0x45')](handleError(_0x15bf37,null));};exports[_0x9efb('0x55')]=function(_0x225b0d,_0x3403af,_0x41e496){var _0x5bef90={'name':path['basename'](_0x225b0d['file'][_0x9efb('0x56')],path['extname'](_0x225b0d[_0x9efb('0x57')][_0x9efb('0x56')])),'save_name':path[_0x9efb('0x58')](_0x225b0d[_0x9efb('0x57')][_0x9efb('0x59')],path[_0x9efb('0x5a')](_0x225b0d['file'][_0x9efb('0x59')])),'original_format':path['extname'](_0x225b0d[_0x9efb('0x57')][_0x9efb('0x56')])[_0x9efb('0x5b')](0x1),'converted_format':_0x9efb('0x5c')};var _0x81d1e2=path['join'](config[_0x9efb('0x53')],_0x9efb('0x5d'),_0x225b0d[_0x9efb('0x57')]['filename']);var _0x1f2d27=path[_0x9efb('0x4d')](config[_0x9efb('0x53')],_0x9efb('0x4e'),util[_0x9efb('0x54')]('%s.%s',path[_0x9efb('0x58')](_0x225b0d[_0x9efb('0x57')]['filename'],path[_0x9efb('0x5a')](_0x225b0d[_0x9efb('0x57')][_0x9efb('0x59')])),_0x5bef90[_0x9efb('0x4c')]));logger[_0x9efb('0x5e')]('Sound\x20upload\x20filepath:\x20%s',_0x81d1e2);logger[_0x9efb('0x5e')](_0x9efb('0x5f'),_0x1f2d27);try{fs['chmodSync'](_0x81d1e2,parseInt(_0x9efb('0x60'),0x8));var _0x1385d8=sox['transcode'](_0x81d1e2,_0x1f2d27,{'sampleRate':0x1f40,'format':_0x9efb('0x5c'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1385d8['on'](_0x9efb('0x28'),function(_0x442116){fs[_0x9efb('0x61')](_0x81d1e2);_0x3403af[_0x9efb('0x18')](0x1f4)[_0x9efb('0x2b')](_0x442116);});_0x1385d8['on'](_0x9efb('0x62'),function(_0x1ea39e){_0x5bef90[_0x9efb('0x63')]=isNaN(_0x1ea39e['duration'])?null:_0x1ea39e['duration']*0x3e8;_0x5bef90[_0x9efb('0x64')]=isNaN(_0x1ea39e[_0x9efb('0x65')])?null:_0x1ea39e[_0x9efb('0x65')];_0x5bef90[_0x9efb('0x66')]=isNaN(_0x1ea39e['channelCount'])?null:_0x1ea39e['channelCount'];_0x5bef90['original_bitRate']=isNaN(_0x1ea39e['bitRate'])?null:_0x1ea39e['bitRate'];_0x5bef90['original_sampleRate']=isNaN(_0x1ea39e[_0x9efb('0x67')])?null:_0x1ea39e[_0x9efb('0x67')];});_0x1385d8['on'](_0x9efb('0x68'),function(_0x577f6a){_0x5bef90[_0x9efb('0x69')]=isNaN(_0x577f6a['duration'])?null:_0x577f6a[_0x9efb('0x6a')]*0x3e8;_0x5bef90['converted_sampleCount']=isNaN(_0x577f6a[_0x9efb('0x65')])?null:_0x577f6a[_0x9efb('0x65')];_0x5bef90[_0x9efb('0x6b')]=isNaN(_0x577f6a[_0x9efb('0x6c')])?null:_0x577f6a[_0x9efb('0x6c')];_0x5bef90[_0x9efb('0x6d')]=isNaN(_0x577f6a[_0x9efb('0x6e')])?null:_0x577f6a[_0x9efb('0x6e')];_0x5bef90[_0x9efb('0x6f')]=isNaN(_0x577f6a[_0x9efb('0x67')])?null:_0x577f6a[_0x9efb('0x67')];});_0x1385d8['on'](_0x9efb('0x19'),function(){fs[_0x9efb('0x70')](_0x1f2d27,parseInt('0777',0x8));return db['Sound'][_0x9efb('0x55')](_0x5bef90)[_0x9efb('0x23')](function(_0x141326){var _0x13d997={'role':_0x225b0d[_0x9efb('0x71')]['role'],'userProfileId':_0x225b0d['body'][_0x9efb('0x72')]};if(!_0x13d997)throw new Error(_0x9efb('0x73'));if(_0x13d997[_0x9efb('0x74')]===_0x9efb('0x75')){var _0x584cc2=_0x141326[_0x9efb('0x25')]({'plain':!![]});return db[_0x9efb('0x76')][_0x9efb('0x4a')]({'where':{'name':'Sounds','userProfileId':_0x13d997[_0x9efb('0x72')]},'raw':!![]})[_0x9efb('0x23')](function(_0x4f07e9){if(_0x4f07e9&&_0x4f07e9[_0x9efb('0x77')]===0x0){return db[_0x9efb('0x27')][_0x9efb('0x55')]({'name':_0x584cc2[_0x9efb('0x2a')],'resourceId':_0x584cc2['id'],'type':_0x4f07e9['name'],'sectionId':_0x4f07e9['id']},{})[_0x9efb('0x23')](function(){return _0x141326;});}else{return _0x141326;}})['catch'](function(_0x3b6945){logger[_0x9efb('0x28')](_0x9efb('0x78'),_0x3b6945);throw _0x3b6945;});}return _0x141326;})['then'](respondWithResult(_0x3403af,null))[_0x9efb('0x45')](handleError(_0x3403af,null));});_0x1385d8[_0x9efb('0x79')]();}catch(_0xd4313){_0x3403af[_0x9efb('0x18')](0x1f4)['send'](_0xd4313);}};exports[_0x9efb('0x22')]=function(_0x35ac81,_0x194cc3,_0x327c48){return db[_0x9efb('0x2e')]['find']({'where':{'id':_0x35ac81[_0x9efb('0x7a')]['id']}})[_0x9efb('0x23')](handleEntityNotFound(_0x194cc3,null))[_0x9efb('0x23')](saveUpdates(_[_0x9efb('0x3d')](_0x35ac81[_0x9efb('0x71')],[_0x9efb('0x2a'),_0x9efb('0x7b')]),null))[_0x9efb('0x23')](respondWithResult(_0x194cc3,null))[_0x9efb('0x45')](handleError(_0x194cc3,null));};exports[_0x9efb('0x7c')]=function(_0x3d493d,_0x2c5670,_0x11a77c){return db[_0x9efb('0x2e')][_0x9efb('0x4a')]({'where':{'id':_0x3d493d[_0x9efb('0x7a')]['id']}})[_0x9efb('0x23')](function(_0xc1b86d){if(_0xc1b86d){return _0xc1b86d[_0x9efb('0x24')]();}})[_0x9efb('0x23')](function(_0x1da282){var _0x4b1ded=path['join'](config[_0x9efb('0x53')],_0x9efb('0x5d'),util['format'](_0x9efb('0x7d'),_0x1da282[_0x9efb('0x4f')],_0x1da282[_0x9efb('0x7e')]));var _0x52c6e0=path[_0x9efb('0x4d')](config[_0x9efb('0x53')],_0x9efb('0x4e'),util[_0x9efb('0x54')]('%s.%s',_0x1da282[_0x9efb('0x4f')],_0x1da282[_0x9efb('0x4c')]));fs['unlinkSync'](_0x4b1ded);fs[_0x9efb('0x61')](_0x52c6e0);return _0x1da282;})['then'](function(_0x5d8c51){if(_0x5d8c51){return _0x2c5670[_0x9efb('0x18')](0xcc)['end']();}})['then'](handleEntityNotFound(_0x2c5670,null))[_0x9efb('0x45')](handleError(_0x2c5670,null));};