Built motion from commit d1eab355.|2.6.28
[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 _0x8f1a=['duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_channelCount','converted_sampleRate','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','delete','destroy','server/files/sounds/original','original_format','rimraf','fast-json-patch','request-promise','moment','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','get','Sounds','UserProfileResource','error','stack','name','index','map','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','type','merge','options','includeAll','include','Sound','findAll','rows','catch','show','find','params','save_name','converted_format','join','root','server/files/sounds/converted','Sequelize','ValidationError','download','format','%s.%s','create','basename','file','originalname','extname','filename','substring','wav','Sound\x20upload\x20filepath:\x20%s','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','send','src','original_duration'];(function(_0x2bbef5,_0x3871a7){var _0x296f20=function(_0x141409){while(--_0x141409){_0x2bbef5['push'](_0x2bbef5['shift']());}};_0x296f20(++_0x3871a7);}(_0x8f1a,0x111));var _0xa8f1=function(_0x1d45d4,_0x2ee425){_0x1d45d4=_0x1d45d4-0x0;var _0x262a9f=_0x8f1a[_0x1d45d4];return _0x262a9f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa8f1('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa8f1('0x1'));var rp=require(_0xa8f1('0x2'));var moment=require(_0xa8f1('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xa8f1('0x4'));var csv=require(_0xa8f1('0x5'));var ejs=require(_0xa8f1('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa8f1('0x7'));var squel=require(_0xa8f1('0x8'));var crypto=require(_0xa8f1('0x9'));var jsforce=require(_0xa8f1('0xa'));var deskjs=require(_0xa8f1('0xb'));var toCsv=require(_0xa8f1('0x5'));var querystring=require(_0xa8f1('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa8f1('0xd'));var qs=require(_0xa8f1('0xe'));var as=require(_0xa8f1('0xf'));var hardwareService=require(_0xa8f1('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xa8f1('0x11'));var config=require(_0xa8f1('0x12'));var licenseUtil=require(_0xa8f1('0x13'));var db=require(_0xa8f1('0x14'))['db'];function respondWithStatusCode(_0x35e3ce,_0x5aeb54){_0x5aeb54=_0x5aeb54||0xcc;return function(_0x4c0eff){if(_0x4c0eff){return _0x35e3ce[_0xa8f1('0x15')](_0x5aeb54);}return _0x35e3ce[_0xa8f1('0x16')](_0x5aeb54)[_0xa8f1('0x17')]();};}function respondWithResult(_0x4d50ba,_0xb780d7){_0xb780d7=_0xb780d7||0xc8;return function(_0x57de93){if(_0x57de93){return _0x4d50ba[_0xa8f1('0x16')](_0xb780d7)[_0xa8f1('0x18')](_0x57de93);}};}function respondWithFilteredResult(_0x6818ac,_0x11ed09){return function(_0x15b518){if(_0x15b518){var _0x4a8884=typeof _0x11ed09[_0xa8f1('0x19')]===_0xa8f1('0x1a')&&typeof _0x11ed09[_0xa8f1('0x1b')]===_0xa8f1('0x1a');var _0x1733c9=_0x15b518[_0xa8f1('0x1c')];var _0x2612cd=_0x4a8884?0x0:_0x11ed09['offset'];var _0x1927be=_0x4a8884?_0x15b518[_0xa8f1('0x1c')]:_0x11ed09[_0xa8f1('0x19')]+_0x11ed09['limit'];var _0x272392;if(_0x1927be>=_0x1733c9){_0x1927be=_0x1733c9;_0x272392=0xc8;}else{_0x272392=0xce;}_0x6818ac[_0xa8f1('0x16')](_0x272392);return _0x6818ac[_0xa8f1('0x1d')]('Content-Range',_0x2612cd+'-'+_0x1927be+'/'+_0x1733c9)['json'](_0x15b518);}return null;};}function patchUpdates(_0x381d3f){return function(_0x3a1717){try{jsonpatch[_0xa8f1('0x1e')](_0x3a1717,_0x381d3f,!![]);}catch(_0x141d57){return BPromise[_0xa8f1('0x1f')](_0x141d57);}return _0x3a1717[_0xa8f1('0x20')]();};}function saveUpdates(_0x54717e,_0x5191d4){return function(_0x1f7f12){if(_0x1f7f12){return _0x1f7f12[_0xa8f1('0x21')](_0x54717e)[_0xa8f1('0x22')](function(_0x477dd1){return _0x477dd1;});}return null;};}function removeEntity(_0x5ed778,_0x34c4e9){return function(_0xa5d2ec){if(_0xa5d2ec){return _0xa5d2ec['destroy']()[_0xa8f1('0x22')](function(){var _0x50b3b6=_0xa5d2ec[_0xa8f1('0x23')]({'plain':!![]});var _0x6fc760=_0xa8f1('0x24');return db[_0xa8f1('0x25')]['destroy']({'where':{'type':_0x6fc760,'resourceId':_0x50b3b6['id']}})[_0xa8f1('0x22')](function(){return _0xa5d2ec;});})[_0xa8f1('0x22')](function(){_0x5ed778[_0xa8f1('0x16')](0xcc)[_0xa8f1('0x17')]();});}};}function handleEntityNotFound(_0x4dc8a4,_0x4b1d4f){return function(_0x5f5565){if(!_0x5f5565){_0x4dc8a4['sendStatus'](0x194);}return _0x5f5565;};}function handleError(_0xbb9d90,_0xc66dc5){_0xc66dc5=_0xc66dc5||0x1f4;return function(_0x445e1d){logger[_0xa8f1('0x26')](_0x445e1d[_0xa8f1('0x27')]);if(_0x445e1d[_0xa8f1('0x28')]){delete _0x445e1d[_0xa8f1('0x28')];}_0xbb9d90[_0xa8f1('0x16')](_0xc66dc5)['send'](_0x445e1d);};}exports[_0xa8f1('0x29')]=function(_0x286cf0,_0x66e47){var _0x554f06={},_0x2f853c={},_0x16474a={'count':0x0,'rows':[]};var _0x5ea21c=_[_0xa8f1('0x2a')](db['Sound']['rawAttributes'],function(_0x4cd89c){return{'name':_0x4cd89c[_0xa8f1('0x2b')],'type':_0x4cd89c['type'][_0xa8f1('0x2c')]};});_0x2f853c[_0xa8f1('0x2d')]=_[_0xa8f1('0x2a')](_0x5ea21c,'name');_0x2f853c[_0xa8f1('0x2e')]=_[_0xa8f1('0x2f')](_0x286cf0['query']);_0x2f853c[_0xa8f1('0x30')]=_[_0xa8f1('0x31')](_0x2f853c[_0xa8f1('0x2d')],_0x2f853c[_0xa8f1('0x2e')]);_0x554f06[_0xa8f1('0x32')]=_[_0xa8f1('0x31')](_0x2f853c['model'],qs[_0xa8f1('0x33')](_0x286cf0[_0xa8f1('0x2e')]['fields']));_0x554f06[_0xa8f1('0x32')]=_0x554f06['attributes'][_0xa8f1('0x34')]?_0x554f06[_0xa8f1('0x32')]:_0x2f853c['model'];if(!_0x286cf0[_0xa8f1('0x2e')][_0xa8f1('0x35')](_0xa8f1('0x36'))){_0x554f06[_0xa8f1('0x1b')]=qs['limit'](_0x286cf0[_0xa8f1('0x2e')][_0xa8f1('0x1b')]);_0x554f06[_0xa8f1('0x19')]=qs[_0xa8f1('0x19')](_0x286cf0['query'][_0xa8f1('0x19')]);}_0x554f06['order']=qs[_0xa8f1('0x37')](_0x286cf0[_0xa8f1('0x2e')][_0xa8f1('0x37')]);_0x554f06[_0xa8f1('0x38')]=qs['filters'](_[_0xa8f1('0x39')](_0x286cf0[_0xa8f1('0x2e')],_0x2f853c['filters']),_0x5ea21c);if(_0x286cf0[_0xa8f1('0x2e')][_0xa8f1('0x3a')]){_0x554f06['where']=_['merge'](_0x554f06[_0xa8f1('0x38')],{'$or':_[_0xa8f1('0x2a')](_0x5ea21c,function(_0x5f2911){if(_0x5f2911[_0xa8f1('0x3b')]!=='VIRTUAL'){var _0x26c366={};_0x26c366[_0x5f2911['name']]={'$like':'%'+_0x286cf0[_0xa8f1('0x2e')][_0xa8f1('0x3a')]+'%'};return _0x26c366;}})});}_0x554f06=_[_0xa8f1('0x3c')]({},_0x554f06,_0x286cf0[_0xa8f1('0x3d')]);var _0x481f1f={'where':_0x554f06[_0xa8f1('0x38')]};return db['Sound']['count'](_0x481f1f)['then'](function(_0x2486df){_0x16474a[_0xa8f1('0x1c')]=_0x2486df;if(_0x286cf0['query'][_0xa8f1('0x3e')]){_0x554f06[_0xa8f1('0x3f')]=[{'all':!![]}];}return db[_0xa8f1('0x40')][_0xa8f1('0x41')](_0x554f06);})[_0xa8f1('0x22')](function(_0x5a2d57){_0x16474a[_0xa8f1('0x42')]=_0x5a2d57;return _0x16474a;})[_0xa8f1('0x22')](respondWithFilteredResult(_0x66e47,_0x554f06))[_0xa8f1('0x43')](handleError(_0x66e47,null));};exports[_0xa8f1('0x44')]=function(_0x29e00e,_0x883b28){var _0x57342a={'raw':!![],'where':{'id':_0x29e00e['params']['id']}},_0x223f05={};_0x223f05[_0xa8f1('0x2d')]=_[_0xa8f1('0x2f')](db[_0xa8f1('0x40')]['rawAttributes']);_0x223f05[_0xa8f1('0x2e')]=_[_0xa8f1('0x2f')](_0x29e00e['query']);_0x223f05['filters']=_[_0xa8f1('0x31')](_0x223f05[_0xa8f1('0x2d')],_0x223f05[_0xa8f1('0x2e')]);_0x57342a[_0xa8f1('0x32')]=_[_0xa8f1('0x31')](_0x223f05[_0xa8f1('0x2d')],qs['fields'](_0x29e00e[_0xa8f1('0x2e')][_0xa8f1('0x33')]));_0x57342a[_0xa8f1('0x32')]=_0x57342a['attributes'][_0xa8f1('0x34')]?_0x57342a['attributes']:_0x223f05['model'];if(_0x29e00e[_0xa8f1('0x2e')]['includeAll']){_0x57342a[_0xa8f1('0x3f')]=[{'all':!![]}];}_0x57342a=_[_0xa8f1('0x3c')]({},_0x57342a,_0x29e00e[_0xa8f1('0x3d')]);return db['Sound'][_0xa8f1('0x45')](_0x57342a)[_0xa8f1('0x22')](handleEntityNotFound(_0x883b28,null))['then'](respondWithResult(_0x883b28,null))[_0xa8f1('0x43')](handleError(_0x883b28,null));};exports['download']=function(_0x1c445a,_0x122e57,_0x1176bb){return db[_0xa8f1('0x40')][_0xa8f1('0x45')]({'where':{'id':_0x1c445a[_0xa8f1('0x46')]['id']},'attributes':[_0xa8f1('0x28'),_0xa8f1('0x47'),_0xa8f1('0x48')],'raw':!![]})[_0xa8f1('0x22')](handleEntityNotFound(_0x122e57,null))[_0xa8f1('0x22')](function(_0xbbbae1){if(_0xbbbae1){if(!fs['existsSync'](path[_0xa8f1('0x49')](config[_0xa8f1('0x4a')],_0xa8f1('0x4b'),_0xbbbae1[_0xa8f1('0x47')]+'.'+_0xbbbae1[_0xa8f1('0x48')]))){throw new db[(_0xa8f1('0x4c'))][(_0xa8f1('0x4d'))]('Sound\x20not\x20found');}return _0x122e57[_0xa8f1('0x4e')](path[_0xa8f1('0x49')](config[_0xa8f1('0x4a')],_0xa8f1('0x4b'),util[_0xa8f1('0x4f')](_0xa8f1('0x50'),_0xbbbae1[_0xa8f1('0x47')],_0xbbbae1[_0xa8f1('0x48')])),util[_0xa8f1('0x4f')](_0xa8f1('0x50'),_0xbbbae1[_0xa8f1('0x28')],_0xbbbae1[_0xa8f1('0x48')]));}return null;})['catch'](handleError(_0x122e57,null));};exports[_0xa8f1('0x51')]=function(_0x598115,_0x6f1f8f,_0x5e7abc){var _0xdf6190={'name':path[_0xa8f1('0x52')](_0x598115[_0xa8f1('0x53')][_0xa8f1('0x54')],path[_0xa8f1('0x55')](_0x598115[_0xa8f1('0x53')]['originalname'])),'save_name':path[_0xa8f1('0x52')](_0x598115[_0xa8f1('0x53')][_0xa8f1('0x56')],path['extname'](_0x598115[_0xa8f1('0x53')][_0xa8f1('0x56')])),'original_format':path[_0xa8f1('0x55')](_0x598115[_0xa8f1('0x53')][_0xa8f1('0x54')])[_0xa8f1('0x57')](0x1),'converted_format':_0xa8f1('0x58')};var _0x310b86=path['join'](config[_0xa8f1('0x4a')],'server/files/sounds/original',_0x598115[_0xa8f1('0x53')][_0xa8f1('0x56')]);var _0x4a4302=path[_0xa8f1('0x49')](config[_0xa8f1('0x4a')],_0xa8f1('0x4b'),util[_0xa8f1('0x4f')](_0xa8f1('0x50'),path[_0xa8f1('0x52')](_0x598115[_0xa8f1('0x53')][_0xa8f1('0x56')],path['extname'](_0x598115['file']['filename'])),_0xdf6190[_0xa8f1('0x48')]));logger['info'](_0xa8f1('0x59'),_0x310b86);logger[_0xa8f1('0x5a')](_0xa8f1('0x5b'),_0x4a4302);try{fs[_0xa8f1('0x5c')](_0x310b86,parseInt(_0xa8f1('0x5d'),0x8));var _0x20a391=sox[_0xa8f1('0x5e')](_0x310b86,_0x4a4302,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x20a391['on']('error',function(_0x14ebf1){fs[_0xa8f1('0x5f')](_0x310b86);_0x6f1f8f[_0xa8f1('0x16')](0x1f4)[_0xa8f1('0x60')](_0x14ebf1);});_0x20a391['on'](_0xa8f1('0x61'),function(_0xc0f39d){_0xdf6190[_0xa8f1('0x62')]=isNaN(_0xc0f39d[_0xa8f1('0x63')])?null:_0xc0f39d[_0xa8f1('0x63')]*0x3e8;_0xdf6190[_0xa8f1('0x64')]=isNaN(_0xc0f39d[_0xa8f1('0x65')])?null:_0xc0f39d['sampleCount'];_0xdf6190[_0xa8f1('0x66')]=isNaN(_0xc0f39d[_0xa8f1('0x67')])?null:_0xc0f39d[_0xa8f1('0x67')];_0xdf6190[_0xa8f1('0x68')]=isNaN(_0xc0f39d[_0xa8f1('0x69')])?null:_0xc0f39d['bitRate'];_0xdf6190[_0xa8f1('0x6a')]=isNaN(_0xc0f39d['sampleRate'])?null:_0xc0f39d[_0xa8f1('0x6b')];});_0x20a391['on'](_0xa8f1('0x6c'),function(_0x3e8d69){_0xdf6190[_0xa8f1('0x6d')]=isNaN(_0x3e8d69[_0xa8f1('0x63')])?null:_0x3e8d69[_0xa8f1('0x63')]*0x3e8;_0xdf6190['converted_sampleCount']=isNaN(_0x3e8d69[_0xa8f1('0x65')])?null:_0x3e8d69[_0xa8f1('0x65')];_0xdf6190[_0xa8f1('0x6e')]=isNaN(_0x3e8d69[_0xa8f1('0x67')])?null:_0x3e8d69[_0xa8f1('0x67')];_0xdf6190['converted_bitRate']=isNaN(_0x3e8d69[_0xa8f1('0x69')])?null:_0x3e8d69[_0xa8f1('0x69')];_0xdf6190[_0xa8f1('0x6f')]=isNaN(_0x3e8d69[_0xa8f1('0x6b')])?null:_0x3e8d69['sampleRate'];});_0x20a391['on'](_0xa8f1('0x17'),function(){fs[_0xa8f1('0x5c')](_0x4a4302,parseInt(_0xa8f1('0x5d'),0x8));return db['Sound'][_0xa8f1('0x51')](_0xdf6190)[_0xa8f1('0x22')](function(_0xb6dcbb){var _0x162408={'role':_0x598115[_0xa8f1('0x70')]['role'],'userProfileId':_0x598115[_0xa8f1('0x70')][_0xa8f1('0x71')]};if(!_0x162408)throw new Error(_0xa8f1('0x72'));if(_0x162408[_0xa8f1('0x73')]==='user'){var _0x3cf416=_0xb6dcbb[_0xa8f1('0x23')]({'plain':!![]});return db[_0xa8f1('0x74')][_0xa8f1('0x45')]({'where':{'name':_0xa8f1('0x24'),'userProfileId':_0x162408[_0xa8f1('0x71')]},'raw':!![]})[_0xa8f1('0x22')](function(_0x5a6a25){if(_0x5a6a25&&_0x5a6a25[_0xa8f1('0x75')]===0x0){return db[_0xa8f1('0x25')][_0xa8f1('0x51')]({'name':_0x3cf416['name'],'resourceId':_0x3cf416['id'],'type':_0x5a6a25['name'],'sectionId':_0x5a6a25['id']},{})[_0xa8f1('0x22')](function(){return _0xb6dcbb;});}else{return _0xb6dcbb;}})['catch'](function(_0x4570e1){logger[_0xa8f1('0x26')](_0xa8f1('0x76'),_0x4570e1);throw _0x4570e1;});}return _0xb6dcbb;})[_0xa8f1('0x22')](respondWithResult(_0x6f1f8f,null))[_0xa8f1('0x43')](handleError(_0x6f1f8f,null));});_0x20a391['start']();}catch(_0x2e76b2){_0x6f1f8f['status'](0x1f4)[_0xa8f1('0x60')](_0x2e76b2);}};exports['update']=function(_0x5bc0e8,_0x38b2d0,_0x405a9d){return db[_0xa8f1('0x40')][_0xa8f1('0x45')]({'where':{'id':_0x5bc0e8['params']['id']}})[_0xa8f1('0x22')](handleEntityNotFound(_0x38b2d0,null))[_0xa8f1('0x22')](saveUpdates(_[_0xa8f1('0x39')](_0x5bc0e8[_0xa8f1('0x70')],['name',_0xa8f1('0x77')]),null))[_0xa8f1('0x22')](respondWithResult(_0x38b2d0,null))[_0xa8f1('0x43')](handleError(_0x38b2d0,null));};exports[_0xa8f1('0x78')]=function(_0x4e5be6,_0x49db16,_0x1e1525){return db[_0xa8f1('0x40')]['find']({'where':{'id':_0x4e5be6['params']['id']}})[_0xa8f1('0x22')](function(_0x453ab8){if(_0x453ab8){return _0x453ab8[_0xa8f1('0x79')]();}})[_0xa8f1('0x22')](function(_0x12770c){var _0x12b8fa=path[_0xa8f1('0x49')](config[_0xa8f1('0x4a')],_0xa8f1('0x7a'),util[_0xa8f1('0x4f')](_0xa8f1('0x50'),_0x12770c['save_name'],_0x12770c[_0xa8f1('0x7b')]));var _0x55eefe=path[_0xa8f1('0x49')](config[_0xa8f1('0x4a')],'server/files/sounds/converted',util['format'](_0xa8f1('0x50'),_0x12770c['save_name'],_0x12770c[_0xa8f1('0x48')]));fs[_0xa8f1('0x5f')](_0x12b8fa);fs[_0xa8f1('0x5f')](_0x55eefe);return _0x12770c;})[_0xa8f1('0x22')](function(_0x2cd542){if(_0x2cd542){return _0x49db16['status'](0xcc)['end']();}})['then'](handleEntityNotFound(_0x49db16,null))[_0xa8f1('0x43')](handleError(_0x49db16,null));};