df71d79e3826c4eac091ae3a22c5cd25c32876b6
[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 _0x280f=['body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','update','params','pick','delete','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','Content-Range','apply','save','then','destroy','get','Sounds','UserProfileResource','end','error','stack','name','send','Sound','type','key','model','map','query','filters','attributes','fields','length','hasOwnProperty','sort','where','filter','merge','options','includeAll','catch','keys','rawAttributes','intersection','download','find','save_name','join','root','server/files/sounds/converted','converted_format','Sequelize','ValidationError','Sound\x20not\x20found','%s.%s','create','file','originalname','extname','filename','substring','wav','server/files/sounds/original','format','basename','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','transcode','unlinkSync','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','dest','converted_channelCount','converted_bitRate','converted_sampleRate'];(function(_0x207811,_0x3420a6){var _0x170d56=function(_0x4340b7){while(--_0x4340b7){_0x207811['push'](_0x207811['shift']());}};_0x170d56(++_0x3420a6);}(_0x280f,0x1dd));var _0xf280=function(_0xd050c6,_0x58ffb4){_0xd050c6=_0xd050c6-0x0;var _0x7278a=_0x280f[_0xd050c6];return _0x7278a;};'use strict';var pdf=require(_0xf280('0x0'));var emlformat=require(_0xf280('0x1'));var rimraf=require(_0xf280('0x2'));var zipdir=require(_0xf280('0x3'));var jsonpatch=require(_0xf280('0x4'));var rp=require('request-promise');var moment=require(_0xf280('0x5'));var BPromise=require(_0xf280('0x6'));var Mustache=require(_0xf280('0x7'));var util=require('util');var path=require('path');var sox=require(_0xf280('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xf280('0x9'));var squel=require(_0xf280('0xa'));var crypto=require(_0xf280('0xb'));var jsforce=require(_0xf280('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf280('0xd'));var Papa=require(_0xf280('0xe'));var Redis=require(_0xf280('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xf280('0x10'));var as=require(_0xf280('0x11'));var hardwareService=require(_0xf280('0x12'));var logger=require(_0xf280('0x13'))(_0xf280('0x14'));var utils=require('../../config/utils');var config=require(_0xf280('0x15'));var licenseUtil=require(_0xf280('0x16'));var db=require(_0xf280('0x17'))['db'];function respondWithStatusCode(_0x575d8d,_0x18fb8f){_0x18fb8f=_0x18fb8f||0xcc;return function(_0x4048bf){if(_0x4048bf){return _0x575d8d[_0xf280('0x18')](_0x18fb8f);}return _0x575d8d[_0xf280('0x19')](_0x18fb8f)['end']();};}function respondWithResult(_0x5d5e2c,_0x54730f){_0x54730f=_0x54730f||0xc8;return function(_0x3c7f92){if(_0x3c7f92){return _0x5d5e2c[_0xf280('0x19')](_0x54730f)[_0xf280('0x1a')](_0x3c7f92);}};}function respondWithFilteredResult(_0x56fad0,_0x240566){return function(_0x3a31f2){if(_0x3a31f2){var _0x45da04=_0x3a31f2[_0xf280('0x1b')],_0x513bed=_0x240566[_0xf280('0x1c')],_0x4dde9d=_0x240566[_0xf280('0x1c')]+_0x240566[_0xf280('0x1d')],_0xcadded;if(_0x4dde9d>=_0x45da04){_0x4dde9d=_0x45da04;_0xcadded=0xc8;}else{_0xcadded=0xce;}_0x56fad0[_0xf280('0x19')](_0xcadded);return _0x56fad0['set'](_0xf280('0x1e'),_0x513bed+'-'+_0x4dde9d+'/'+_0x45da04)[_0xf280('0x1a')](_0x3a31f2);}return null;};}function patchUpdates(_0x2a5d82){return function(_0x4d9ea3){try{jsonpatch[_0xf280('0x1f')](_0x4d9ea3,_0x2a5d82,!![]);}catch(_0x430c1d){return BPromise['reject'](_0x430c1d);}return _0x4d9ea3[_0xf280('0x20')]();};}function saveUpdates(_0x5f1555,_0x155b2f){return function(_0x54cec1){if(_0x54cec1){return _0x54cec1['update'](_0x5f1555)[_0xf280('0x21')](function(_0x369877){return _0x369877;});}return null;};}function removeEntity(_0x171b24,_0x290bda){return function(_0x35f583){if(_0x35f583){return _0x35f583[_0xf280('0x22')]()[_0xf280('0x21')](function(){var _0x128491=_0x35f583[_0xf280('0x23')]({'plain':!![]});var _0x478a5a=_0xf280('0x24');return db[_0xf280('0x25')][_0xf280('0x22')]({'where':{'type':_0x478a5a,'resourceId':_0x128491['id']}})[_0xf280('0x21')](function(){return _0x35f583;});})['then'](function(){_0x171b24[_0xf280('0x19')](0xcc)[_0xf280('0x26')]();});}};}function handleEntityNotFound(_0x39b61d,_0x5896ac){return function(_0x6051b9){if(!_0x6051b9){_0x39b61d[_0xf280('0x18')](0x194);}return _0x6051b9;};}function handleError(_0x28bea3,_0x13b7f9){_0x13b7f9=_0x13b7f9||0x1f4;return function(_0x57d86d){logger[_0xf280('0x27')](_0x57d86d[_0xf280('0x28')]);if(_0x57d86d[_0xf280('0x29')]){delete _0x57d86d[_0xf280('0x29')];}_0x28bea3[_0xf280('0x19')](_0x13b7f9)[_0xf280('0x2a')](_0x57d86d);};}exports['index']=function(_0x93c643,_0x448f86){var _0x3e9b2a={},_0x4147e2={},_0x10b213={'count':0x0,'rows':[]};var _0xdab3e5=_['map'](db[_0xf280('0x2b')]['rawAttributes'],function(_0x5805df){return{'name':_0x5805df['fieldName'],'type':_0x5805df[_0xf280('0x2c')][_0xf280('0x2d')]};});_0x4147e2[_0xf280('0x2e')]=_[_0xf280('0x2f')](_0xdab3e5,_0xf280('0x29'));_0x4147e2[_0xf280('0x30')]=_['keys'](_0x93c643[_0xf280('0x30')]);_0x4147e2[_0xf280('0x31')]=_['intersection'](_0x4147e2['model'],_0x4147e2[_0xf280('0x30')]);_0x3e9b2a[_0xf280('0x32')]=_['intersection'](_0x4147e2['model'],qs[_0xf280('0x33')](_0x93c643[_0xf280('0x30')][_0xf280('0x33')]));_0x3e9b2a['attributes']=_0x3e9b2a[_0xf280('0x32')][_0xf280('0x34')]?_0x3e9b2a[_0xf280('0x32')]:_0x4147e2[_0xf280('0x2e')];if(!_0x93c643[_0xf280('0x30')][_0xf280('0x35')]('nolimit')){_0x3e9b2a['limit']=qs[_0xf280('0x1d')](_0x93c643[_0xf280('0x30')][_0xf280('0x1d')]);_0x3e9b2a[_0xf280('0x1c')]=qs[_0xf280('0x1c')](_0x93c643['query'][_0xf280('0x1c')]);}_0x3e9b2a['order']=qs[_0xf280('0x36')](_0x93c643[_0xf280('0x30')][_0xf280('0x36')]);_0x3e9b2a[_0xf280('0x37')]=qs[_0xf280('0x31')](_['pick'](_0x93c643[_0xf280('0x30')],_0x4147e2[_0xf280('0x31')]),_0xdab3e5);if(_0x93c643[_0xf280('0x30')][_0xf280('0x38')]){_0x3e9b2a['where']=_[_0xf280('0x39')](_0x3e9b2a['where'],{'$or':_[_0xf280('0x2f')](_0xdab3e5,function(_0x191232){if(_0x191232[_0xf280('0x2c')]!=='VIRTUAL'){var _0x59d5fa={};_0x59d5fa[_0x191232[_0xf280('0x29')]]={'$like':'%'+_0x93c643[_0xf280('0x30')]['filter']+'%'};return _0x59d5fa;}})});}_0x3e9b2a=_['merge']({},_0x3e9b2a,_0x93c643[_0xf280('0x3a')]);var _0x2c3847={'where':_0x3e9b2a[_0xf280('0x37')]};return db[_0xf280('0x2b')]['count'](_0x2c3847)[_0xf280('0x21')](function(_0x5f47e4){_0x10b213[_0xf280('0x1b')]=_0x5f47e4;if(_0x93c643['query'][_0xf280('0x3b')]){_0x3e9b2a['include']=[{'all':!![]}];}return db['Sound']['findAll'](_0x3e9b2a);})[_0xf280('0x21')](function(_0x25efae){_0x10b213['rows']=_0x25efae;return _0x10b213;})['then'](respondWithFilteredResult(_0x448f86,_0x3e9b2a))[_0xf280('0x3c')](handleError(_0x448f86,null));};exports['show']=function(_0x292428,_0x47ff10){var _0x1ba3e6={'raw':!![],'where':{'id':_0x292428['params']['id']}},_0x5c6f73={};_0x5c6f73[_0xf280('0x2e')]=_[_0xf280('0x3d')](db[_0xf280('0x2b')][_0xf280('0x3e')]);_0x5c6f73[_0xf280('0x30')]=_['keys'](_0x292428[_0xf280('0x30')]);_0x5c6f73[_0xf280('0x31')]=_[_0xf280('0x3f')](_0x5c6f73[_0xf280('0x2e')],_0x5c6f73[_0xf280('0x30')]);_0x1ba3e6[_0xf280('0x32')]=_[_0xf280('0x3f')](_0x5c6f73[_0xf280('0x2e')],qs[_0xf280('0x33')](_0x292428[_0xf280('0x30')][_0xf280('0x33')]));_0x1ba3e6['attributes']=_0x1ba3e6[_0xf280('0x32')]['length']?_0x1ba3e6['attributes']:_0x5c6f73[_0xf280('0x2e')];if(_0x292428['query'][_0xf280('0x3b')]){_0x1ba3e6['include']=[{'all':!![]}];}_0x1ba3e6=_['merge']({},_0x1ba3e6,_0x292428[_0xf280('0x3a')]);return db[_0xf280('0x2b')]['find'](_0x1ba3e6)[_0xf280('0x21')](handleEntityNotFound(_0x47ff10,null))[_0xf280('0x21')](respondWithResult(_0x47ff10,null))[_0xf280('0x3c')](handleError(_0x47ff10,null));};exports[_0xf280('0x40')]=function(_0x1a3222,_0x377fe1,_0x3ff961){return db['Sound'][_0xf280('0x41')]({'where':{'id':_0x1a3222['params']['id']},'attributes':[_0xf280('0x29'),_0xf280('0x42'),'converted_format'],'raw':!![]})[_0xf280('0x21')](handleEntityNotFound(_0x377fe1,null))[_0xf280('0x21')](function(_0x540df9){if(_0x540df9){if(!fs['existsSync'](path[_0xf280('0x43')](config[_0xf280('0x44')],_0xf280('0x45'),_0x540df9[_0xf280('0x42')]+'.'+_0x540df9[_0xf280('0x46')]))){throw new db[(_0xf280('0x47'))][(_0xf280('0x48'))](_0xf280('0x49'));}return _0x377fe1[_0xf280('0x40')](path[_0xf280('0x43')](config[_0xf280('0x44')],_0xf280('0x45'),util['format']('%s.%s',_0x540df9[_0xf280('0x42')],_0x540df9[_0xf280('0x46')])),util['format'](_0xf280('0x4a'),_0x540df9[_0xf280('0x29')],_0x540df9[_0xf280('0x46')]));}return null;})[_0xf280('0x3c')](handleError(_0x377fe1,null));};exports[_0xf280('0x4b')]=function(_0x18df15,_0x327144,_0x261fea){var _0x19f9cf={'name':path['basename'](_0x18df15[_0xf280('0x4c')][_0xf280('0x4d')],path[_0xf280('0x4e')](_0x18df15[_0xf280('0x4c')][_0xf280('0x4d')])),'save_name':path['basename'](_0x18df15[_0xf280('0x4c')][_0xf280('0x4f')],path[_0xf280('0x4e')](_0x18df15[_0xf280('0x4c')][_0xf280('0x4f')])),'original_format':path[_0xf280('0x4e')](_0x18df15['file'][_0xf280('0x4d')])[_0xf280('0x50')](0x1),'converted_format':_0xf280('0x51')};var _0x8e7513=path['join'](config[_0xf280('0x44')],_0xf280('0x52'),_0x18df15[_0xf280('0x4c')][_0xf280('0x4f')]);var _0x1fa425=path[_0xf280('0x43')](config[_0xf280('0x44')],_0xf280('0x45'),util[_0xf280('0x53')](_0xf280('0x4a'),path[_0xf280('0x54')](_0x18df15[_0xf280('0x4c')][_0xf280('0x4f')],path[_0xf280('0x4e')](_0x18df15[_0xf280('0x4c')]['filename'])),_0x19f9cf[_0xf280('0x46')]));logger['info'](_0xf280('0x55'),_0x8e7513);logger['info'](_0xf280('0x56'),_0x1fa425);try{fs['chmodSync'](_0x8e7513,parseInt(_0xf280('0x57'),0x8));var _0xa9e6a4=sox[_0xf280('0x58')](_0x8e7513,_0x1fa425,{'sampleRate':0x1f40,'format':_0xf280('0x51'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0xa9e6a4['on'](_0xf280('0x27'),function(_0x387a9d){fs[_0xf280('0x59')](_0x8e7513);_0x327144['status'](0x1f4)[_0xf280('0x2a')](_0x387a9d);});_0xa9e6a4['on']('src',function(_0x582e1a){_0x19f9cf[_0xf280('0x5a')]=isNaN(_0x582e1a['duration'])?null:_0x582e1a[_0xf280('0x5b')]*0x3e8;_0x19f9cf[_0xf280('0x5c')]=isNaN(_0x582e1a[_0xf280('0x5d')])?null:_0x582e1a[_0xf280('0x5d')];_0x19f9cf[_0xf280('0x5e')]=isNaN(_0x582e1a[_0xf280('0x5f')])?null:_0x582e1a['channelCount'];_0x19f9cf['original_bitRate']=isNaN(_0x582e1a[_0xf280('0x60')])?null:_0x582e1a[_0xf280('0x60')];_0x19f9cf[_0xf280('0x61')]=isNaN(_0x582e1a[_0xf280('0x62')])?null:_0x582e1a['sampleRate'];});_0xa9e6a4['on'](_0xf280('0x63'),function(_0x151a91){_0x19f9cf['converted_duration']=isNaN(_0x151a91['duration'])?null:_0x151a91[_0xf280('0x5b')]*0x3e8;_0x19f9cf['converted_sampleCount']=isNaN(_0x151a91[_0xf280('0x5d')])?null:_0x151a91['sampleCount'];_0x19f9cf[_0xf280('0x64')]=isNaN(_0x151a91[_0xf280('0x5f')])?null:_0x151a91[_0xf280('0x5f')];_0x19f9cf[_0xf280('0x65')]=isNaN(_0x151a91[_0xf280('0x60')])?null:_0x151a91[_0xf280('0x60')];_0x19f9cf[_0xf280('0x66')]=isNaN(_0x151a91[_0xf280('0x62')])?null:_0x151a91[_0xf280('0x62')];});_0xa9e6a4['on'](_0xf280('0x26'),function(){fs['chmodSync'](_0x1fa425,parseInt(_0xf280('0x57'),0x8));return db[_0xf280('0x2b')][_0xf280('0x4b')](_0x19f9cf)[_0xf280('0x21')](function(_0x3c1035){var _0x5684a6={'role':_0x18df15[_0xf280('0x67')][_0xf280('0x68')],'userProfileId':_0x18df15[_0xf280('0x67')][_0xf280('0x69')]};if(!_0x5684a6)throw new Error(_0xf280('0x6a'));if(_0x5684a6[_0xf280('0x68')]===_0xf280('0x6b')){var _0x523fb6=_0x3c1035['get']({'plain':!![]});return db[_0xf280('0x6c')]['find']({'where':{'name':_0xf280('0x24'),'userProfileId':_0x5684a6[_0xf280('0x69')]},'raw':!![]})[_0xf280('0x21')](function(_0x4234af){if(_0x4234af&&_0x4234af[_0xf280('0x6d')]===0x0){return db[_0xf280('0x25')][_0xf280('0x4b')]({'name':_0x523fb6[_0xf280('0x29')],'resourceId':_0x523fb6['id'],'type':_0x4234af[_0xf280('0x29')],'sectionId':_0x4234af['id']},{})[_0xf280('0x21')](function(){return _0x3c1035;});}else{return _0x3c1035;}})[_0xf280('0x3c')](function(_0x47b89b){logger['error'](_0xf280('0x6e'),_0x47b89b);throw _0x47b89b;});}return _0x3c1035;})[_0xf280('0x21')](respondWithResult(_0x327144,null))[_0xf280('0x3c')](handleError(_0x327144,null));});_0xa9e6a4[_0xf280('0x6f')]();}catch(_0x810d11){_0x327144[_0xf280('0x19')](0x1f4)[_0xf280('0x2a')](_0x810d11);}};exports[_0xf280('0x70')]=function(_0x457e60,_0x3ac97d,_0x5a2421){return db[_0xf280('0x2b')]['find']({'where':{'id':_0x457e60[_0xf280('0x71')]['id']}})[_0xf280('0x21')](handleEntityNotFound(_0x3ac97d,null))['then'](saveUpdates(_[_0xf280('0x72')](_0x457e60[_0xf280('0x67')],[_0xf280('0x29'),'description']),null))[_0xf280('0x21')](respondWithResult(_0x3ac97d,null))[_0xf280('0x3c')](handleError(_0x3ac97d,null));};exports[_0xf280('0x73')]=function(_0x151870,_0x56eb19,_0x228bb2){return db[_0xf280('0x2b')]['find']({'where':{'id':_0x151870[_0xf280('0x71')]['id']}})[_0xf280('0x21')](function(_0x454087){if(_0x454087){return _0x454087['destroy']();}})[_0xf280('0x21')](function(_0x43ff20){var _0x4df5ce=path['join'](config[_0xf280('0x44')],'server/files/sounds/original',util[_0xf280('0x53')]('%s.%s',_0x43ff20[_0xf280('0x42')],_0x43ff20['original_format']));var _0x5eb2db=path[_0xf280('0x43')](config['root'],_0xf280('0x45'),util[_0xf280('0x53')](_0xf280('0x4a'),_0x43ff20[_0xf280('0x42')],_0x43ff20[_0xf280('0x46')]));fs[_0xf280('0x59')](_0x4df5ce);fs['unlinkSync'](_0x5eb2db);return _0x43ff20;})['then'](function(_0x4c22b1){if(_0x4c22b1){return _0x56eb19[_0xf280('0x19')](0xcc)[_0xf280('0x26')]();}})[_0xf280('0x21')](handleEntityNotFound(_0x56eb19,null))[_0xf280('0x3c')](handleError(_0x56eb19,null));};