23fd625c270a9a7e04fca5309d39bf5d89b18140
[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 _0xbf81=['limit','count','offset','Content-Range','apply','save','then','destroy','get','Sounds','UserProfileResource','end','error','stack','name','index','map','Sound','fieldName','type','key','model','keys','filters','intersection','attributes','query','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','download','converted_format','join','server/files/sounds/converted','save_name','ValidationError','Sound\x20not\x20found','root','format','%s.%s','create','file','originalname','basename','filename','extname','substring','wav','server/files/sounds/original','Sound\x20upload\x20filepath:\x20%s','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','unlinkSync','send','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','original_format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','undefined'];(function(_0x467622,_0x4ad91){var _0x35ca1a=function(_0x1cdb34){while(--_0x1cdb34){_0x467622['push'](_0x467622['shift']());}};_0x35ca1a(++_0x4ad91);}(_0xbf81,0xe9));var _0x1bf8=function(_0x598ec6,_0x17113e){_0x598ec6=_0x598ec6-0x0;var _0x54de2d=_0xbf81[_0x598ec6];return _0x54de2d;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1bf8('0x0'));var jsonpatch=require(_0x1bf8('0x1'));var rp=require(_0x1bf8('0x2'));var moment=require(_0x1bf8('0x3'));var BPromise=require(_0x1bf8('0x4'));var Mustache=require(_0x1bf8('0x5'));var util=require(_0x1bf8('0x6'));var path=require(_0x1bf8('0x7'));var sox=require(_0x1bf8('0x8'));var csv=require(_0x1bf8('0x9'));var ejs=require(_0x1bf8('0xa'));var fs=require('fs');var fs_extra=require(_0x1bf8('0xb'));var _=require(_0x1bf8('0xc'));var squel=require(_0x1bf8('0xd'));var crypto=require(_0x1bf8('0xe'));var jsforce=require(_0x1bf8('0xf'));var deskjs=require(_0x1bf8('0x10'));var toCsv=require(_0x1bf8('0x9'));var querystring=require(_0x1bf8('0x11'));var Papa=require(_0x1bf8('0x12'));var Redis=require(_0x1bf8('0x13'));var authService=require(_0x1bf8('0x14'));var qs=require(_0x1bf8('0x15'));var as=require(_0x1bf8('0x16'));var hardwareService=require(_0x1bf8('0x17'));var logger=require(_0x1bf8('0x18'))(_0x1bf8('0x19'));var utils=require(_0x1bf8('0x1a'));var config=require(_0x1bf8('0x1b'));var licenseUtil=require(_0x1bf8('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x383e26,_0x350c6a){_0x350c6a=_0x350c6a||0xcc;return function(_0x2dd9b7){if(_0x2dd9b7){return _0x383e26[_0x1bf8('0x1d')](_0x350c6a);}return _0x383e26[_0x1bf8('0x1e')](_0x350c6a)['end']();};}function respondWithResult(_0x5a52c6,_0x1eba24){_0x1eba24=_0x1eba24||0xc8;return function(_0x5f324f){if(_0x5f324f){return _0x5a52c6[_0x1bf8('0x1e')](_0x1eba24)[_0x1bf8('0x1f')](_0x5f324f);}};}function respondWithFilteredResult(_0x217ff5,_0x3ab3e8){return function(_0x208a66){if(_0x208a66){var _0x208fd5=typeof _0x3ab3e8['offset']===_0x1bf8('0x20')&&typeof _0x3ab3e8[_0x1bf8('0x21')]===_0x1bf8('0x20');var _0x5505bb=_0x208a66['count'];var _0x554355=_0x208fd5?0x0:_0x3ab3e8['offset'];var _0x46d294=_0x208fd5?_0x208a66[_0x1bf8('0x22')]:_0x3ab3e8[_0x1bf8('0x23')]+_0x3ab3e8[_0x1bf8('0x21')];var _0x2b3069;if(_0x46d294>=_0x5505bb){_0x46d294=_0x5505bb;_0x2b3069=0xc8;}else{_0x2b3069=0xce;}_0x217ff5['status'](_0x2b3069);return _0x217ff5['set'](_0x1bf8('0x24'),_0x554355+'-'+_0x46d294+'/'+_0x5505bb)[_0x1bf8('0x1f')](_0x208a66);}return null;};}function patchUpdates(_0x277c9a){return function(_0x1c9087){try{jsonpatch[_0x1bf8('0x25')](_0x1c9087,_0x277c9a,!![]);}catch(_0x917354){return BPromise['reject'](_0x917354);}return _0x1c9087[_0x1bf8('0x26')]();};}function saveUpdates(_0x18a3f9,_0x1322ae){return function(_0x10de24){if(_0x10de24){return _0x10de24['update'](_0x18a3f9)[_0x1bf8('0x27')](function(_0x5465de){return _0x5465de;});}return null;};}function removeEntity(_0x2febd4,_0x188073){return function(_0xd64e93){if(_0xd64e93){return _0xd64e93[_0x1bf8('0x28')]()['then'](function(){var _0x454559=_0xd64e93[_0x1bf8('0x29')]({'plain':!![]});var _0x3b30cd=_0x1bf8('0x2a');return db[_0x1bf8('0x2b')][_0x1bf8('0x28')]({'where':{'type':_0x3b30cd,'resourceId':_0x454559['id']}})[_0x1bf8('0x27')](function(){return _0xd64e93;});})[_0x1bf8('0x27')](function(){_0x2febd4[_0x1bf8('0x1e')](0xcc)[_0x1bf8('0x2c')]();});}};}function handleEntityNotFound(_0x33d3b8,_0x3db9ef){return function(_0x8a1b4e){if(!_0x8a1b4e){_0x33d3b8['sendStatus'](0x194);}return _0x8a1b4e;};}function handleError(_0x3adbb3,_0x2fd1da){_0x2fd1da=_0x2fd1da||0x1f4;return function(_0x32746a){logger[_0x1bf8('0x2d')](_0x32746a[_0x1bf8('0x2e')]);if(_0x32746a[_0x1bf8('0x2f')]){delete _0x32746a[_0x1bf8('0x2f')];}_0x3adbb3['status'](_0x2fd1da)['send'](_0x32746a);};}exports[_0x1bf8('0x30')]=function(_0x52150c,_0x3117b8){var _0x282f66={},_0x927a88={},_0x21a8eb={'count':0x0,'rows':[]};var _0x510240=_[_0x1bf8('0x31')](db[_0x1bf8('0x32')]['rawAttributes'],function(_0x4c77be){return{'name':_0x4c77be[_0x1bf8('0x33')],'type':_0x4c77be[_0x1bf8('0x34')][_0x1bf8('0x35')]};});_0x927a88[_0x1bf8('0x36')]=_['map'](_0x510240,'name');_0x927a88['query']=_[_0x1bf8('0x37')](_0x52150c['query']);_0x927a88[_0x1bf8('0x38')]=_[_0x1bf8('0x39')](_0x927a88[_0x1bf8('0x36')],_0x927a88['query']);_0x282f66[_0x1bf8('0x3a')]=_[_0x1bf8('0x39')](_0x927a88[_0x1bf8('0x36')],qs['fields'](_0x52150c[_0x1bf8('0x3b')][_0x1bf8('0x3c')]));_0x282f66[_0x1bf8('0x3a')]=_0x282f66[_0x1bf8('0x3a')]['length']?_0x282f66['attributes']:_0x927a88[_0x1bf8('0x36')];if(!_0x52150c['query'][_0x1bf8('0x3d')](_0x1bf8('0x3e'))){_0x282f66['limit']=qs[_0x1bf8('0x21')](_0x52150c[_0x1bf8('0x3b')][_0x1bf8('0x21')]);_0x282f66[_0x1bf8('0x23')]=qs[_0x1bf8('0x23')](_0x52150c[_0x1bf8('0x3b')][_0x1bf8('0x23')]);}_0x282f66[_0x1bf8('0x3f')]=qs[_0x1bf8('0x40')](_0x52150c['query']['sort']);_0x282f66[_0x1bf8('0x41')]=qs['filters'](_[_0x1bf8('0x42')](_0x52150c[_0x1bf8('0x3b')],_0x927a88[_0x1bf8('0x38')]),_0x510240);if(_0x52150c['query']['filter']){_0x282f66[_0x1bf8('0x41')]=_[_0x1bf8('0x43')](_0x282f66['where'],{'$or':_[_0x1bf8('0x31')](_0x510240,function(_0x117b75){if(_0x117b75[_0x1bf8('0x34')]!==_0x1bf8('0x44')){var _0x33a1fc={};_0x33a1fc[_0x117b75['name']]={'$like':'%'+_0x52150c['query']['filter']+'%'};return _0x33a1fc;}})});}_0x282f66=_[_0x1bf8('0x43')]({},_0x282f66,_0x52150c[_0x1bf8('0x45')]);var _0x1bcb5d={'where':_0x282f66[_0x1bf8('0x41')]};return db['Sound'][_0x1bf8('0x22')](_0x1bcb5d)[_0x1bf8('0x27')](function(_0x5c2494){_0x21a8eb[_0x1bf8('0x22')]=_0x5c2494;if(_0x52150c[_0x1bf8('0x3b')][_0x1bf8('0x46')]){_0x282f66[_0x1bf8('0x47')]=[{'all':!![]}];}return db[_0x1bf8('0x32')][_0x1bf8('0x48')](_0x282f66);})[_0x1bf8('0x27')](function(_0xa37ef){_0x21a8eb[_0x1bf8('0x49')]=_0xa37ef;return _0x21a8eb;})[_0x1bf8('0x27')](respondWithFilteredResult(_0x3117b8,_0x282f66))[_0x1bf8('0x4a')](handleError(_0x3117b8,null));};exports[_0x1bf8('0x4b')]=function(_0x5e744e,_0x505250){var _0x19bdaf={'raw':!![],'where':{'id':_0x5e744e[_0x1bf8('0x4c')]['id']}},_0x475018={};_0x475018[_0x1bf8('0x36')]=_['keys'](db['Sound'][_0x1bf8('0x4d')]);_0x475018[_0x1bf8('0x3b')]=_[_0x1bf8('0x37')](_0x5e744e[_0x1bf8('0x3b')]);_0x475018[_0x1bf8('0x38')]=_[_0x1bf8('0x39')](_0x475018['model'],_0x475018[_0x1bf8('0x3b')]);_0x19bdaf[_0x1bf8('0x3a')]=_[_0x1bf8('0x39')](_0x475018[_0x1bf8('0x36')],qs[_0x1bf8('0x3c')](_0x5e744e[_0x1bf8('0x3b')][_0x1bf8('0x3c')]));_0x19bdaf[_0x1bf8('0x3a')]=_0x19bdaf[_0x1bf8('0x3a')]['length']?_0x19bdaf[_0x1bf8('0x3a')]:_0x475018[_0x1bf8('0x36')];if(_0x5e744e['query'][_0x1bf8('0x46')]){_0x19bdaf[_0x1bf8('0x47')]=[{'all':!![]}];}_0x19bdaf=_['merge']({},_0x19bdaf,_0x5e744e[_0x1bf8('0x45')]);return db[_0x1bf8('0x32')][_0x1bf8('0x4e')](_0x19bdaf)[_0x1bf8('0x27')](handleEntityNotFound(_0x505250,null))[_0x1bf8('0x27')](respondWithResult(_0x505250,null))[_0x1bf8('0x4a')](handleError(_0x505250,null));};exports[_0x1bf8('0x4f')]=function(_0x1146e1,_0x1c1e49,_0x47bfa4){return db[_0x1bf8('0x32')][_0x1bf8('0x4e')]({'where':{'id':_0x1146e1[_0x1bf8('0x4c')]['id']},'attributes':[_0x1bf8('0x2f'),'save_name',_0x1bf8('0x50')],'raw':!![]})[_0x1bf8('0x27')](handleEntityNotFound(_0x1c1e49,null))['then'](function(_0x262c11){if(_0x262c11){if(!fs['existsSync'](path[_0x1bf8('0x51')](config['root'],_0x1bf8('0x52'),_0x262c11[_0x1bf8('0x53')]+'.'+_0x262c11[_0x1bf8('0x50')]))){throw new db['Sequelize'][(_0x1bf8('0x54'))](_0x1bf8('0x55'));}return _0x1c1e49[_0x1bf8('0x4f')](path['join'](config[_0x1bf8('0x56')],'server/files/sounds/converted',util[_0x1bf8('0x57')](_0x1bf8('0x58'),_0x262c11[_0x1bf8('0x53')],_0x262c11[_0x1bf8('0x50')])),util[_0x1bf8('0x57')](_0x1bf8('0x58'),_0x262c11[_0x1bf8('0x2f')],_0x262c11[_0x1bf8('0x50')]));}return null;})['catch'](handleError(_0x1c1e49,null));};exports[_0x1bf8('0x59')]=function(_0xaea036,_0xbdac8b,_0x58164d){var _0x9f393={'name':path['basename'](_0xaea036[_0x1bf8('0x5a')][_0x1bf8('0x5b')],path['extname'](_0xaea036[_0x1bf8('0x5a')][_0x1bf8('0x5b')])),'save_name':path[_0x1bf8('0x5c')](_0xaea036[_0x1bf8('0x5a')][_0x1bf8('0x5d')],path[_0x1bf8('0x5e')](_0xaea036[_0x1bf8('0x5a')]['filename'])),'original_format':path[_0x1bf8('0x5e')](_0xaea036['file'][_0x1bf8('0x5b')])[_0x1bf8('0x5f')](0x1),'converted_format':_0x1bf8('0x60')};var _0x1f41f5=path[_0x1bf8('0x51')](config[_0x1bf8('0x56')],_0x1bf8('0x61'),_0xaea036[_0x1bf8('0x5a')][_0x1bf8('0x5d')]);var _0x9eaa3f=path[_0x1bf8('0x51')](config[_0x1bf8('0x56')],_0x1bf8('0x52'),util[_0x1bf8('0x57')](_0x1bf8('0x58'),path[_0x1bf8('0x5c')](_0xaea036[_0x1bf8('0x5a')]['filename'],path[_0x1bf8('0x5e')](_0xaea036['file']['filename'])),_0x9f393['converted_format']));logger['info'](_0x1bf8('0x62'),_0x1f41f5);logger[_0x1bf8('0x63')](_0x1bf8('0x64'),_0x9eaa3f);try{fs[_0x1bf8('0x65')](_0x1f41f5,parseInt(_0x1bf8('0x66'),0x8));var _0x228264=sox['transcode'](_0x1f41f5,_0x9eaa3f,{'sampleRate':0x1f40,'format':_0x1bf8('0x60'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x228264['on'](_0x1bf8('0x2d'),function(_0x52457f){fs[_0x1bf8('0x67')](_0x1f41f5);_0xbdac8b[_0x1bf8('0x1e')](0x1f4)[_0x1bf8('0x68')](_0x52457f);});_0x228264['on']('src',function(_0x20ef46){_0x9f393[_0x1bf8('0x69')]=isNaN(_0x20ef46['duration'])?null:_0x20ef46[_0x1bf8('0x6a')]*0x3e8;_0x9f393[_0x1bf8('0x6b')]=isNaN(_0x20ef46[_0x1bf8('0x6c')])?null:_0x20ef46[_0x1bf8('0x6c')];_0x9f393[_0x1bf8('0x6d')]=isNaN(_0x20ef46['channelCount'])?null:_0x20ef46[_0x1bf8('0x6e')];_0x9f393[_0x1bf8('0x6f')]=isNaN(_0x20ef46['bitRate'])?null:_0x20ef46[_0x1bf8('0x70')];_0x9f393[_0x1bf8('0x71')]=isNaN(_0x20ef46[_0x1bf8('0x72')])?null:_0x20ef46['sampleRate'];});_0x228264['on'](_0x1bf8('0x73'),function(_0x14efef){_0x9f393[_0x1bf8('0x74')]=isNaN(_0x14efef[_0x1bf8('0x6a')])?null:_0x14efef[_0x1bf8('0x6a')]*0x3e8;_0x9f393[_0x1bf8('0x75')]=isNaN(_0x14efef[_0x1bf8('0x6c')])?null:_0x14efef['sampleCount'];_0x9f393[_0x1bf8('0x76')]=isNaN(_0x14efef[_0x1bf8('0x6e')])?null:_0x14efef[_0x1bf8('0x6e')];_0x9f393[_0x1bf8('0x77')]=isNaN(_0x14efef[_0x1bf8('0x70')])?null:_0x14efef['bitRate'];_0x9f393[_0x1bf8('0x78')]=isNaN(_0x14efef['sampleRate'])?null:_0x14efef[_0x1bf8('0x72')];});_0x228264['on'](_0x1bf8('0x2c'),function(){fs[_0x1bf8('0x65')](_0x9eaa3f,parseInt(_0x1bf8('0x66'),0x8));return db[_0x1bf8('0x32')][_0x1bf8('0x59')](_0x9f393)[_0x1bf8('0x27')](function(_0x2dde95){var _0x34a3ea={'role':_0xaea036[_0x1bf8('0x79')]['role'],'userProfileId':_0xaea036[_0x1bf8('0x79')][_0x1bf8('0x7a')]};if(!_0x34a3ea)throw new Error(_0x1bf8('0x7b'));if(_0x34a3ea[_0x1bf8('0x7c')]===_0x1bf8('0x7d')){var _0x4311c6=_0x2dde95['get']({'plain':!![]});return db[_0x1bf8('0x7e')]['find']({'where':{'name':'Sounds','userProfileId':_0x34a3ea[_0x1bf8('0x7a')]},'raw':!![]})['then'](function(_0x1fb62e){if(_0x1fb62e&&_0x1fb62e[_0x1bf8('0x7f')]===0x0){return db[_0x1bf8('0x2b')]['create']({'name':_0x4311c6[_0x1bf8('0x2f')],'resourceId':_0x4311c6['id'],'type':_0x1fb62e[_0x1bf8('0x2f')],'sectionId':_0x1fb62e['id']},{})[_0x1bf8('0x27')](function(){return _0x2dde95;});}else{return _0x2dde95;}})[_0x1bf8('0x4a')](function(_0x246e15){logger[_0x1bf8('0x2d')](_0x1bf8('0x80'),_0x246e15);throw _0x246e15;});}return _0x2dde95;})[_0x1bf8('0x27')](respondWithResult(_0xbdac8b,null))[_0x1bf8('0x4a')](handleError(_0xbdac8b,null));});_0x228264[_0x1bf8('0x81')]();}catch(_0x149ed5){_0xbdac8b[_0x1bf8('0x1e')](0x1f4)[_0x1bf8('0x68')](_0x149ed5);}};exports['update']=function(_0x5742e,_0x5e379e,_0x2a4237){return db['Sound']['find']({'where':{'id':_0x5742e[_0x1bf8('0x4c')]['id']}})['then'](handleEntityNotFound(_0x5e379e,null))[_0x1bf8('0x27')](saveUpdates(_[_0x1bf8('0x42')](_0x5742e[_0x1bf8('0x79')],[_0x1bf8('0x2f'),_0x1bf8('0x82')]),null))['then'](respondWithResult(_0x5e379e,null))[_0x1bf8('0x4a')](handleError(_0x5e379e,null));};exports[_0x1bf8('0x83')]=function(_0x55e17a,_0x32e87a,_0x1a68b2){return db[_0x1bf8('0x32')][_0x1bf8('0x4e')]({'where':{'id':_0x55e17a[_0x1bf8('0x4c')]['id']}})[_0x1bf8('0x27')](function(_0x5e78fb){if(_0x5e78fb){return _0x5e78fb['destroy']();}})[_0x1bf8('0x27')](function(_0x3b562a){var _0x49a052=path[_0x1bf8('0x51')](config[_0x1bf8('0x56')],_0x1bf8('0x61'),util[_0x1bf8('0x57')]('%s.%s',_0x3b562a[_0x1bf8('0x53')],_0x3b562a[_0x1bf8('0x84')]));var _0x421a47=path[_0x1bf8('0x51')](config['root'],'server/files/sounds/converted',util[_0x1bf8('0x57')]('%s.%s',_0x3b562a[_0x1bf8('0x53')],_0x3b562a[_0x1bf8('0x50')]));fs[_0x1bf8('0x67')](_0x49a052);fs[_0x1bf8('0x67')](_0x421a47);return _0x3b562a;})[_0x1bf8('0x27')](function(_0x51a5c1){if(_0x51a5c1){return _0x32e87a[_0x1bf8('0x1e')](0xcc)['end']();}})[_0x1bf8('0x27')](handleEntityNotFound(_0x32e87a,null))[_0x1bf8('0x4a')](handleError(_0x32e87a,null));};