805203787af7b28a9705aec2c11245f2ca2fc438
[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 _0x1f13=['Sequelize','ValidationError','Sound\x20not\x20found','join','format','%s.%s','create','file','originalname','filename','extname','substring','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','wav','error','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_channelCount','converted_sampleRate','body','role','userProfileId','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','original_format','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','end','status','offset','limit','undefined','count','set','apply','reject','save','then','destroy','get','Sounds','UserProfileResource','sendStatus','stack','name','send','map','Sound','rawAttributes','type','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','keys','find','download','save_name','converted_format','existsSync','root','server/files/sounds/converted'];(function(_0x13843f,_0x50422d){var _0x1063ae=function(_0x12fd6b){while(--_0x12fd6b){_0x13843f['push'](_0x13843f['shift']());}};_0x1063ae(++_0x50422d);}(_0x1f13,0xad));var _0x31f1=function(_0x19c901,_0x2155d9){_0x19c901=_0x19c901-0x0;var _0x504f35=_0x1f13[_0x19c901];return _0x504f35;};'use strict';var emlformat=require(_0x31f1('0x0'));var rimraf=require(_0x31f1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x31f1('0x2'));var rp=require(_0x31f1('0x3'));var moment=require(_0x31f1('0x4'));var BPromise=require(_0x31f1('0x5'));var Mustache=require(_0x31f1('0x6'));var util=require(_0x31f1('0x7'));var path=require(_0x31f1('0x8'));var sox=require(_0x31f1('0x9'));var csv=require(_0x31f1('0xa'));var ejs=require(_0x31f1('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x31f1('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x31f1('0xd'));var toCsv=require(_0x31f1('0xa'));var querystring=require(_0x31f1('0xe'));var Papa=require(_0x31f1('0xf'));var Redis=require(_0x31f1('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x31f1('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x31f1('0x12'))(_0x31f1('0x13'));var utils=require(_0x31f1('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x31f1('0x15'));var db=require(_0x31f1('0x16'))['db'];function respondWithStatusCode(_0x2ce565,_0x988548){_0x988548=_0x988548||0xcc;return function(_0x19b28d){if(_0x19b28d){return _0x2ce565['sendStatus'](_0x988548);}return _0x2ce565['status'](_0x988548)[_0x31f1('0x17')]();};}function respondWithResult(_0x34e325,_0x547dba){_0x547dba=_0x547dba||0xc8;return function(_0x176b30){if(_0x176b30){return _0x34e325[_0x31f1('0x18')](_0x547dba)['json'](_0x176b30);}};}function respondWithFilteredResult(_0x5bdfa7,_0x54857c){return function(_0x3ec5bf){if(_0x3ec5bf){var _0x45af47=typeof _0x54857c[_0x31f1('0x19')]==='undefined'&&typeof _0x54857c[_0x31f1('0x1a')]===_0x31f1('0x1b');var _0xc9041c=_0x3ec5bf[_0x31f1('0x1c')];var _0xec7f5a=_0x45af47?0x0:_0x54857c[_0x31f1('0x19')];var _0xd731d0=_0x45af47?_0x3ec5bf['count']:_0x54857c[_0x31f1('0x19')]+_0x54857c['limit'];var _0x535737;if(_0xd731d0>=_0xc9041c){_0xd731d0=_0xc9041c;_0x535737=0xc8;}else{_0x535737=0xce;}_0x5bdfa7['status'](_0x535737);return _0x5bdfa7[_0x31f1('0x1d')]('Content-Range',_0xec7f5a+'-'+_0xd731d0+'/'+_0xc9041c)['json'](_0x3ec5bf);}return null;};}function patchUpdates(_0x5d169e){return function(_0x2e9f98){try{jsonpatch[_0x31f1('0x1e')](_0x2e9f98,_0x5d169e,!![]);}catch(_0x2a4d99){return BPromise[_0x31f1('0x1f')](_0x2a4d99);}return _0x2e9f98[_0x31f1('0x20')]();};}function saveUpdates(_0x55853d,_0x19f292){return function(_0xed9c6f){if(_0xed9c6f){return _0xed9c6f['update'](_0x55853d)[_0x31f1('0x21')](function(_0x3e9d8f){return _0x3e9d8f;});}return null;};}function removeEntity(_0x162326,_0x5634d2){return function(_0x58b144){if(_0x58b144){return _0x58b144[_0x31f1('0x22')]()[_0x31f1('0x21')](function(){var _0xf05d5b=_0x58b144[_0x31f1('0x23')]({'plain':!![]});var _0x316027=_0x31f1('0x24');return db[_0x31f1('0x25')]['destroy']({'where':{'type':_0x316027,'resourceId':_0xf05d5b['id']}})['then'](function(){return _0x58b144;});})[_0x31f1('0x21')](function(){_0x162326['status'](0xcc)[_0x31f1('0x17')]();});}};}function handleEntityNotFound(_0x1af922,_0x2a3156){return function(_0x2d7c21){if(!_0x2d7c21){_0x1af922[_0x31f1('0x26')](0x194);}return _0x2d7c21;};}function handleError(_0x5ef1db,_0x1c6b54){_0x1c6b54=_0x1c6b54||0x1f4;return function(_0x107fef){logger['error'](_0x107fef[_0x31f1('0x27')]);if(_0x107fef[_0x31f1('0x28')]){delete _0x107fef[_0x31f1('0x28')];}_0x5ef1db['status'](_0x1c6b54)[_0x31f1('0x29')](_0x107fef);};}exports['index']=function(_0x62ac15,_0x12d236){var _0xba5087={},_0x195ad5={},_0x51bd42={'count':0x0,'rows':[]};var _0x2ca27f=_[_0x31f1('0x2a')](db[_0x31f1('0x2b')][_0x31f1('0x2c')],function(_0x130a8f){return{'name':_0x130a8f['fieldName'],'type':_0x130a8f[_0x31f1('0x2d')]['key']};});_0x195ad5[_0x31f1('0x2e')]=_[_0x31f1('0x2a')](_0x2ca27f,_0x31f1('0x28'));_0x195ad5[_0x31f1('0x2f')]=_['keys'](_0x62ac15[_0x31f1('0x2f')]);_0x195ad5[_0x31f1('0x30')]=_[_0x31f1('0x31')](_0x195ad5[_0x31f1('0x2e')],_0x195ad5[_0x31f1('0x2f')]);_0xba5087[_0x31f1('0x32')]=_[_0x31f1('0x31')](_0x195ad5['model'],qs[_0x31f1('0x33')](_0x62ac15[_0x31f1('0x2f')][_0x31f1('0x33')]));_0xba5087['attributes']=_0xba5087[_0x31f1('0x32')][_0x31f1('0x34')]?_0xba5087[_0x31f1('0x32')]:_0x195ad5[_0x31f1('0x2e')];if(!_0x62ac15['query']['hasOwnProperty'](_0x31f1('0x35'))){_0xba5087[_0x31f1('0x1a')]=qs[_0x31f1('0x1a')](_0x62ac15[_0x31f1('0x2f')]['limit']);_0xba5087[_0x31f1('0x19')]=qs['offset'](_0x62ac15[_0x31f1('0x2f')][_0x31f1('0x19')]);}_0xba5087[_0x31f1('0x36')]=qs[_0x31f1('0x37')](_0x62ac15[_0x31f1('0x2f')][_0x31f1('0x37')]);_0xba5087['where']=qs[_0x31f1('0x30')](_[_0x31f1('0x38')](_0x62ac15[_0x31f1('0x2f')],_0x195ad5['filters']),_0x2ca27f);if(_0x62ac15[_0x31f1('0x2f')]['filter']){_0xba5087[_0x31f1('0x39')]=_[_0x31f1('0x3a')](_0xba5087[_0x31f1('0x39')],{'$or':_['map'](_0x2ca27f,function(_0x1a79aa){if(_0x1a79aa[_0x31f1('0x2d')]!==_0x31f1('0x3b')){var _0x43ca17={};_0x43ca17[_0x1a79aa[_0x31f1('0x28')]]={'$like':'%'+_0x62ac15[_0x31f1('0x2f')][_0x31f1('0x3c')]+'%'};return _0x43ca17;}})});}_0xba5087=_[_0x31f1('0x3a')]({},_0xba5087,_0x62ac15[_0x31f1('0x3d')]);var _0x50e0be={'where':_0xba5087['where']};return db['Sound'][_0x31f1('0x1c')](_0x50e0be)[_0x31f1('0x21')](function(_0x342dda){_0x51bd42[_0x31f1('0x1c')]=_0x342dda;if(_0x62ac15[_0x31f1('0x2f')][_0x31f1('0x3e')]){_0xba5087[_0x31f1('0x3f')]=[{'all':!![]}];}return db[_0x31f1('0x2b')][_0x31f1('0x40')](_0xba5087);})[_0x31f1('0x21')](function(_0x41b5ed){_0x51bd42[_0x31f1('0x41')]=_0x41b5ed;return _0x51bd42;})[_0x31f1('0x21')](respondWithFilteredResult(_0x12d236,_0xba5087))[_0x31f1('0x42')](handleError(_0x12d236,null));};exports[_0x31f1('0x43')]=function(_0x387beb,_0x540bf0){var _0xc0a621={'raw':!![],'where':{'id':_0x387beb[_0x31f1('0x44')]['id']}},_0x2ae158={};_0x2ae158[_0x31f1('0x2e')]=_[_0x31f1('0x45')](db[_0x31f1('0x2b')][_0x31f1('0x2c')]);_0x2ae158['query']=_[_0x31f1('0x45')](_0x387beb[_0x31f1('0x2f')]);_0x2ae158[_0x31f1('0x30')]=_[_0x31f1('0x31')](_0x2ae158['model'],_0x2ae158[_0x31f1('0x2f')]);_0xc0a621[_0x31f1('0x32')]=_[_0x31f1('0x31')](_0x2ae158[_0x31f1('0x2e')],qs['fields'](_0x387beb[_0x31f1('0x2f')]['fields']));_0xc0a621[_0x31f1('0x32')]=_0xc0a621[_0x31f1('0x32')]['length']?_0xc0a621[_0x31f1('0x32')]:_0x2ae158[_0x31f1('0x2e')];if(_0x387beb[_0x31f1('0x2f')][_0x31f1('0x3e')]){_0xc0a621['include']=[{'all':!![]}];}_0xc0a621=_[_0x31f1('0x3a')]({},_0xc0a621,_0x387beb['options']);return db['Sound'][_0x31f1('0x46')](_0xc0a621)['then'](handleEntityNotFound(_0x540bf0,null))[_0x31f1('0x21')](respondWithResult(_0x540bf0,null))[_0x31f1('0x42')](handleError(_0x540bf0,null));};exports[_0x31f1('0x47')]=function(_0x228b8b,_0x2c8437,_0x19c092){return db[_0x31f1('0x2b')][_0x31f1('0x46')]({'where':{'id':_0x228b8b[_0x31f1('0x44')]['id']},'attributes':[_0x31f1('0x28'),_0x31f1('0x48'),_0x31f1('0x49')],'raw':!![]})['then'](handleEntityNotFound(_0x2c8437,null))[_0x31f1('0x21')](function(_0x4533e3){if(_0x4533e3){if(!fs[_0x31f1('0x4a')](path['join'](config[_0x31f1('0x4b')],_0x31f1('0x4c'),_0x4533e3[_0x31f1('0x48')]+'.'+_0x4533e3[_0x31f1('0x49')]))){throw new db[(_0x31f1('0x4d'))][(_0x31f1('0x4e'))](_0x31f1('0x4f'));}return _0x2c8437[_0x31f1('0x47')](path[_0x31f1('0x50')](config['root'],_0x31f1('0x4c'),util[_0x31f1('0x51')](_0x31f1('0x52'),_0x4533e3['save_name'],_0x4533e3[_0x31f1('0x49')])),util[_0x31f1('0x51')](_0x31f1('0x52'),_0x4533e3[_0x31f1('0x28')],_0x4533e3[_0x31f1('0x49')]));}return null;})['catch'](handleError(_0x2c8437,null));};exports[_0x31f1('0x53')]=function(_0x57311c,_0x1f0f03,_0x5ee69b){var _0x33b937={'name':path['basename'](_0x57311c[_0x31f1('0x54')][_0x31f1('0x55')],path['extname'](_0x57311c[_0x31f1('0x54')][_0x31f1('0x55')])),'save_name':path['basename'](_0x57311c[_0x31f1('0x54')][_0x31f1('0x56')],path[_0x31f1('0x57')](_0x57311c[_0x31f1('0x54')][_0x31f1('0x56')])),'original_format':path['extname'](_0x57311c[_0x31f1('0x54')][_0x31f1('0x55')])[_0x31f1('0x58')](0x1),'converted_format':'wav'};var _0x4c2d1b=path[_0x31f1('0x50')](config[_0x31f1('0x4b')],_0x31f1('0x59'),_0x57311c[_0x31f1('0x54')]['filename']);var _0x4ed271=path['join'](config[_0x31f1('0x4b')],_0x31f1('0x4c'),util[_0x31f1('0x51')](_0x31f1('0x52'),path['basename'](_0x57311c[_0x31f1('0x54')]['filename'],path[_0x31f1('0x57')](_0x57311c['file'][_0x31f1('0x56')])),_0x33b937[_0x31f1('0x49')]));logger[_0x31f1('0x5a')](_0x31f1('0x5b'),_0x4c2d1b);logger[_0x31f1('0x5a')](_0x31f1('0x5c'),_0x4ed271);try{fs[_0x31f1('0x5d')](_0x4c2d1b,parseInt(_0x31f1('0x5e'),0x8));var _0x521b96=sox[_0x31f1('0x5f')](_0x4c2d1b,_0x4ed271,{'sampleRate':0x1f40,'format':_0x31f1('0x60'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x521b96['on'](_0x31f1('0x61'),function(_0x26f7a0){fs[_0x31f1('0x62')](_0x4c2d1b);_0x1f0f03[_0x31f1('0x18')](0x1f4)[_0x31f1('0x29')](_0x26f7a0);});_0x521b96['on'](_0x31f1('0x63'),function(_0x2c76e2){_0x33b937[_0x31f1('0x64')]=isNaN(_0x2c76e2[_0x31f1('0x65')])?null:_0x2c76e2[_0x31f1('0x65')]*0x3e8;_0x33b937[_0x31f1('0x66')]=isNaN(_0x2c76e2['sampleCount'])?null:_0x2c76e2[_0x31f1('0x67')];_0x33b937[_0x31f1('0x68')]=isNaN(_0x2c76e2[_0x31f1('0x69')])?null:_0x2c76e2[_0x31f1('0x69')];_0x33b937[_0x31f1('0x6a')]=isNaN(_0x2c76e2[_0x31f1('0x6b')])?null:_0x2c76e2[_0x31f1('0x6b')];_0x33b937[_0x31f1('0x6c')]=isNaN(_0x2c76e2[_0x31f1('0x6d')])?null:_0x2c76e2['sampleRate'];});_0x521b96['on'](_0x31f1('0x6e'),function(_0x266760){_0x33b937[_0x31f1('0x6f')]=isNaN(_0x266760[_0x31f1('0x65')])?null:_0x266760['duration']*0x3e8;_0x33b937['converted_sampleCount']=isNaN(_0x266760[_0x31f1('0x67')])?null:_0x266760[_0x31f1('0x67')];_0x33b937[_0x31f1('0x70')]=isNaN(_0x266760[_0x31f1('0x69')])?null:_0x266760[_0x31f1('0x69')];_0x33b937['converted_bitRate']=isNaN(_0x266760['bitRate'])?null:_0x266760[_0x31f1('0x6b')];_0x33b937[_0x31f1('0x71')]=isNaN(_0x266760['sampleRate'])?null:_0x266760[_0x31f1('0x6d')];});_0x521b96['on']('end',function(){fs[_0x31f1('0x5d')](_0x4ed271,parseInt(_0x31f1('0x5e'),0x8));return db[_0x31f1('0x2b')][_0x31f1('0x53')](_0x33b937)[_0x31f1('0x21')](function(_0x446b8){var _0x178f5d={'role':_0x57311c[_0x31f1('0x72')][_0x31f1('0x73')],'userProfileId':_0x57311c[_0x31f1('0x72')][_0x31f1('0x74')]};if(!_0x178f5d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x178f5d['role']===_0x31f1('0x75')){var _0x52916b=_0x446b8[_0x31f1('0x23')]({'plain':!![]});return db[_0x31f1('0x76')]['find']({'where':{'name':_0x31f1('0x24'),'userProfileId':_0x178f5d[_0x31f1('0x74')]},'raw':!![]})[_0x31f1('0x21')](function(_0x467ae4){if(_0x467ae4&&_0x467ae4[_0x31f1('0x77')]===0x0){return db['UserProfileResource'][_0x31f1('0x53')]({'name':_0x52916b[_0x31f1('0x28')],'resourceId':_0x52916b['id'],'type':_0x467ae4[_0x31f1('0x28')],'sectionId':_0x467ae4['id']},{})['then'](function(){return _0x446b8;});}else{return _0x446b8;}})[_0x31f1('0x42')](function(_0x4924ce){logger[_0x31f1('0x61')](_0x31f1('0x78'),_0x4924ce);throw _0x4924ce;});}return _0x446b8;})[_0x31f1('0x21')](respondWithResult(_0x1f0f03,null))[_0x31f1('0x42')](handleError(_0x1f0f03,null));});_0x521b96[_0x31f1('0x79')]();}catch(_0xaa94fc){_0x1f0f03['status'](0x1f4)[_0x31f1('0x29')](_0xaa94fc);}};exports['update']=function(_0x955e7b,_0x51dfc6,_0x1f555f){return db[_0x31f1('0x2b')][_0x31f1('0x46')]({'where':{'id':_0x955e7b[_0x31f1('0x44')]['id']}})[_0x31f1('0x21')](handleEntityNotFound(_0x51dfc6,null))[_0x31f1('0x21')](saveUpdates(_[_0x31f1('0x38')](_0x955e7b[_0x31f1('0x72')],['name',_0x31f1('0x7a')]),null))[_0x31f1('0x21')](respondWithResult(_0x51dfc6,null))[_0x31f1('0x42')](handleError(_0x51dfc6,null));};exports[_0x31f1('0x7b')]=function(_0x186671,_0x281f8b,_0x580fe0){return db['Sound']['find']({'where':{'id':_0x186671[_0x31f1('0x44')]['id']}})['then'](function(_0x55ec4e){if(_0x55ec4e){return _0x55ec4e[_0x31f1('0x22')]();}})[_0x31f1('0x21')](function(_0x181bc0){var _0x3c3c51=path[_0x31f1('0x50')](config[_0x31f1('0x4b')],_0x31f1('0x59'),util[_0x31f1('0x51')]('%s.%s',_0x181bc0[_0x31f1('0x48')],_0x181bc0[_0x31f1('0x7c')]));var _0x34aafb=path['join'](config['root'],_0x31f1('0x4c'),util[_0x31f1('0x51')](_0x31f1('0x52'),_0x181bc0[_0x31f1('0x48')],_0x181bc0['converted_format']));fs[_0x31f1('0x62')](_0x3c3c51);fs['unlinkSync'](_0x34aafb);return _0x181bc0;})[_0x31f1('0x21')](function(_0x2e089b){if(_0x2e089b){return _0x281f8b['status'](0xcc)[_0x31f1('0x17')]();}})[_0x31f1('0x21')](handleEntityNotFound(_0x281f8b,null))[_0x31f1('0x42')](handleError(_0x281f8b,null));};