Built motion from commit 639a1a7f.|2.6.19
[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 _0x79ad=['pick','description','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','count','Content-Range','json','apply','reject','update','then','destroy','get','Sounds','error','stack','name','send','Sound','type','key','map','query','keys','filters','attributes','intersection','fields','model','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','includeAll','include','findAll','catch','show','params','rawAttributes','length','download','find','save_name','converted_format','existsSync','root','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','join','format','originalname','file','basename','filename','extname','substring','wav','server/files/sounds/original','%s.%s','info','Sound\x20upload\x20destination:\x20%s','0777','unlinkSync','src','original_duration','duration','original_sampleCount','original_channelCount','channelCount','original_bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','sampleCount','converted_bitRate','bitRate','converted_sampleRate','chmodSync','create','role','body','userProfileId','user','UserProfileSection','start'];(function(_0x3328bd,_0x34b6cc){var _0xf2012a=function(_0x35a4e5){while(--_0x35a4e5){_0x3328bd['push'](_0x3328bd['shift']());}};_0xf2012a(++_0x34b6cc);}(_0x79ad,0xf9));var _0xd79a=function(_0x48cce5,_0x328cb0){_0x48cce5=_0x48cce5-0x0;var _0x20f3d3=_0x79ad[_0x48cce5];return _0x20f3d3;};'use strict';var emlformat=require(_0xd79a('0x0'));var rimraf=require(_0xd79a('0x1'));var zipdir=require(_0xd79a('0x2'));var jsonpatch=require(_0xd79a('0x3'));var rp=require(_0xd79a('0x4'));var moment=require(_0xd79a('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xd79a('0x6'));var util=require(_0xd79a('0x7'));var path=require(_0xd79a('0x8'));var sox=require(_0xd79a('0x9'));var csv=require(_0xd79a('0xa'));var ejs=require(_0xd79a('0xb'));var fs=require('fs');var fs_extra=require(_0xd79a('0xc'));var _=require('lodash');var squel=require(_0xd79a('0xd'));var crypto=require(_0xd79a('0xe'));var jsforce=require(_0xd79a('0xf'));var deskjs=require(_0xd79a('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd79a('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xd79a('0x12'));var hardwareService=require(_0xd79a('0x13'));var logger=require(_0xd79a('0x14'))(_0xd79a('0x15'));var utils=require(_0xd79a('0x16'));var config=require(_0xd79a('0x17'));var licenseUtil=require(_0xd79a('0x18'));var db=require(_0xd79a('0x19'))['db'];function respondWithStatusCode(_0x544da8,_0x52f6de){_0x52f6de=_0x52f6de||0xcc;return function(_0x2a2182){if(_0x2a2182){return _0x544da8[_0xd79a('0x1a')](_0x52f6de);}return _0x544da8[_0xd79a('0x1b')](_0x52f6de)[_0xd79a('0x1c')]();};}function respondWithResult(_0x31a166,_0x3e0b99){_0x3e0b99=_0x3e0b99||0xc8;return function(_0x1d8f38){if(_0x1d8f38){return _0x31a166[_0xd79a('0x1b')](_0x3e0b99)['json'](_0x1d8f38);}};}function respondWithFilteredResult(_0x3a8790,_0x5ca5df){return function(_0x684aa){if(_0x684aa){var _0x46a0fa=typeof _0x5ca5df[_0xd79a('0x1d')]==='undefined'&&typeof _0x5ca5df[_0xd79a('0x1e')]==='undefined';var _0x3d0719=_0x684aa[_0xd79a('0x1f')];var _0x414f69=_0x46a0fa?0x0:_0x5ca5df['offset'];var _0x52d6f1=_0x46a0fa?_0x684aa[_0xd79a('0x1f')]:_0x5ca5df['offset']+_0x5ca5df[_0xd79a('0x1e')];var _0x979010;if(_0x52d6f1>=_0x3d0719){_0x52d6f1=_0x3d0719;_0x979010=0xc8;}else{_0x979010=0xce;}_0x3a8790[_0xd79a('0x1b')](_0x979010);return _0x3a8790['set'](_0xd79a('0x20'),_0x414f69+'-'+_0x52d6f1+'/'+_0x3d0719)[_0xd79a('0x21')](_0x684aa);}return null;};}function patchUpdates(_0x2a9fae){return function(_0x10f827){try{jsonpatch[_0xd79a('0x22')](_0x10f827,_0x2a9fae,!![]);}catch(_0x335070){return BPromise[_0xd79a('0x23')](_0x335070);}return _0x10f827['save']();};}function saveUpdates(_0x59783e,_0x3dfac4){return function(_0x9cbe7d){if(_0x9cbe7d){return _0x9cbe7d[_0xd79a('0x24')](_0x59783e)[_0xd79a('0x25')](function(_0x10dcef){return _0x10dcef;});}return null;};}function removeEntity(_0x15470b,_0x51b8c3){return function(_0x3e420e){if(_0x3e420e){return _0x3e420e[_0xd79a('0x26')]()[_0xd79a('0x25')](function(){var _0x3554d6=_0x3e420e[_0xd79a('0x27')]({'plain':!![]});var _0x22634f=_0xd79a('0x28');return db['UserProfileResource']['destroy']({'where':{'type':_0x22634f,'resourceId':_0x3554d6['id']}})['then'](function(){return _0x3e420e;});})[_0xd79a('0x25')](function(){_0x15470b[_0xd79a('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a6ce2,_0x2e6141){return function(_0x3bba7a){if(!_0x3bba7a){_0x4a6ce2[_0xd79a('0x1a')](0x194);}return _0x3bba7a;};}function handleError(_0x358e5a,_0x4483a3){_0x4483a3=_0x4483a3||0x1f4;return function(_0x2f75c0){logger[_0xd79a('0x29')](_0x2f75c0[_0xd79a('0x2a')]);if(_0x2f75c0[_0xd79a('0x2b')]){delete _0x2f75c0[_0xd79a('0x2b')];}_0x358e5a[_0xd79a('0x1b')](_0x4483a3)[_0xd79a('0x2c')](_0x2f75c0);};}exports['index']=function(_0x591d62,_0x41f5cb){var _0x4e9aa7={},_0x2531fe={},_0x3e9fc0={'count':0x0,'rows':[]};var _0x5b8e66=_['map'](db[_0xd79a('0x2d')]['rawAttributes'],function(_0x2ef565){return{'name':_0x2ef565['fieldName'],'type':_0x2ef565[_0xd79a('0x2e')][_0xd79a('0x2f')]};});_0x2531fe['model']=_[_0xd79a('0x30')](_0x5b8e66,_0xd79a('0x2b'));_0x2531fe[_0xd79a('0x31')]=_[_0xd79a('0x32')](_0x591d62[_0xd79a('0x31')]);_0x2531fe[_0xd79a('0x33')]=_['intersection'](_0x2531fe['model'],_0x2531fe[_0xd79a('0x31')]);_0x4e9aa7[_0xd79a('0x34')]=_[_0xd79a('0x35')](_0x2531fe['model'],qs[_0xd79a('0x36')](_0x591d62[_0xd79a('0x31')][_0xd79a('0x36')]));_0x4e9aa7[_0xd79a('0x34')]=_0x4e9aa7['attributes']['length']?_0x4e9aa7[_0xd79a('0x34')]:_0x2531fe[_0xd79a('0x37')];if(!_0x591d62[_0xd79a('0x31')][_0xd79a('0x38')](_0xd79a('0x39'))){_0x4e9aa7['limit']=qs['limit'](_0x591d62[_0xd79a('0x31')][_0xd79a('0x1e')]);_0x4e9aa7['offset']=qs[_0xd79a('0x1d')](_0x591d62[_0xd79a('0x31')][_0xd79a('0x1d')]);}_0x4e9aa7[_0xd79a('0x3a')]=qs[_0xd79a('0x3b')](_0x591d62[_0xd79a('0x31')]['sort']);_0x4e9aa7[_0xd79a('0x3c')]=qs['filters'](_['pick'](_0x591d62['query'],_0x2531fe[_0xd79a('0x33')]),_0x5b8e66);if(_0x591d62[_0xd79a('0x31')][_0xd79a('0x3d')]){_0x4e9aa7[_0xd79a('0x3c')]=_[_0xd79a('0x3e')](_0x4e9aa7[_0xd79a('0x3c')],{'$or':_[_0xd79a('0x30')](_0x5b8e66,function(_0x45e905){if(_0x45e905[_0xd79a('0x2e')]!=='VIRTUAL'){var _0x5f01f5={};_0x5f01f5[_0x45e905[_0xd79a('0x2b')]]={'$like':'%'+_0x591d62[_0xd79a('0x31')][_0xd79a('0x3d')]+'%'};return _0x5f01f5;}})});}_0x4e9aa7=_[_0xd79a('0x3e')]({},_0x4e9aa7,_0x591d62[_0xd79a('0x3f')]);var _0x66aa9e={'where':_0x4e9aa7[_0xd79a('0x3c')]};return db['Sound'][_0xd79a('0x1f')](_0x66aa9e)[_0xd79a('0x25')](function(_0x8c67bd){_0x3e9fc0['count']=_0x8c67bd;if(_0x591d62[_0xd79a('0x31')][_0xd79a('0x40')]){_0x4e9aa7[_0xd79a('0x41')]=[{'all':!![]}];}return db[_0xd79a('0x2d')][_0xd79a('0x42')](_0x4e9aa7);})[_0xd79a('0x25')](function(_0xe41151){_0x3e9fc0['rows']=_0xe41151;return _0x3e9fc0;})[_0xd79a('0x25')](respondWithFilteredResult(_0x41f5cb,_0x4e9aa7))[_0xd79a('0x43')](handleError(_0x41f5cb,null));};exports[_0xd79a('0x44')]=function(_0x30fe50,_0x4ac7da){var _0x352e68={'raw':!![],'where':{'id':_0x30fe50[_0xd79a('0x45')]['id']}},_0x369cf5={};_0x369cf5[_0xd79a('0x37')]=_[_0xd79a('0x32')](db[_0xd79a('0x2d')][_0xd79a('0x46')]);_0x369cf5[_0xd79a('0x31')]=_[_0xd79a('0x32')](_0x30fe50[_0xd79a('0x31')]);_0x369cf5[_0xd79a('0x33')]=_['intersection'](_0x369cf5['model'],_0x369cf5[_0xd79a('0x31')]);_0x352e68[_0xd79a('0x34')]=_[_0xd79a('0x35')](_0x369cf5[_0xd79a('0x37')],qs['fields'](_0x30fe50['query'][_0xd79a('0x36')]));_0x352e68[_0xd79a('0x34')]=_0x352e68[_0xd79a('0x34')][_0xd79a('0x47')]?_0x352e68[_0xd79a('0x34')]:_0x369cf5['model'];if(_0x30fe50[_0xd79a('0x31')][_0xd79a('0x40')]){_0x352e68[_0xd79a('0x41')]=[{'all':!![]}];}_0x352e68=_['merge']({},_0x352e68,_0x30fe50['options']);return db['Sound']['find'](_0x352e68)[_0xd79a('0x25')](handleEntityNotFound(_0x4ac7da,null))['then'](respondWithResult(_0x4ac7da,null))[_0xd79a('0x43')](handleError(_0x4ac7da,null));};exports[_0xd79a('0x48')]=function(_0x166825,_0x1cd75a,_0x19f9d1){return db[_0xd79a('0x2d')][_0xd79a('0x49')]({'where':{'id':_0x166825[_0xd79a('0x45')]['id']},'attributes':[_0xd79a('0x2b'),_0xd79a('0x4a'),_0xd79a('0x4b')],'raw':!![]})['then'](handleEntityNotFound(_0x1cd75a,null))['then'](function(_0x5eb286){if(_0x5eb286){if(!fs[_0xd79a('0x4c')](path['join'](config[_0xd79a('0x4d')],_0xd79a('0x4e'),_0x5eb286[_0xd79a('0x4a')]+'.'+_0x5eb286[_0xd79a('0x4b')]))){throw new db[(_0xd79a('0x4f'))][(_0xd79a('0x50'))](_0xd79a('0x51'));}return _0x1cd75a[_0xd79a('0x48')](path[_0xd79a('0x52')](config[_0xd79a('0x4d')],_0xd79a('0x4e'),util[_0xd79a('0x53')]('%s.%s',_0x5eb286['save_name'],_0x5eb286[_0xd79a('0x4b')])),util[_0xd79a('0x53')]('%s.%s',_0x5eb286[_0xd79a('0x2b')],_0x5eb286[_0xd79a('0x4b')]));}return null;})[_0xd79a('0x43')](handleError(_0x1cd75a,null));};exports['create']=function(_0x48c9da,_0x4ba1f9,_0x26d52b){var _0x59491e={'name':path['basename'](_0x48c9da['file'][_0xd79a('0x54')],path['extname'](_0x48c9da[_0xd79a('0x55')][_0xd79a('0x54')])),'save_name':path[_0xd79a('0x56')](_0x48c9da[_0xd79a('0x55')][_0xd79a('0x57')],path[_0xd79a('0x58')](_0x48c9da[_0xd79a('0x55')]['filename'])),'original_format':path[_0xd79a('0x58')](_0x48c9da[_0xd79a('0x55')][_0xd79a('0x54')])[_0xd79a('0x59')](0x1),'converted_format':_0xd79a('0x5a')};var _0x487525=path[_0xd79a('0x52')](config[_0xd79a('0x4d')],_0xd79a('0x5b'),_0x48c9da[_0xd79a('0x55')][_0xd79a('0x57')]);var _0x3dd043=path[_0xd79a('0x52')](config[_0xd79a('0x4d')],_0xd79a('0x4e'),util[_0xd79a('0x53')](_0xd79a('0x5c'),path[_0xd79a('0x56')](_0x48c9da[_0xd79a('0x55')]['filename'],path[_0xd79a('0x58')](_0x48c9da[_0xd79a('0x55')]['filename'])),_0x59491e[_0xd79a('0x4b')]));logger[_0xd79a('0x5d')]('Sound\x20upload\x20filepath:\x20%s',_0x487525);logger[_0xd79a('0x5d')](_0xd79a('0x5e'),_0x3dd043);try{fs['chmodSync'](_0x487525,parseInt(_0xd79a('0x5f'),0x8));var _0xee19d9=sox['transcode'](_0x487525,_0x3dd043,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0xee19d9['on'](_0xd79a('0x29'),function(_0x18ecca){fs[_0xd79a('0x60')](_0x487525);_0x4ba1f9[_0xd79a('0x1b')](0x1f4)[_0xd79a('0x2c')](_0x18ecca);});_0xee19d9['on'](_0xd79a('0x61'),function(_0x12d04c){_0x59491e[_0xd79a('0x62')]=isNaN(_0x12d04c[_0xd79a('0x63')])?null:_0x12d04c['duration']*0x3e8;_0x59491e[_0xd79a('0x64')]=isNaN(_0x12d04c['sampleCount'])?null:_0x12d04c['sampleCount'];_0x59491e[_0xd79a('0x65')]=isNaN(_0x12d04c[_0xd79a('0x66')])?null:_0x12d04c[_0xd79a('0x66')];_0x59491e[_0xd79a('0x67')]=isNaN(_0x12d04c['bitRate'])?null:_0x12d04c['bitRate'];_0x59491e[_0xd79a('0x68')]=isNaN(_0x12d04c['sampleRate'])?null:_0x12d04c[_0xd79a('0x69')];});_0xee19d9['on']('dest',function(_0x59173a){_0x59491e[_0xd79a('0x6a')]=isNaN(_0x59173a[_0xd79a('0x63')])?null:_0x59173a[_0xd79a('0x63')]*0x3e8;_0x59491e[_0xd79a('0x6b')]=isNaN(_0x59173a[_0xd79a('0x6c')])?null:_0x59173a[_0xd79a('0x6c')];_0x59491e['converted_channelCount']=isNaN(_0x59173a['channelCount'])?null:_0x59173a[_0xd79a('0x66')];_0x59491e[_0xd79a('0x6d')]=isNaN(_0x59173a[_0xd79a('0x6e')])?null:_0x59173a['bitRate'];_0x59491e[_0xd79a('0x6f')]=isNaN(_0x59173a['sampleRate'])?null:_0x59173a[_0xd79a('0x69')];});_0xee19d9['on'](_0xd79a('0x1c'),function(){fs[_0xd79a('0x70')](_0x3dd043,parseInt(_0xd79a('0x5f'),0x8));return db[_0xd79a('0x2d')][_0xd79a('0x71')](_0x59491e)['then'](function(_0xfbf4f2){var _0x2bb631={'role':_0x48c9da['body'][_0xd79a('0x72')],'userProfileId':_0x48c9da[_0xd79a('0x73')][_0xd79a('0x74')]};if(!_0x2bb631)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2bb631['role']===_0xd79a('0x75')){var _0x529f87=_0xfbf4f2[_0xd79a('0x27')]({'plain':!![]});return db[_0xd79a('0x76')][_0xd79a('0x49')]({'where':{'name':_0xd79a('0x28'),'userProfileId':_0x2bb631[_0xd79a('0x74')]},'raw':!![]})['then'](function(_0x5481a2){if(_0x5481a2&&_0x5481a2['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x529f87['name'],'resourceId':_0x529f87['id'],'type':_0x5481a2[_0xd79a('0x2b')],'sectionId':_0x5481a2['id']},{})[_0xd79a('0x25')](function(){return _0xfbf4f2;});}else{return _0xfbf4f2;}})[_0xd79a('0x43')](function(_0x4dcfea){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4dcfea);throw _0x4dcfea;});}return _0xfbf4f2;})[_0xd79a('0x25')](respondWithResult(_0x4ba1f9,null))['catch'](handleError(_0x4ba1f9,null));});_0xee19d9[_0xd79a('0x77')]();}catch(_0x48cdf2){_0x4ba1f9[_0xd79a('0x1b')](0x1f4)['send'](_0x48cdf2);}};exports[_0xd79a('0x24')]=function(_0x5757c6,_0x541605,_0x25c0b8){return db['Sound'][_0xd79a('0x49')]({'where':{'id':_0x5757c6['params']['id']}})[_0xd79a('0x25')](handleEntityNotFound(_0x541605,null))[_0xd79a('0x25')](saveUpdates(_[_0xd79a('0x78')](_0x5757c6[_0xd79a('0x73')],['name',_0xd79a('0x79')]),null))[_0xd79a('0x25')](respondWithResult(_0x541605,null))[_0xd79a('0x43')](handleError(_0x541605,null));};exports['delete']=function(_0x1022d8,_0x4896cd,_0x2f5fec){return db['Sound'][_0xd79a('0x49')]({'where':{'id':_0x1022d8['params']['id']}})['then'](function(_0x379b2d){if(_0x379b2d){return _0x379b2d['destroy']();}})[_0xd79a('0x25')](function(_0x21ae27){var _0x9436f7=path[_0xd79a('0x52')](config[_0xd79a('0x4d')],_0xd79a('0x5b'),util['format'](_0xd79a('0x5c'),_0x21ae27['save_name'],_0x21ae27[_0xd79a('0x7a')]));var _0x49b35f=path['join'](config[_0xd79a('0x4d')],_0xd79a('0x4e'),util[_0xd79a('0x53')](_0xd79a('0x5c'),_0x21ae27[_0xd79a('0x4a')],_0x21ae27[_0xd79a('0x4b')]));fs[_0xd79a('0x60')](_0x9436f7);fs['unlinkSync'](_0x49b35f);return _0x21ae27;})[_0xd79a('0x25')](function(_0x2a0b9e){if(_0x2a0b9e){return _0x4896cd[_0xd79a('0x1b')](0xcc)[_0xd79a('0x1c')]();}})[_0xd79a('0x25')](handleEntityNotFound(_0x4896cd,null))[_0xd79a('0x43')](handleError(_0x4896cd,null));};