Built motion from commit 85328c08.|2.5.50
[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 _0x7116=['duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','converted_bitRate','role','body','user','userProfileId','error','start','description','original_format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','save','update','destroy','get','Sounds','UserProfileResource','then','stack','name','send','index','map','Sound','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','params','find','save_name','converted_format','existsSync','join','root','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','download','format','%s.%s','create','basename','file','originalname','extname','filename','wav','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','original_duration'];(function(_0x546dd2,_0x2d5991){var _0x265106=function(_0x5bab94){while(--_0x5bab94){_0x546dd2['push'](_0x546dd2['shift']());}};_0x265106(++_0x2d5991);}(_0x7116,0x88));var _0x6711=function(_0x508b77,_0x5de944){_0x508b77=_0x508b77-0x0;var _0x440bd=_0x7116[_0x508b77];return _0x440bd;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6711('0x0'));var jsonpatch=require(_0x6711('0x1'));var rp=require(_0x6711('0x2'));var moment=require('moment');var BPromise=require(_0x6711('0x3'));var Mustache=require(_0x6711('0x4'));var util=require('util');var path=require(_0x6711('0x5'));var sox=require(_0x6711('0x6'));var csv=require(_0x6711('0x7'));var ejs=require(_0x6711('0x8'));var fs=require('fs');var fs_extra=require(_0x6711('0x9'));var _=require(_0x6711('0xa'));var squel=require(_0x6711('0xb'));var crypto=require(_0x6711('0xc'));var jsforce=require(_0x6711('0xd'));var deskjs=require(_0x6711('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6711('0xf'));var Papa=require(_0x6711('0x10'));var Redis=require(_0x6711('0x11'));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('../../config/logger')(_0x6711('0x12'));var utils=require(_0x6711('0x13'));var config=require(_0x6711('0x14'));var licenseUtil=require(_0x6711('0x15'));var db=require(_0x6711('0x16'))['db'];function respondWithStatusCode(_0x291904,_0x35ab1f){_0x35ab1f=_0x35ab1f||0xcc;return function(_0x5b1abf){if(_0x5b1abf){return _0x291904[_0x6711('0x17')](_0x35ab1f);}return _0x291904[_0x6711('0x18')](_0x35ab1f)[_0x6711('0x19')]();};}function respondWithResult(_0x42a582,_0x44947b){_0x44947b=_0x44947b||0xc8;return function(_0xc7172c){if(_0xc7172c){return _0x42a582[_0x6711('0x18')](_0x44947b)[_0x6711('0x1a')](_0xc7172c);}};}function respondWithFilteredResult(_0x357601,_0x4395f7){return function(_0x5424d0){if(_0x5424d0){var _0x2a0012=typeof _0x4395f7[_0x6711('0x1b')]===_0x6711('0x1c')&&typeof _0x4395f7['limit']===_0x6711('0x1c');var _0x44c113=_0x5424d0[_0x6711('0x1d')];var _0x53db67=_0x2a0012?0x0:_0x4395f7['offset'];var _0x275990=_0x2a0012?_0x5424d0[_0x6711('0x1d')]:_0x4395f7[_0x6711('0x1b')]+_0x4395f7[_0x6711('0x1e')];var _0x5b804d;if(_0x275990>=_0x44c113){_0x275990=_0x44c113;_0x5b804d=0xc8;}else{_0x5b804d=0xce;}_0x357601[_0x6711('0x18')](_0x5b804d);return _0x357601[_0x6711('0x1f')](_0x6711('0x20'),_0x53db67+'-'+_0x275990+'/'+_0x44c113)[_0x6711('0x1a')](_0x5424d0);}return null;};}function patchUpdates(_0x83af5d){return function(_0x1bd47d){try{jsonpatch['apply'](_0x1bd47d,_0x83af5d,!![]);}catch(_0x81f9c2){return BPromise['reject'](_0x81f9c2);}return _0x1bd47d[_0x6711('0x21')]();};}function saveUpdates(_0x3f5d4c,_0x5e82cd){return function(_0x2b8c87){if(_0x2b8c87){return _0x2b8c87[_0x6711('0x22')](_0x3f5d4c)['then'](function(_0x5e50c6){return _0x5e50c6;});}return null;};}function removeEntity(_0x25a0cd,_0x3f7cda){return function(_0x22c116){if(_0x22c116){return _0x22c116[_0x6711('0x23')]()['then'](function(){var _0x8925a4=_0x22c116[_0x6711('0x24')]({'plain':!![]});var _0x37e26d=_0x6711('0x25');return db[_0x6711('0x26')][_0x6711('0x23')]({'where':{'type':_0x37e26d,'resourceId':_0x8925a4['id']}})[_0x6711('0x27')](function(){return _0x22c116;});})[_0x6711('0x27')](function(){_0x25a0cd[_0x6711('0x18')](0xcc)[_0x6711('0x19')]();});}};}function handleEntityNotFound(_0x22d1d7,_0x3c9b41){return function(_0x5b62e4){if(!_0x5b62e4){_0x22d1d7['sendStatus'](0x194);}return _0x5b62e4;};}function handleError(_0x32eef0,_0x2c2ea1){_0x2c2ea1=_0x2c2ea1||0x1f4;return function(_0x2be1b8){logger['error'](_0x2be1b8[_0x6711('0x28')]);if(_0x2be1b8['name']){delete _0x2be1b8[_0x6711('0x29')];}_0x32eef0['status'](_0x2c2ea1)[_0x6711('0x2a')](_0x2be1b8);};}exports[_0x6711('0x2b')]=function(_0x4c9228,_0x4dd2fe){var _0x13d919={},_0xd1987={},_0x33be3f={'count':0x0,'rows':[]};var _0xa95b92=_[_0x6711('0x2c')](db[_0x6711('0x2d')]['rawAttributes'],function(_0x333daa){return{'name':_0x333daa['fieldName'],'type':_0x333daa[_0x6711('0x2e')][_0x6711('0x2f')]};});_0xd1987[_0x6711('0x30')]=_[_0x6711('0x2c')](_0xa95b92,_0x6711('0x29'));_0xd1987[_0x6711('0x31')]=_[_0x6711('0x32')](_0x4c9228['query']);_0xd1987[_0x6711('0x33')]=_[_0x6711('0x34')](_0xd1987['model'],_0xd1987['query']);_0x13d919[_0x6711('0x35')]=_[_0x6711('0x34')](_0xd1987[_0x6711('0x30')],qs[_0x6711('0x36')](_0x4c9228[_0x6711('0x31')][_0x6711('0x36')]));_0x13d919[_0x6711('0x35')]=_0x13d919[_0x6711('0x35')]['length']?_0x13d919['attributes']:_0xd1987[_0x6711('0x30')];if(!_0x4c9228[_0x6711('0x31')][_0x6711('0x37')](_0x6711('0x38'))){_0x13d919['limit']=qs[_0x6711('0x1e')](_0x4c9228[_0x6711('0x31')][_0x6711('0x1e')]);_0x13d919[_0x6711('0x1b')]=qs[_0x6711('0x1b')](_0x4c9228[_0x6711('0x31')][_0x6711('0x1b')]);}_0x13d919['order']=qs[_0x6711('0x39')](_0x4c9228[_0x6711('0x31')][_0x6711('0x39')]);_0x13d919[_0x6711('0x3a')]=qs[_0x6711('0x33')](_[_0x6711('0x3b')](_0x4c9228[_0x6711('0x31')],_0xd1987['filters']),_0xa95b92);if(_0x4c9228[_0x6711('0x31')][_0x6711('0x3c')]){_0x13d919['where']=_['merge'](_0x13d919[_0x6711('0x3a')],{'$or':_[_0x6711('0x2c')](_0xa95b92,function(_0x201a35){if(_0x201a35[_0x6711('0x2e')]!==_0x6711('0x3d')){var _0x23b338={};_0x23b338[_0x201a35['name']]={'$like':'%'+_0x4c9228[_0x6711('0x31')][_0x6711('0x3c')]+'%'};return _0x23b338;}})});}_0x13d919=_[_0x6711('0x3e')]({},_0x13d919,_0x4c9228[_0x6711('0x3f')]);var _0x402744={'where':_0x13d919[_0x6711('0x3a')]};return db[_0x6711('0x2d')]['count'](_0x402744)[_0x6711('0x27')](function(_0x25eb72){_0x33be3f['count']=_0x25eb72;if(_0x4c9228['query'][_0x6711('0x40')]){_0x13d919[_0x6711('0x41')]=[{'all':!![]}];}return db[_0x6711('0x2d')][_0x6711('0x42')](_0x13d919);})[_0x6711('0x27')](function(_0x41b5b3){_0x33be3f['rows']=_0x41b5b3;return _0x33be3f;})[_0x6711('0x27')](respondWithFilteredResult(_0x4dd2fe,_0x13d919))[_0x6711('0x43')](handleError(_0x4dd2fe,null));};exports['show']=function(_0xafb64a,_0x23180a){var _0x3541d9={'raw':!![],'where':{'id':_0xafb64a[_0x6711('0x44')]['id']}},_0x624372={};_0x624372[_0x6711('0x30')]=_[_0x6711('0x32')](db[_0x6711('0x2d')]['rawAttributes']);_0x624372['query']=_['keys'](_0xafb64a[_0x6711('0x31')]);_0x624372[_0x6711('0x33')]=_[_0x6711('0x34')](_0x624372[_0x6711('0x30')],_0x624372[_0x6711('0x31')]);_0x3541d9[_0x6711('0x35')]=_[_0x6711('0x34')](_0x624372[_0x6711('0x30')],qs[_0x6711('0x36')](_0xafb64a['query'][_0x6711('0x36')]));_0x3541d9[_0x6711('0x35')]=_0x3541d9[_0x6711('0x35')]['length']?_0x3541d9['attributes']:_0x624372[_0x6711('0x30')];if(_0xafb64a[_0x6711('0x31')][_0x6711('0x40')]){_0x3541d9[_0x6711('0x41')]=[{'all':!![]}];}_0x3541d9=_['merge']({},_0x3541d9,_0xafb64a[_0x6711('0x3f')]);return db[_0x6711('0x2d')][_0x6711('0x45')](_0x3541d9)[_0x6711('0x27')](handleEntityNotFound(_0x23180a,null))['then'](respondWithResult(_0x23180a,null))[_0x6711('0x43')](handleError(_0x23180a,null));};exports['download']=function(_0x1c0100,_0x4ce91b,_0x5426f6){return db[_0x6711('0x2d')][_0x6711('0x45')]({'where':{'id':_0x1c0100[_0x6711('0x44')]['id']},'attributes':['name',_0x6711('0x46'),_0x6711('0x47')],'raw':!![]})[_0x6711('0x27')](handleEntityNotFound(_0x4ce91b,null))['then'](function(_0x13b29e){if(_0x13b29e){if(!fs[_0x6711('0x48')](path[_0x6711('0x49')](config[_0x6711('0x4a')],_0x6711('0x4b'),_0x13b29e[_0x6711('0x46')]+'.'+_0x13b29e[_0x6711('0x47')]))){throw new db[(_0x6711('0x4c'))][(_0x6711('0x4d'))](_0x6711('0x4e'));}return _0x4ce91b[_0x6711('0x4f')](path[_0x6711('0x49')](config[_0x6711('0x4a')],_0x6711('0x4b'),util[_0x6711('0x50')](_0x6711('0x51'),_0x13b29e['save_name'],_0x13b29e[_0x6711('0x47')])),util[_0x6711('0x50')]('%s.%s',_0x13b29e['name'],_0x13b29e['converted_format']));}return null;})[_0x6711('0x43')](handleError(_0x4ce91b,null));};exports[_0x6711('0x52')]=function(_0x30841f,_0x1fc2f5,_0x5a7d23){var _0x344665={'name':path[_0x6711('0x53')](_0x30841f[_0x6711('0x54')][_0x6711('0x55')],path[_0x6711('0x56')](_0x30841f[_0x6711('0x54')][_0x6711('0x55')])),'save_name':path[_0x6711('0x53')](_0x30841f['file'][_0x6711('0x57')],path[_0x6711('0x56')](_0x30841f[_0x6711('0x54')][_0x6711('0x57')])),'original_format':path['extname'](_0x30841f['file'][_0x6711('0x55')])['substring'](0x1),'converted_format':_0x6711('0x58')};var _0x58e8f0=path[_0x6711('0x49')](config[_0x6711('0x4a')],'server/files/sounds/original',_0x30841f[_0x6711('0x54')][_0x6711('0x57')]);var _0x10abdd=path[_0x6711('0x49')](config[_0x6711('0x4a')],_0x6711('0x4b'),util[_0x6711('0x50')]('%s.%s',path[_0x6711('0x53')](_0x30841f[_0x6711('0x54')][_0x6711('0x57')],path['extname'](_0x30841f['file'][_0x6711('0x57')])),_0x344665['converted_format']));logger['info']('Sound\x20upload\x20filepath:\x20%s',_0x58e8f0);logger[_0x6711('0x59')](_0x6711('0x5a'),_0x10abdd);try{fs[_0x6711('0x5b')](_0x58e8f0,parseInt(_0x6711('0x5c'),0x8));var _0x2ae852=sox[_0x6711('0x5d')](_0x58e8f0,_0x10abdd,{'sampleRate':0x1f40,'format':_0x6711('0x58'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x2ae852['on']('error',function(_0x1f1302){fs[_0x6711('0x5e')](_0x58e8f0);_0x1fc2f5['status'](0x1f4)[_0x6711('0x2a')](_0x1f1302);});_0x2ae852['on']('src',function(_0xf4baf8){_0x344665[_0x6711('0x5f')]=isNaN(_0xf4baf8[_0x6711('0x60')])?null:_0xf4baf8[_0x6711('0x60')]*0x3e8;_0x344665[_0x6711('0x61')]=isNaN(_0xf4baf8['sampleCount'])?null:_0xf4baf8[_0x6711('0x62')];_0x344665[_0x6711('0x63')]=isNaN(_0xf4baf8[_0x6711('0x64')])?null:_0xf4baf8[_0x6711('0x64')];_0x344665[_0x6711('0x65')]=isNaN(_0xf4baf8[_0x6711('0x66')])?null:_0xf4baf8['bitRate'];_0x344665[_0x6711('0x67')]=isNaN(_0xf4baf8[_0x6711('0x68')])?null:_0xf4baf8[_0x6711('0x68')];});_0x2ae852['on']('dest',function(_0x2c516d){_0x344665[_0x6711('0x69')]=isNaN(_0x2c516d[_0x6711('0x60')])?null:_0x2c516d['duration']*0x3e8;_0x344665[_0x6711('0x6a')]=isNaN(_0x2c516d[_0x6711('0x62')])?null:_0x2c516d[_0x6711('0x62')];_0x344665['converted_channelCount']=isNaN(_0x2c516d[_0x6711('0x64')])?null:_0x2c516d['channelCount'];_0x344665[_0x6711('0x6b')]=isNaN(_0x2c516d[_0x6711('0x66')])?null:_0x2c516d[_0x6711('0x66')];_0x344665['converted_sampleRate']=isNaN(_0x2c516d[_0x6711('0x68')])?null:_0x2c516d[_0x6711('0x68')];});_0x2ae852['on'](_0x6711('0x19'),function(){fs[_0x6711('0x5b')](_0x10abdd,parseInt('0777',0x8));return db[_0x6711('0x2d')][_0x6711('0x52')](_0x344665)[_0x6711('0x27')](function(_0xd5f22d){var _0x4d8235={'role':_0x30841f['body'][_0x6711('0x6c')],'userProfileId':_0x30841f[_0x6711('0x6d')]['userProfileId']};if(!_0x4d8235)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4d8235[_0x6711('0x6c')]===_0x6711('0x6e')){var _0x407c64=_0xd5f22d[_0x6711('0x24')]({'plain':!![]});return db['UserProfileSection'][_0x6711('0x45')]({'where':{'name':_0x6711('0x25'),'userProfileId':_0x4d8235[_0x6711('0x6f')]},'raw':!![]})[_0x6711('0x27')](function(_0x32e2b6){if(_0x32e2b6&&_0x32e2b6['autoAssociation']===0x0){return db['UserProfileResource'][_0x6711('0x52')]({'name':_0x407c64[_0x6711('0x29')],'resourceId':_0x407c64['id'],'type':_0x32e2b6['name'],'sectionId':_0x32e2b6['id']},{})[_0x6711('0x27')](function(){return _0xd5f22d;});}else{return _0xd5f22d;}})[_0x6711('0x43')](function(_0x1940bd){logger[_0x6711('0x70')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1940bd);throw _0x1940bd;});}return _0xd5f22d;})[_0x6711('0x27')](respondWithResult(_0x1fc2f5,null))[_0x6711('0x43')](handleError(_0x1fc2f5,null));});_0x2ae852[_0x6711('0x71')]();}catch(_0x5b9c3a){_0x1fc2f5[_0x6711('0x18')](0x1f4)[_0x6711('0x2a')](_0x5b9c3a);}};exports[_0x6711('0x22')]=function(_0x5d99a8,_0x3cf8e0,_0xd93399){return db[_0x6711('0x2d')][_0x6711('0x45')]({'where':{'id':_0x5d99a8[_0x6711('0x44')]['id']}})[_0x6711('0x27')](handleEntityNotFound(_0x3cf8e0,null))['then'](saveUpdates(_[_0x6711('0x3b')](_0x5d99a8[_0x6711('0x6d')],[_0x6711('0x29'),_0x6711('0x72')]),null))['then'](respondWithResult(_0x3cf8e0,null))[_0x6711('0x43')](handleError(_0x3cf8e0,null));};exports['delete']=function(_0xc6ffea,_0x45449c,_0x15f14c){return db[_0x6711('0x2d')][_0x6711('0x45')]({'where':{'id':_0xc6ffea['params']['id']}})[_0x6711('0x27')](function(_0x140567){if(_0x140567){return _0x140567[_0x6711('0x23')]();}})[_0x6711('0x27')](function(_0x1b4ac0){var _0x3cb90d=path[_0x6711('0x49')](config[_0x6711('0x4a')],'server/files/sounds/original',util[_0x6711('0x50')]('%s.%s',_0x1b4ac0[_0x6711('0x46')],_0x1b4ac0[_0x6711('0x73')]));var _0x37151e=path[_0x6711('0x49')](config[_0x6711('0x4a')],_0x6711('0x4b'),util[_0x6711('0x50')]('%s.%s',_0x1b4ac0['save_name'],_0x1b4ac0[_0x6711('0x47')]));fs[_0x6711('0x5e')](_0x3cb90d);fs[_0x6711('0x5e')](_0x37151e);return _0x1b4ac0;})[_0x6711('0x27')](function(_0x19c5c8){if(_0x19c5c8){return _0x45449c['status'](0xcc)[_0x6711('0x19')]();}})['then'](handleEntityNotFound(_0x45449c,null))[_0x6711('0x43')](handleError(_0x45449c,null));};