1aad024c133a4bb3d99d6fc6015ee62177905c48
[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 _0xd3d4=['count','offset','limit','set','apply','reject','save','update','then','destroy','Sounds','UserProfileResource','error','stack','name','send','index','map','Sound','type','key','query','filters','model','attributes','intersection','fields','hasOwnProperty','sort','pick','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','find','catch','download','save_name','existsSync','join','root','converted_format','Sequelize','ValidationError','server/files/sounds/converted','format','%s.%s','create','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','transcode','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_sampleCount','converted_channelCount','converted_sampleRate','chmodSync','body','role','userProfileId','user','get','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','delete','original_format','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json'];(function(_0x2398c2,_0x1dba26){var _0x270a8b=function(_0x5893f0){while(--_0x5893f0){_0x2398c2['push'](_0x2398c2['shift']());}};_0x270a8b(++_0x1dba26);}(_0xd3d4,0x1dc));var _0x4d3d=function(_0x22ff64,_0x5bd6a3){_0x22ff64=_0x22ff64-0x0;var _0x5496bf=_0xd3d4[_0x22ff64];return _0x5496bf;};'use strict';var pdf=require(_0x4d3d('0x0'));var emlformat=require(_0x4d3d('0x1'));var rimraf=require(_0x4d3d('0x2'));var zipdir=require(_0x4d3d('0x3'));var jsonpatch=require(_0x4d3d('0x4'));var rp=require('request-promise');var moment=require(_0x4d3d('0x5'));var BPromise=require(_0x4d3d('0x6'));var Mustache=require(_0x4d3d('0x7'));var util=require(_0x4d3d('0x8'));var path=require(_0x4d3d('0x9'));var sox=require(_0x4d3d('0xa'));var csv=require(_0x4d3d('0xb'));var ejs=require(_0x4d3d('0xc'));var fs=require('fs');var _=require(_0x4d3d('0xd'));var squel=require(_0x4d3d('0xe'));var crypto=require(_0x4d3d('0xf'));var jsforce=require(_0x4d3d('0x10'));var deskjs=require(_0x4d3d('0x11'));var toCsv=require('to-csv');var querystring=require(_0x4d3d('0x12'));var Papa=require('papaparse');var Redis=require(_0x4d3d('0x13'));var authService=require(_0x4d3d('0x14'));var qs=require(_0x4d3d('0x15'));var as=require(_0x4d3d('0x16'));var hardwareService=require(_0x4d3d('0x17'));var logger=require('../../config/logger')(_0x4d3d('0x18'));var utils=require(_0x4d3d('0x19'));var config=require(_0x4d3d('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x4d3d('0x1b'))['db'];function respondWithStatusCode(_0xc81faa,_0x1c23cf){_0x1c23cf=_0x1c23cf||0xcc;return function(_0x42824d){if(_0x42824d){return _0xc81faa[_0x4d3d('0x1c')](_0x1c23cf);}return _0xc81faa[_0x4d3d('0x1d')](_0x1c23cf)[_0x4d3d('0x1e')]();};}function respondWithResult(_0xb41539,_0x44a942){_0x44a942=_0x44a942||0xc8;return function(_0x1155b7){if(_0x1155b7){return _0xb41539[_0x4d3d('0x1d')](_0x44a942)[_0x4d3d('0x1f')](_0x1155b7);}};}function respondWithFilteredResult(_0x4f918c,_0x36c995){return function(_0x10d68){if(_0x10d68){var _0x1b5212=_0x10d68[_0x4d3d('0x20')],_0x1c8dc4=_0x36c995[_0x4d3d('0x21')],_0x5e1fb0=_0x36c995['offset']+_0x36c995[_0x4d3d('0x22')],_0x2de9e1;if(_0x5e1fb0>=_0x1b5212){_0x5e1fb0=_0x1b5212;_0x2de9e1=0xc8;}else{_0x2de9e1=0xce;}_0x4f918c[_0x4d3d('0x1d')](_0x2de9e1);return _0x4f918c[_0x4d3d('0x23')]('Content-Range',_0x1c8dc4+'-'+_0x5e1fb0+'/'+_0x1b5212)[_0x4d3d('0x1f')](_0x10d68);}return null;};}function patchUpdates(_0x51ef14){return function(_0x5b5c60){try{jsonpatch[_0x4d3d('0x24')](_0x5b5c60,_0x51ef14,!![]);}catch(_0x5defea){return BPromise[_0x4d3d('0x25')](_0x5defea);}return _0x5b5c60[_0x4d3d('0x26')]();};}function saveUpdates(_0x175108,_0x5b13e1){return function(_0x35d07e){if(_0x35d07e){return _0x35d07e[_0x4d3d('0x27')](_0x175108)[_0x4d3d('0x28')](function(_0x18c61c){return _0x18c61c;});}return null;};}function removeEntity(_0x37184b,_0x38210b){return function(_0x1f1755){if(_0x1f1755){return _0x1f1755[_0x4d3d('0x29')]()['then'](function(){var _0x390f97=_0x1f1755['get']({'plain':!![]});var _0x441da2=_0x4d3d('0x2a');return db[_0x4d3d('0x2b')][_0x4d3d('0x29')]({'where':{'type':_0x441da2,'resourceId':_0x390f97['id']}})['then'](function(){return _0x1f1755;});})[_0x4d3d('0x28')](function(){_0x37184b['status'](0xcc)[_0x4d3d('0x1e')]();});}};}function handleEntityNotFound(_0x2b8595,_0x26ea90){return function(_0x3f9b31){if(!_0x3f9b31){_0x2b8595[_0x4d3d('0x1c')](0x194);}return _0x3f9b31;};}function handleError(_0x1cb581,_0x548dfb){_0x548dfb=_0x548dfb||0x1f4;return function(_0x44cbc8){logger[_0x4d3d('0x2c')](_0x44cbc8[_0x4d3d('0x2d')]);if(_0x44cbc8[_0x4d3d('0x2e')]){delete _0x44cbc8[_0x4d3d('0x2e')];}_0x1cb581[_0x4d3d('0x1d')](_0x548dfb)[_0x4d3d('0x2f')](_0x44cbc8);};}exports[_0x4d3d('0x30')]=function(_0x4a7e58,_0x5f31b0){var _0x5840a5={},_0x4d03e1={},_0x312bde={'count':0x0,'rows':[]};var _0x82dad9=_[_0x4d3d('0x31')](db[_0x4d3d('0x32')]['rawAttributes'],function(_0x579be8){return{'name':_0x579be8['fieldName'],'type':_0x579be8[_0x4d3d('0x33')][_0x4d3d('0x34')]};});_0x4d03e1['model']=_[_0x4d3d('0x31')](_0x82dad9,_0x4d3d('0x2e'));_0x4d03e1[_0x4d3d('0x35')]=_['keys'](_0x4a7e58[_0x4d3d('0x35')]);_0x4d03e1[_0x4d3d('0x36')]=_['intersection'](_0x4d03e1[_0x4d3d('0x37')],_0x4d03e1[_0x4d3d('0x35')]);_0x5840a5[_0x4d3d('0x38')]=_[_0x4d3d('0x39')](_0x4d03e1[_0x4d3d('0x37')],qs['fields'](_0x4a7e58[_0x4d3d('0x35')][_0x4d3d('0x3a')]));_0x5840a5['attributes']=_0x5840a5['attributes']['length']?_0x5840a5[_0x4d3d('0x38')]:_0x4d03e1[_0x4d3d('0x37')];if(!_0x4a7e58[_0x4d3d('0x35')][_0x4d3d('0x3b')]('nolimit')){_0x5840a5[_0x4d3d('0x22')]=qs[_0x4d3d('0x22')](_0x4a7e58[_0x4d3d('0x35')][_0x4d3d('0x22')]);_0x5840a5['offset']=qs[_0x4d3d('0x21')](_0x4a7e58[_0x4d3d('0x35')]['offset']);}_0x5840a5['order']=qs['sort'](_0x4a7e58[_0x4d3d('0x35')][_0x4d3d('0x3c')]);_0x5840a5['where']=qs[_0x4d3d('0x36')](_[_0x4d3d('0x3d')](_0x4a7e58[_0x4d3d('0x35')],_0x4d03e1[_0x4d3d('0x36')]),_0x82dad9);if(_0x4a7e58[_0x4d3d('0x35')]['filter']){_0x5840a5[_0x4d3d('0x3e')]=_[_0x4d3d('0x3f')](_0x5840a5['where'],{'$or':_[_0x4d3d('0x31')](_0x82dad9,function(_0x51e0e9){if(_0x51e0e9[_0x4d3d('0x33')]!==_0x4d3d('0x40')){var _0x51feff={};_0x51feff[_0x51e0e9[_0x4d3d('0x2e')]]={'$like':'%'+_0x4a7e58['query']['filter']+'%'};return _0x51feff;}})});}_0x5840a5=_[_0x4d3d('0x3f')]({},_0x5840a5,_0x4a7e58[_0x4d3d('0x41')]);var _0x43eb3d={'where':_0x5840a5[_0x4d3d('0x3e')]};return db['Sound'][_0x4d3d('0x20')](_0x43eb3d)['then'](function(_0x296213){_0x312bde['count']=_0x296213;if(_0x4a7e58[_0x4d3d('0x35')][_0x4d3d('0x42')]){_0x5840a5[_0x4d3d('0x43')]=[{'all':!![]}];}return db[_0x4d3d('0x32')][_0x4d3d('0x44')](_0x5840a5);})[_0x4d3d('0x28')](function(_0x83676b){_0x312bde[_0x4d3d('0x45')]=_0x83676b;return _0x312bde;})[_0x4d3d('0x28')](respondWithFilteredResult(_0x5f31b0,_0x5840a5))['catch'](handleError(_0x5f31b0,null));};exports[_0x4d3d('0x46')]=function(_0x5494a4,_0x2f16be){var _0x197645={'raw':!![],'where':{'id':_0x5494a4[_0x4d3d('0x47')]['id']}},_0x3cb53f={};_0x3cb53f[_0x4d3d('0x37')]=_[_0x4d3d('0x48')](db[_0x4d3d('0x32')]['rawAttributes']);_0x3cb53f[_0x4d3d('0x35')]=_['keys'](_0x5494a4[_0x4d3d('0x35')]);_0x3cb53f[_0x4d3d('0x36')]=_[_0x4d3d('0x39')](_0x3cb53f[_0x4d3d('0x37')],_0x3cb53f[_0x4d3d('0x35')]);_0x197645[_0x4d3d('0x38')]=_[_0x4d3d('0x39')](_0x3cb53f[_0x4d3d('0x37')],qs['fields'](_0x5494a4[_0x4d3d('0x35')][_0x4d3d('0x3a')]));_0x197645[_0x4d3d('0x38')]=_0x197645[_0x4d3d('0x38')]['length']?_0x197645[_0x4d3d('0x38')]:_0x3cb53f[_0x4d3d('0x37')];if(_0x5494a4['query'][_0x4d3d('0x42')]){_0x197645[_0x4d3d('0x43')]=[{'all':!![]}];}_0x197645=_['merge']({},_0x197645,_0x5494a4['options']);return db[_0x4d3d('0x32')][_0x4d3d('0x49')](_0x197645)[_0x4d3d('0x28')](handleEntityNotFound(_0x2f16be,null))[_0x4d3d('0x28')](respondWithResult(_0x2f16be,null))[_0x4d3d('0x4a')](handleError(_0x2f16be,null));};exports[_0x4d3d('0x4b')]=function(_0x49df9f,_0x5cd37c,_0x512cfe){return db[_0x4d3d('0x32')][_0x4d3d('0x49')]({'where':{'id':_0x49df9f[_0x4d3d('0x47')]['id']},'attributes':['name',_0x4d3d('0x4c'),'converted_format'],'raw':!![]})[_0x4d3d('0x28')](handleEntityNotFound(_0x5cd37c,null))[_0x4d3d('0x28')](function(_0xe525cd){if(_0xe525cd){if(!fs[_0x4d3d('0x4d')](path[_0x4d3d('0x4e')](config[_0x4d3d('0x4f')],'server/files/sounds/converted',_0xe525cd['save_name']+'.'+_0xe525cd[_0x4d3d('0x50')]))){throw new db[(_0x4d3d('0x51'))][(_0x4d3d('0x52'))]('Sound\x20not\x20found');}return _0x5cd37c[_0x4d3d('0x4b')](path['join'](config[_0x4d3d('0x4f')],_0x4d3d('0x53'),util[_0x4d3d('0x54')]('%s.%s',_0xe525cd[_0x4d3d('0x4c')],_0xe525cd[_0x4d3d('0x50')])),util[_0x4d3d('0x54')](_0x4d3d('0x55'),_0xe525cd[_0x4d3d('0x2e')],_0xe525cd['converted_format']));}return null;})[_0x4d3d('0x4a')](handleError(_0x5cd37c,null));};exports[_0x4d3d('0x56')]=function(_0x353941,_0x3c9d04,_0x56426c){var _0x2e2c2f={'name':path[_0x4d3d('0x57')](_0x353941[_0x4d3d('0x58')][_0x4d3d('0x59')],path[_0x4d3d('0x5a')](_0x353941[_0x4d3d('0x58')][_0x4d3d('0x59')])),'save_name':path[_0x4d3d('0x57')](_0x353941[_0x4d3d('0x58')][_0x4d3d('0x5b')],path[_0x4d3d('0x5a')](_0x353941[_0x4d3d('0x58')][_0x4d3d('0x5b')])),'original_format':path[_0x4d3d('0x5a')](_0x353941[_0x4d3d('0x58')]['originalname'])[_0x4d3d('0x5c')](0x1),'converted_format':_0x4d3d('0x5d')};var _0x596091=path[_0x4d3d('0x4e')](config[_0x4d3d('0x4f')],_0x4d3d('0x5e'),_0x353941[_0x4d3d('0x58')]['filename']);var _0x5ec25c=path['join'](config['root'],_0x4d3d('0x53'),util[_0x4d3d('0x54')](_0x4d3d('0x55'),path[_0x4d3d('0x57')](_0x353941['file'][_0x4d3d('0x5b')],path['extname'](_0x353941[_0x4d3d('0x58')][_0x4d3d('0x5b')])),_0x2e2c2f[_0x4d3d('0x50')]));logger[_0x4d3d('0x5f')](_0x4d3d('0x60'),_0x596091);logger[_0x4d3d('0x5f')](_0x4d3d('0x61'),_0x5ec25c);try{fs['chmodSync'](_0x596091,parseInt(_0x4d3d('0x62'),0x8));var _0x39abe9=sox[_0x4d3d('0x63')](_0x596091,_0x5ec25c,{'sampleRate':0x1f40,'format':_0x4d3d('0x5d'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x39abe9['on'](_0x4d3d('0x2c'),function(_0x141a01){fs[_0x4d3d('0x64')](_0x596091);_0x3c9d04['status'](0x1f4)['send'](_0x141a01);});_0x39abe9['on'](_0x4d3d('0x65'),function(_0x114bf1){_0x2e2c2f[_0x4d3d('0x66')]=isNaN(_0x114bf1[_0x4d3d('0x67')])?null:_0x114bf1[_0x4d3d('0x67')]*0x3e8;_0x2e2c2f[_0x4d3d('0x68')]=isNaN(_0x114bf1[_0x4d3d('0x69')])?null:_0x114bf1[_0x4d3d('0x69')];_0x2e2c2f[_0x4d3d('0x6a')]=isNaN(_0x114bf1['channelCount'])?null:_0x114bf1[_0x4d3d('0x6b')];_0x2e2c2f[_0x4d3d('0x6c')]=isNaN(_0x114bf1[_0x4d3d('0x6d')])?null:_0x114bf1['bitRate'];_0x2e2c2f[_0x4d3d('0x6e')]=isNaN(_0x114bf1[_0x4d3d('0x6f')])?null:_0x114bf1['sampleRate'];});_0x39abe9['on'](_0x4d3d('0x70'),function(_0xac6eb){_0x2e2c2f['converted_duration']=isNaN(_0xac6eb[_0x4d3d('0x67')])?null:_0xac6eb[_0x4d3d('0x67')]*0x3e8;_0x2e2c2f[_0x4d3d('0x71')]=isNaN(_0xac6eb[_0x4d3d('0x69')])?null:_0xac6eb['sampleCount'];_0x2e2c2f[_0x4d3d('0x72')]=isNaN(_0xac6eb[_0x4d3d('0x6b')])?null:_0xac6eb['channelCount'];_0x2e2c2f['converted_bitRate']=isNaN(_0xac6eb[_0x4d3d('0x6d')])?null:_0xac6eb[_0x4d3d('0x6d')];_0x2e2c2f[_0x4d3d('0x73')]=isNaN(_0xac6eb[_0x4d3d('0x6f')])?null:_0xac6eb[_0x4d3d('0x6f')];});_0x39abe9['on']('end',function(){fs[_0x4d3d('0x74')](_0x5ec25c,parseInt(_0x4d3d('0x62'),0x8));return db['Sound'][_0x4d3d('0x56')](_0x2e2c2f)[_0x4d3d('0x28')](function(_0x3c25c9){var _0x1ad9c9={'role':_0x353941[_0x4d3d('0x75')][_0x4d3d('0x76')],'userProfileId':_0x353941['body'][_0x4d3d('0x77')]};if(!_0x1ad9c9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1ad9c9[_0x4d3d('0x76')]===_0x4d3d('0x78')){var _0x3bc977=_0x3c25c9[_0x4d3d('0x79')]({'plain':!![]});return db[_0x4d3d('0x7a')][_0x4d3d('0x49')]({'where':{'name':_0x4d3d('0x2a'),'userProfileId':_0x1ad9c9[_0x4d3d('0x77')]},'raw':!![]})[_0x4d3d('0x28')](function(_0x2e618c){if(_0x2e618c&&_0x2e618c['autoAssociation']===0x0){return db[_0x4d3d('0x2b')][_0x4d3d('0x56')]({'name':_0x3bc977[_0x4d3d('0x2e')],'resourceId':_0x3bc977['id'],'type':_0x2e618c[_0x4d3d('0x2e')],'sectionId':_0x2e618c['id']},{})['then'](function(){return _0x3c25c9;});}else{return _0x3c25c9;}})['catch'](function(_0x5f3498){logger[_0x4d3d('0x2c')](_0x4d3d('0x7b'),_0x5f3498);throw _0x5f3498;});}return _0x3c25c9;})[_0x4d3d('0x28')](respondWithResult(_0x3c9d04,null))['catch'](handleError(_0x3c9d04,null));});_0x39abe9[_0x4d3d('0x7c')]();}catch(_0x1a7e8b){_0x3c9d04[_0x4d3d('0x1d')](0x1f4)['send'](_0x1a7e8b);}};exports[_0x4d3d('0x27')]=function(_0x21c928,_0x4f9385,_0x39155c){return db[_0x4d3d('0x32')]['find']({'where':{'id':_0x21c928[_0x4d3d('0x47')]['id']}})[_0x4d3d('0x28')](handleEntityNotFound(_0x4f9385,null))['then'](saveUpdates(_[_0x4d3d('0x3d')](_0x21c928[_0x4d3d('0x75')],['name','description']),null))[_0x4d3d('0x28')](respondWithResult(_0x4f9385,null))[_0x4d3d('0x4a')](handleError(_0x4f9385,null));};exports[_0x4d3d('0x7d')]=function(_0x1025e0,_0x210e93,_0x496efd){return db[_0x4d3d('0x32')]['find']({'where':{'id':_0x1025e0['params']['id']}})[_0x4d3d('0x28')](function(_0x4e6adb){if(_0x4e6adb){return _0x4e6adb[_0x4d3d('0x29')]();}})['then'](function(_0x523719){var _0x143489=path[_0x4d3d('0x4e')](config['root'],_0x4d3d('0x5e'),util[_0x4d3d('0x54')](_0x4d3d('0x55'),_0x523719['save_name'],_0x523719[_0x4d3d('0x7e')]));var _0x4eae39=path['join'](config[_0x4d3d('0x4f')],'server/files/sounds/converted',util[_0x4d3d('0x54')](_0x4d3d('0x55'),_0x523719[_0x4d3d('0x4c')],_0x523719[_0x4d3d('0x50')]));fs[_0x4d3d('0x64')](_0x143489);fs[_0x4d3d('0x64')](_0x4eae39);return _0x523719;})['then'](function(_0x2436ca){if(_0x2436ca){return _0x210e93['status'](0xcc)['end']();}})[_0x4d3d('0x28')](handleEntityNotFound(_0x210e93,null))['catch'](handleError(_0x210e93,null));};