babaf7c737167a444b94f433a9fff2b27874ec1e
[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 _0x5648=['fieldName','type','key','query','filters','intersection','attributes','model','fields','hasOwnProperty','limit','sort','where','pick','filter','VIRTUAL','merge','options','findAll','catch','params','keys','includeAll','include','download','find','save_name','converted_format','join','root','Sequelize','ValidationError','server/files/sounds/converted','format','%s.%s','file','originalname','extname','basename','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_sampleRate','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','Content-Range','apply','reject','save','then','destroy','get','Sounds','error','stack','name','send','index','map','Sound','rawAttributes'];(function(_0x27c974,_0x360fd4){var _0x19f6b2=function(_0x48f8f9){while(--_0x48f8f9){_0x27c974['push'](_0x27c974['shift']());}};_0x19f6b2(++_0x360fd4);}(_0x5648,0xd2));var _0x8564=function(_0x34e4cb,_0x1665ce){_0x34e4cb=_0x34e4cb-0x0;var _0x17a360=_0x5648[_0x34e4cb];return _0x17a360;};'use strict';var emlformat=require(_0x8564('0x0'));var rimraf=require(_0x8564('0x1'));var zipdir=require(_0x8564('0x2'));var jsonpatch=require(_0x8564('0x3'));var rp=require(_0x8564('0x4'));var moment=require(_0x8564('0x5'));var BPromise=require(_0x8564('0x6'));var Mustache=require('mustache');var util=require(_0x8564('0x7'));var path=require(_0x8564('0x8'));var sox=require(_0x8564('0x9'));var csv=require(_0x8564('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8564('0xb'));var _=require(_0x8564('0xc'));var squel=require(_0x8564('0xd'));var crypto=require(_0x8564('0xe'));var jsforce=require(_0x8564('0xf'));var deskjs=require(_0x8564('0x10'));var toCsv=require('to-csv');var querystring=require(_0x8564('0x11'));var Papa=require(_0x8564('0x12'));var Redis=require(_0x8564('0x13'));var authService=require(_0x8564('0x14'));var qs=require(_0x8564('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8564('0x16'));var logger=require(_0x8564('0x17'))(_0x8564('0x18'));var utils=require(_0x8564('0x19'));var config=require(_0x8564('0x1a'));var licenseUtil=require(_0x8564('0x1b'));var db=require(_0x8564('0x1c'))['db'];function respondWithStatusCode(_0x142b59,_0x2631bd){_0x2631bd=_0x2631bd||0xcc;return function(_0x568eaa){if(_0x568eaa){return _0x142b59[_0x8564('0x1d')](_0x2631bd);}return _0x142b59[_0x8564('0x1e')](_0x2631bd)[_0x8564('0x1f')]();};}function respondWithResult(_0x4d98b5,_0x6bfdbe){_0x6bfdbe=_0x6bfdbe||0xc8;return function(_0x5c5ae7){if(_0x5c5ae7){return _0x4d98b5[_0x8564('0x1e')](_0x6bfdbe)[_0x8564('0x20')](_0x5c5ae7);}};}function respondWithFilteredResult(_0x3193c7,_0x24364f){return function(_0x3b223b){if(_0x3b223b){var _0x573988=typeof _0x24364f[_0x8564('0x21')]===_0x8564('0x22')&&typeof _0x24364f['limit']===_0x8564('0x22');var _0x551b10=_0x3b223b['count'];var _0x2e83be=_0x573988?0x0:_0x24364f[_0x8564('0x21')];var _0x2674fa=_0x573988?_0x3b223b[_0x8564('0x23')]:_0x24364f[_0x8564('0x21')]+_0x24364f['limit'];var _0x3c9563;if(_0x2674fa>=_0x551b10){_0x2674fa=_0x551b10;_0x3c9563=0xc8;}else{_0x3c9563=0xce;}_0x3193c7[_0x8564('0x1e')](_0x3c9563);return _0x3193c7['set'](_0x8564('0x24'),_0x2e83be+'-'+_0x2674fa+'/'+_0x551b10)[_0x8564('0x20')](_0x3b223b);}return null;};}function patchUpdates(_0x56f41a){return function(_0x418e2a){try{jsonpatch[_0x8564('0x25')](_0x418e2a,_0x56f41a,!![]);}catch(_0x311486){return BPromise[_0x8564('0x26')](_0x311486);}return _0x418e2a[_0x8564('0x27')]();};}function saveUpdates(_0x218465,_0x4f9020){return function(_0x3ed040){if(_0x3ed040){return _0x3ed040['update'](_0x218465)[_0x8564('0x28')](function(_0x12329c){return _0x12329c;});}return null;};}function removeEntity(_0x55aee7,_0x5210b1){return function(_0x4443e1){if(_0x4443e1){return _0x4443e1[_0x8564('0x29')]()[_0x8564('0x28')](function(){var _0xb8304e=_0x4443e1[_0x8564('0x2a')]({'plain':!![]});var _0x48f2aa=_0x8564('0x2b');return db['UserProfileResource']['destroy']({'where':{'type':_0x48f2aa,'resourceId':_0xb8304e['id']}})[_0x8564('0x28')](function(){return _0x4443e1;});})[_0x8564('0x28')](function(){_0x55aee7[_0x8564('0x1e')](0xcc)[_0x8564('0x1f')]();});}};}function handleEntityNotFound(_0x1b0d53,_0x12c9d7){return function(_0x2a726c){if(!_0x2a726c){_0x1b0d53['sendStatus'](0x194);}return _0x2a726c;};}function handleError(_0x14e44f,_0x457085){_0x457085=_0x457085||0x1f4;return function(_0xde9557){logger[_0x8564('0x2c')](_0xde9557[_0x8564('0x2d')]);if(_0xde9557[_0x8564('0x2e')]){delete _0xde9557[_0x8564('0x2e')];}_0x14e44f[_0x8564('0x1e')](_0x457085)[_0x8564('0x2f')](_0xde9557);};}exports[_0x8564('0x30')]=function(_0x14e767,_0xa6c53b){var _0x3c2272={},_0x1d72d3={},_0x372867={'count':0x0,'rows':[]};var _0x1cc8d0=_[_0x8564('0x31')](db[_0x8564('0x32')][_0x8564('0x33')],function(_0x48724c){return{'name':_0x48724c[_0x8564('0x34')],'type':_0x48724c[_0x8564('0x35')][_0x8564('0x36')]};});_0x1d72d3['model']=_[_0x8564('0x31')](_0x1cc8d0,_0x8564('0x2e'));_0x1d72d3[_0x8564('0x37')]=_['keys'](_0x14e767['query']);_0x1d72d3[_0x8564('0x38')]=_[_0x8564('0x39')](_0x1d72d3['model'],_0x1d72d3['query']);_0x3c2272[_0x8564('0x3a')]=_[_0x8564('0x39')](_0x1d72d3[_0x8564('0x3b')],qs[_0x8564('0x3c')](_0x14e767[_0x8564('0x37')]['fields']));_0x3c2272['attributes']=_0x3c2272[_0x8564('0x3a')]['length']?_0x3c2272[_0x8564('0x3a')]:_0x1d72d3[_0x8564('0x3b')];if(!_0x14e767[_0x8564('0x37')][_0x8564('0x3d')]('nolimit')){_0x3c2272[_0x8564('0x3e')]=qs[_0x8564('0x3e')](_0x14e767[_0x8564('0x37')]['limit']);_0x3c2272[_0x8564('0x21')]=qs['offset'](_0x14e767['query'][_0x8564('0x21')]);}_0x3c2272['order']=qs[_0x8564('0x3f')](_0x14e767[_0x8564('0x37')]['sort']);_0x3c2272[_0x8564('0x40')]=qs[_0x8564('0x38')](_[_0x8564('0x41')](_0x14e767[_0x8564('0x37')],_0x1d72d3[_0x8564('0x38')]),_0x1cc8d0);if(_0x14e767[_0x8564('0x37')][_0x8564('0x42')]){_0x3c2272['where']=_['merge'](_0x3c2272['where'],{'$or':_[_0x8564('0x31')](_0x1cc8d0,function(_0x235df1){if(_0x235df1['type']!==_0x8564('0x43')){var _0x4d0f0e={};_0x4d0f0e[_0x235df1[_0x8564('0x2e')]]={'$like':'%'+_0x14e767[_0x8564('0x37')]['filter']+'%'};return _0x4d0f0e;}})});}_0x3c2272=_[_0x8564('0x44')]({},_0x3c2272,_0x14e767[_0x8564('0x45')]);var _0x2dde2c={'where':_0x3c2272[_0x8564('0x40')]};return db[_0x8564('0x32')][_0x8564('0x23')](_0x2dde2c)[_0x8564('0x28')](function(_0x73ca16){_0x372867[_0x8564('0x23')]=_0x73ca16;if(_0x14e767[_0x8564('0x37')]['includeAll']){_0x3c2272['include']=[{'all':!![]}];}return db[_0x8564('0x32')][_0x8564('0x46')](_0x3c2272);})[_0x8564('0x28')](function(_0x2e7757){_0x372867['rows']=_0x2e7757;return _0x372867;})[_0x8564('0x28')](respondWithFilteredResult(_0xa6c53b,_0x3c2272))[_0x8564('0x47')](handleError(_0xa6c53b,null));};exports['show']=function(_0x12dca0,_0x5de807){var _0x489633={'raw':!![],'where':{'id':_0x12dca0[_0x8564('0x48')]['id']}},_0x1050c7={};_0x1050c7[_0x8564('0x3b')]=_['keys'](db['Sound']['rawAttributes']);_0x1050c7['query']=_[_0x8564('0x49')](_0x12dca0[_0x8564('0x37')]);_0x1050c7[_0x8564('0x38')]=_[_0x8564('0x39')](_0x1050c7[_0x8564('0x3b')],_0x1050c7['query']);_0x489633['attributes']=_[_0x8564('0x39')](_0x1050c7[_0x8564('0x3b')],qs[_0x8564('0x3c')](_0x12dca0[_0x8564('0x37')][_0x8564('0x3c')]));_0x489633[_0x8564('0x3a')]=_0x489633[_0x8564('0x3a')]['length']?_0x489633['attributes']:_0x1050c7[_0x8564('0x3b')];if(_0x12dca0['query'][_0x8564('0x4a')]){_0x489633[_0x8564('0x4b')]=[{'all':!![]}];}_0x489633=_['merge']({},_0x489633,_0x12dca0['options']);return db[_0x8564('0x32')]['find'](_0x489633)[_0x8564('0x28')](handleEntityNotFound(_0x5de807,null))[_0x8564('0x28')](respondWithResult(_0x5de807,null))[_0x8564('0x47')](handleError(_0x5de807,null));};exports[_0x8564('0x4c')]=function(_0x297162,_0x2087e6,_0x425f15){return db[_0x8564('0x32')][_0x8564('0x4d')]({'where':{'id':_0x297162[_0x8564('0x48')]['id']},'attributes':[_0x8564('0x2e'),_0x8564('0x4e'),_0x8564('0x4f')],'raw':!![]})['then'](handleEntityNotFound(_0x2087e6,null))[_0x8564('0x28')](function(_0x32573a){if(_0x32573a){if(!fs['existsSync'](path[_0x8564('0x50')](config[_0x8564('0x51')],'server/files/sounds/converted',_0x32573a['save_name']+'.'+_0x32573a[_0x8564('0x4f')]))){throw new db[(_0x8564('0x52'))][(_0x8564('0x53'))]('Sound\x20not\x20found');}return _0x2087e6[_0x8564('0x4c')](path[_0x8564('0x50')](config['root'],_0x8564('0x54'),util[_0x8564('0x55')](_0x8564('0x56'),_0x32573a[_0x8564('0x4e')],_0x32573a[_0x8564('0x4f')])),util[_0x8564('0x55')](_0x8564('0x56'),_0x32573a[_0x8564('0x2e')],_0x32573a[_0x8564('0x4f')]));}return null;})['catch'](handleError(_0x2087e6,null));};exports['create']=function(_0x119c1d,_0x4f3ce8,_0x569d00){var _0x51b358={'name':path['basename'](_0x119c1d[_0x8564('0x57')][_0x8564('0x58')],path[_0x8564('0x59')](_0x119c1d[_0x8564('0x57')][_0x8564('0x58')])),'save_name':path[_0x8564('0x5a')](_0x119c1d['file'][_0x8564('0x5b')],path[_0x8564('0x59')](_0x119c1d[_0x8564('0x57')]['filename'])),'original_format':path['extname'](_0x119c1d[_0x8564('0x57')][_0x8564('0x58')])[_0x8564('0x5c')](0x1),'converted_format':_0x8564('0x5d')};var _0x4f2210=path[_0x8564('0x50')](config[_0x8564('0x51')],_0x8564('0x5e'),_0x119c1d[_0x8564('0x57')][_0x8564('0x5b')]);var _0x5c2013=path['join'](config['root'],'server/files/sounds/converted',util['format'](_0x8564('0x56'),path['basename'](_0x119c1d[_0x8564('0x57')][_0x8564('0x5b')],path[_0x8564('0x59')](_0x119c1d['file']['filename'])),_0x51b358[_0x8564('0x4f')]));logger['info']('Sound\x20upload\x20filepath:\x20%s',_0x4f2210);logger[_0x8564('0x5f')](_0x8564('0x60'),_0x5c2013);try{fs[_0x8564('0x61')](_0x4f2210,parseInt(_0x8564('0x62'),0x8));var _0x4fe83a=sox[_0x8564('0x63')](_0x4f2210,_0x5c2013,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4fe83a['on'](_0x8564('0x2c'),function(_0x546afd){fs[_0x8564('0x64')](_0x4f2210);_0x4f3ce8[_0x8564('0x1e')](0x1f4)[_0x8564('0x2f')](_0x546afd);});_0x4fe83a['on'](_0x8564('0x65'),function(_0x1e8f8a){_0x51b358[_0x8564('0x66')]=isNaN(_0x1e8f8a[_0x8564('0x67')])?null:_0x1e8f8a[_0x8564('0x67')]*0x3e8;_0x51b358[_0x8564('0x68')]=isNaN(_0x1e8f8a[_0x8564('0x69')])?null:_0x1e8f8a[_0x8564('0x69')];_0x51b358[_0x8564('0x6a')]=isNaN(_0x1e8f8a['channelCount'])?null:_0x1e8f8a[_0x8564('0x6b')];_0x51b358[_0x8564('0x6c')]=isNaN(_0x1e8f8a[_0x8564('0x6d')])?null:_0x1e8f8a[_0x8564('0x6d')];_0x51b358[_0x8564('0x6e')]=isNaN(_0x1e8f8a[_0x8564('0x6f')])?null:_0x1e8f8a[_0x8564('0x6f')];});_0x4fe83a['on'](_0x8564('0x70'),function(_0x20cd15){_0x51b358[_0x8564('0x71')]=isNaN(_0x20cd15[_0x8564('0x67')])?null:_0x20cd15[_0x8564('0x67')]*0x3e8;_0x51b358[_0x8564('0x72')]=isNaN(_0x20cd15['sampleCount'])?null:_0x20cd15[_0x8564('0x69')];_0x51b358[_0x8564('0x73')]=isNaN(_0x20cd15[_0x8564('0x6b')])?null:_0x20cd15[_0x8564('0x6b')];_0x51b358['converted_bitRate']=isNaN(_0x20cd15[_0x8564('0x6d')])?null:_0x20cd15[_0x8564('0x6d')];_0x51b358[_0x8564('0x74')]=isNaN(_0x20cd15[_0x8564('0x6f')])?null:_0x20cd15[_0x8564('0x6f')];});_0x4fe83a['on'](_0x8564('0x1f'),function(){fs[_0x8564('0x61')](_0x5c2013,parseInt(_0x8564('0x62'),0x8));return db[_0x8564('0x32')]['create'](_0x51b358)['then'](function(_0x4deb16){var _0x36ade2={'role':_0x119c1d[_0x8564('0x75')]['role'],'userProfileId':_0x119c1d[_0x8564('0x75')][_0x8564('0x76')]};if(!_0x36ade2)throw new Error(_0x8564('0x77'));if(_0x36ade2[_0x8564('0x78')]===_0x8564('0x79')){var _0x34f01c=_0x4deb16[_0x8564('0x2a')]({'plain':!![]});return db[_0x8564('0x7a')][_0x8564('0x4d')]({'where':{'name':_0x8564('0x2b'),'userProfileId':_0x36ade2[_0x8564('0x76')]},'raw':!![]})[_0x8564('0x28')](function(_0x1a8d66){if(_0x1a8d66&&_0x1a8d66[_0x8564('0x7b')]===0x0){return db[_0x8564('0x7c')][_0x8564('0x7d')]({'name':_0x34f01c[_0x8564('0x2e')],'resourceId':_0x34f01c['id'],'type':_0x1a8d66[_0x8564('0x2e')],'sectionId':_0x1a8d66['id']},{})[_0x8564('0x28')](function(){return _0x4deb16;});}else{return _0x4deb16;}})[_0x8564('0x47')](function(_0x18508a){logger[_0x8564('0x2c')](_0x8564('0x7e'),_0x18508a);throw _0x18508a;});}return _0x4deb16;})[_0x8564('0x28')](respondWithResult(_0x4f3ce8,null))['catch'](handleError(_0x4f3ce8,null));});_0x4fe83a[_0x8564('0x7f')]();}catch(_0x3fc5fe){_0x4f3ce8[_0x8564('0x1e')](0x1f4)[_0x8564('0x2f')](_0x3fc5fe);}};exports['update']=function(_0x1203a6,_0x2fa642,_0x34a2a2){return db[_0x8564('0x32')]['find']({'where':{'id':_0x1203a6[_0x8564('0x48')]['id']}})[_0x8564('0x28')](handleEntityNotFound(_0x2fa642,null))[_0x8564('0x28')](saveUpdates(_[_0x8564('0x41')](_0x1203a6[_0x8564('0x75')],[_0x8564('0x2e'),_0x8564('0x80')]),null))[_0x8564('0x28')](respondWithResult(_0x2fa642,null))['catch'](handleError(_0x2fa642,null));};exports[_0x8564('0x81')]=function(_0x5d9fb4,_0x8de14,_0x105fb2){return db['Sound']['find']({'where':{'id':_0x5d9fb4['params']['id']}})[_0x8564('0x28')](function(_0x1f5a87){if(_0x1f5a87){return _0x1f5a87[_0x8564('0x29')]();}})[_0x8564('0x28')](function(_0x427633){var _0x5673bc=path[_0x8564('0x50')](config['root'],'server/files/sounds/original',util[_0x8564('0x55')]('%s.%s',_0x427633[_0x8564('0x4e')],_0x427633[_0x8564('0x82')]));var _0x148317=path[_0x8564('0x50')](config[_0x8564('0x51')],_0x8564('0x54'),util[_0x8564('0x55')]('%s.%s',_0x427633['save_name'],_0x427633[_0x8564('0x4f')]));fs['unlinkSync'](_0x5673bc);fs['unlinkSync'](_0x148317);return _0x427633;})[_0x8564('0x28')](function(_0x48e295){if(_0x48e295){return _0x8de14[_0x8564('0x1e')](0xcc)[_0x8564('0x1f')]();}})[_0x8564('0x28')](handleEntityNotFound(_0x8de14,null))[_0x8564('0x47')](handleError(_0x8de14,null));};