bce9392f7ff4f714fa67a8b6c944d1946153ec78
[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 _0x20ec=['jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','update','then','destroy','get','Sounds','error','name','index','rawAttributes','fieldName','key','map','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','sort','where','pick','VIRTUAL','merge','options','Sound','includeAll','findAll','params','include','catch','download','find','converted_format','join','server/files/sounds/converted','Sequelize','root','%s.%s','save_name','create','originalname','file','basename','filename','extname','substring','wav','server/files/sounds/original','format','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','unlinkSync','send','src','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_sampleRate','chmodSync','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','delete','original_format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','fs-extra','lodash','squel','crypto'];(function(_0x267382,_0x101697){var _0x342ec1=function(_0x50b9c1){while(--_0x50b9c1){_0x267382['push'](_0x267382['shift']());}};_0x342ec1(++_0x101697);}(_0x20ec,0x159));var _0xc20e=function(_0x239632,_0x472e6a){_0x239632=_0x239632-0x0;var _0x2fad25=_0x20ec[_0x239632];return _0x2fad25;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc20e('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc20e('0x1'));var rp=require(_0xc20e('0x2'));var moment=require(_0xc20e('0x3'));var BPromise=require(_0xc20e('0x4'));var Mustache=require('mustache');var util=require(_0xc20e('0x5'));var path=require(_0xc20e('0x6'));var sox=require(_0xc20e('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc20e('0x8'));var _=require(_0xc20e('0x9'));var squel=require(_0xc20e('0xa'));var crypto=require(_0xc20e('0xb'));var jsforce=require(_0xc20e('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xc20e('0xd'));var querystring=require(_0xc20e('0xe'));var Papa=require(_0xc20e('0xf'));var Redis=require(_0xc20e('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xc20e('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc20e('0x12'));var logger=require('../../config/logger')(_0xc20e('0x13'));var utils=require(_0xc20e('0x14'));var config=require(_0xc20e('0x15'));var licenseUtil=require(_0xc20e('0x16'));var db=require(_0xc20e('0x17'))['db'];function respondWithStatusCode(_0x4910d4,_0x4892fb){_0x4892fb=_0x4892fb||0xcc;return function(_0x251250){if(_0x251250){return _0x4910d4[_0xc20e('0x18')](_0x4892fb);}return _0x4910d4[_0xc20e('0x19')](_0x4892fb)[_0xc20e('0x1a')]();};}function respondWithResult(_0x39ed2d,_0x4e62ed){_0x4e62ed=_0x4e62ed||0xc8;return function(_0xebe083){if(_0xebe083){return _0x39ed2d['status'](_0x4e62ed)[_0xc20e('0x1b')](_0xebe083);}};}function respondWithFilteredResult(_0x1012ff,_0x1f2fce){return function(_0x418b30){if(_0x418b30){var _0x394e1f=typeof _0x1f2fce[_0xc20e('0x1c')]===_0xc20e('0x1d')&&typeof _0x1f2fce[_0xc20e('0x1e')]===_0xc20e('0x1d');var _0x2f73b3=_0x418b30[_0xc20e('0x1f')];var _0x40df1f=_0x394e1f?0x0:_0x1f2fce[_0xc20e('0x1c')];var _0x5bfa8f=_0x394e1f?_0x418b30[_0xc20e('0x1f')]:_0x1f2fce[_0xc20e('0x1c')]+_0x1f2fce[_0xc20e('0x1e')];var _0x3621d4;if(_0x5bfa8f>=_0x2f73b3){_0x5bfa8f=_0x2f73b3;_0x3621d4=0xc8;}else{_0x3621d4=0xce;}_0x1012ff['status'](_0x3621d4);return _0x1012ff['set'](_0xc20e('0x20'),_0x40df1f+'-'+_0x5bfa8f+'/'+_0x2f73b3)[_0xc20e('0x1b')](_0x418b30);}return null;};}function patchUpdates(_0x4b541e){return function(_0xe8e6e3){try{jsonpatch['apply'](_0xe8e6e3,_0x4b541e,!![]);}catch(_0x319f79){return BPromise[_0xc20e('0x21')](_0x319f79);}return _0xe8e6e3[_0xc20e('0x22')]();};}function saveUpdates(_0x3b1276,_0x1976d5){return function(_0x3e27af){if(_0x3e27af){return _0x3e27af[_0xc20e('0x23')](_0x3b1276)[_0xc20e('0x24')](function(_0x25aa25){return _0x25aa25;});}return null;};}function removeEntity(_0x5d50cb,_0x199c7b){return function(_0x10fa00){if(_0x10fa00){return _0x10fa00[_0xc20e('0x25')]()[_0xc20e('0x24')](function(){var _0x2aa25a=_0x10fa00[_0xc20e('0x26')]({'plain':!![]});var _0x46b370=_0xc20e('0x27');return db['UserProfileResource'][_0xc20e('0x25')]({'where':{'type':_0x46b370,'resourceId':_0x2aa25a['id']}})[_0xc20e('0x24')](function(){return _0x10fa00;});})[_0xc20e('0x24')](function(){_0x5d50cb['status'](0xcc)[_0xc20e('0x1a')]();});}};}function handleEntityNotFound(_0x2b3be1,_0x214e04){return function(_0x57fa9f){if(!_0x57fa9f){_0x2b3be1[_0xc20e('0x18')](0x194);}return _0x57fa9f;};}function handleError(_0x558328,_0x4a23b2){_0x4a23b2=_0x4a23b2||0x1f4;return function(_0x5f39e3){logger[_0xc20e('0x28')](_0x5f39e3['stack']);if(_0x5f39e3['name']){delete _0x5f39e3[_0xc20e('0x29')];}_0x558328[_0xc20e('0x19')](_0x4a23b2)['send'](_0x5f39e3);};}exports[_0xc20e('0x2a')]=function(_0x59e459,_0x2c3ce7){var _0x23ee34={},_0x1637ed={},_0x2facac={'count':0x0,'rows':[]};var _0x5c7389=_['map'](db['Sound'][_0xc20e('0x2b')],function(_0x21864b){return{'name':_0x21864b[_0xc20e('0x2c')],'type':_0x21864b['type'][_0xc20e('0x2d')]};});_0x1637ed['model']=_[_0xc20e('0x2e')](_0x5c7389,'name');_0x1637ed[_0xc20e('0x2f')]=_[_0xc20e('0x30')](_0x59e459[_0xc20e('0x2f')]);_0x1637ed[_0xc20e('0x31')]=_[_0xc20e('0x32')](_0x1637ed[_0xc20e('0x33')],_0x1637ed[_0xc20e('0x2f')]);_0x23ee34['attributes']=_[_0xc20e('0x32')](_0x1637ed['model'],qs[_0xc20e('0x34')](_0x59e459[_0xc20e('0x2f')][_0xc20e('0x34')]));_0x23ee34[_0xc20e('0x35')]=_0x23ee34[_0xc20e('0x35')]['length']?_0x23ee34[_0xc20e('0x35')]:_0x1637ed[_0xc20e('0x33')];if(!_0x59e459[_0xc20e('0x2f')][_0xc20e('0x36')]('nolimit')){_0x23ee34['limit']=qs['limit'](_0x59e459['query'][_0xc20e('0x1e')]);_0x23ee34[_0xc20e('0x1c')]=qs[_0xc20e('0x1c')](_0x59e459[_0xc20e('0x2f')][_0xc20e('0x1c')]);}_0x23ee34['order']=qs[_0xc20e('0x37')](_0x59e459[_0xc20e('0x2f')]['sort']);_0x23ee34[_0xc20e('0x38')]=qs['filters'](_[_0xc20e('0x39')](_0x59e459[_0xc20e('0x2f')],_0x1637ed[_0xc20e('0x31')]),_0x5c7389);if(_0x59e459['query']['filter']){_0x23ee34[_0xc20e('0x38')]=_['merge'](_0x23ee34[_0xc20e('0x38')],{'$or':_[_0xc20e('0x2e')](_0x5c7389,function(_0x248118){if(_0x248118['type']!==_0xc20e('0x3a')){var _0xb241e9={};_0xb241e9[_0x248118[_0xc20e('0x29')]]={'$like':'%'+_0x59e459[_0xc20e('0x2f')]['filter']+'%'};return _0xb241e9;}})});}_0x23ee34=_[_0xc20e('0x3b')]({},_0x23ee34,_0x59e459[_0xc20e('0x3c')]);var _0x55306b={'where':_0x23ee34[_0xc20e('0x38')]};return db[_0xc20e('0x3d')][_0xc20e('0x1f')](_0x55306b)[_0xc20e('0x24')](function(_0x27ddec){_0x2facac[_0xc20e('0x1f')]=_0x27ddec;if(_0x59e459[_0xc20e('0x2f')][_0xc20e('0x3e')]){_0x23ee34['include']=[{'all':!![]}];}return db['Sound'][_0xc20e('0x3f')](_0x23ee34);})[_0xc20e('0x24')](function(_0x9e44c3){_0x2facac['rows']=_0x9e44c3;return _0x2facac;})[_0xc20e('0x24')](respondWithFilteredResult(_0x2c3ce7,_0x23ee34))['catch'](handleError(_0x2c3ce7,null));};exports['show']=function(_0x1b0536,_0x5c129d){var _0xd63b35={'raw':!![],'where':{'id':_0x1b0536[_0xc20e('0x40')]['id']}},_0x58ada7={};_0x58ada7[_0xc20e('0x33')]=_[_0xc20e('0x30')](db[_0xc20e('0x3d')][_0xc20e('0x2b')]);_0x58ada7[_0xc20e('0x2f')]=_[_0xc20e('0x30')](_0x1b0536[_0xc20e('0x2f')]);_0x58ada7[_0xc20e('0x31')]=_[_0xc20e('0x32')](_0x58ada7['model'],_0x58ada7[_0xc20e('0x2f')]);_0xd63b35[_0xc20e('0x35')]=_['intersection'](_0x58ada7[_0xc20e('0x33')],qs[_0xc20e('0x34')](_0x1b0536[_0xc20e('0x2f')]['fields']));_0xd63b35[_0xc20e('0x35')]=_0xd63b35[_0xc20e('0x35')]['length']?_0xd63b35[_0xc20e('0x35')]:_0x58ada7[_0xc20e('0x33')];if(_0x1b0536['query'][_0xc20e('0x3e')]){_0xd63b35[_0xc20e('0x41')]=[{'all':!![]}];}_0xd63b35=_[_0xc20e('0x3b')]({},_0xd63b35,_0x1b0536[_0xc20e('0x3c')]);return db[_0xc20e('0x3d')]['find'](_0xd63b35)[_0xc20e('0x24')](handleEntityNotFound(_0x5c129d,null))[_0xc20e('0x24')](respondWithResult(_0x5c129d,null))[_0xc20e('0x42')](handleError(_0x5c129d,null));};exports[_0xc20e('0x43')]=function(_0x495b38,_0x548a65,_0x4a385e){return db[_0xc20e('0x3d')][_0xc20e('0x44')]({'where':{'id':_0x495b38[_0xc20e('0x40')]['id']},'attributes':['name','save_name',_0xc20e('0x45')],'raw':!![]})['then'](handleEntityNotFound(_0x548a65,null))[_0xc20e('0x24')](function(_0x2f74ca){if(_0x2f74ca){if(!fs['existsSync'](path[_0xc20e('0x46')](config['root'],_0xc20e('0x47'),_0x2f74ca['save_name']+'.'+_0x2f74ca[_0xc20e('0x45')]))){throw new db[(_0xc20e('0x48'))]['ValidationError']('Sound\x20not\x20found');}return _0x548a65[_0xc20e('0x43')](path[_0xc20e('0x46')](config[_0xc20e('0x49')],'server/files/sounds/converted',util['format'](_0xc20e('0x4a'),_0x2f74ca[_0xc20e('0x4b')],_0x2f74ca[_0xc20e('0x45')])),util['format'](_0xc20e('0x4a'),_0x2f74ca[_0xc20e('0x29')],_0x2f74ca[_0xc20e('0x45')]));}return null;})[_0xc20e('0x42')](handleError(_0x548a65,null));};exports[_0xc20e('0x4c')]=function(_0x56ba59,_0x3a10e2,_0x480d36){var _0xaa4ade={'name':path['basename'](_0x56ba59['file'][_0xc20e('0x4d')],path['extname'](_0x56ba59[_0xc20e('0x4e')][_0xc20e('0x4d')])),'save_name':path[_0xc20e('0x4f')](_0x56ba59[_0xc20e('0x4e')][_0xc20e('0x50')],path[_0xc20e('0x51')](_0x56ba59[_0xc20e('0x4e')][_0xc20e('0x50')])),'original_format':path['extname'](_0x56ba59[_0xc20e('0x4e')]['originalname'])[_0xc20e('0x52')](0x1),'converted_format':_0xc20e('0x53')};var _0x3d35bc=path[_0xc20e('0x46')](config[_0xc20e('0x49')],_0xc20e('0x54'),_0x56ba59[_0xc20e('0x4e')]['filename']);var _0x401b80=path[_0xc20e('0x46')](config['root'],'server/files/sounds/converted',util[_0xc20e('0x55')](_0xc20e('0x4a'),path[_0xc20e('0x4f')](_0x56ba59[_0xc20e('0x4e')]['filename'],path['extname'](_0x56ba59[_0xc20e('0x4e')][_0xc20e('0x50')])),_0xaa4ade[_0xc20e('0x45')]));logger[_0xc20e('0x56')](_0xc20e('0x57'),_0x3d35bc);logger[_0xc20e('0x56')](_0xc20e('0x58'),_0x401b80);try{fs['chmodSync'](_0x3d35bc,parseInt(_0xc20e('0x59'),0x8));var _0x319706=sox['transcode'](_0x3d35bc,_0x401b80,{'sampleRate':0x1f40,'format':_0xc20e('0x53'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x319706['on']('error',function(_0x41902a){fs[_0xc20e('0x5a')](_0x3d35bc);_0x3a10e2[_0xc20e('0x19')](0x1f4)[_0xc20e('0x5b')](_0x41902a);});_0x319706['on'](_0xc20e('0x5c'),function(_0x5e6182){_0xaa4ade['original_duration']=isNaN(_0x5e6182[_0xc20e('0x5d')])?null:_0x5e6182[_0xc20e('0x5d')]*0x3e8;_0xaa4ade[_0xc20e('0x5e')]=isNaN(_0x5e6182[_0xc20e('0x5f')])?null:_0x5e6182['sampleCount'];_0xaa4ade[_0xc20e('0x60')]=isNaN(_0x5e6182[_0xc20e('0x61')])?null:_0x5e6182[_0xc20e('0x61')];_0xaa4ade[_0xc20e('0x62')]=isNaN(_0x5e6182['bitRate'])?null:_0x5e6182[_0xc20e('0x63')];_0xaa4ade[_0xc20e('0x64')]=isNaN(_0x5e6182[_0xc20e('0x65')])?null:_0x5e6182[_0xc20e('0x65')];});_0x319706['on'](_0xc20e('0x66'),function(_0x18d96f){_0xaa4ade[_0xc20e('0x67')]=isNaN(_0x18d96f[_0xc20e('0x5d')])?null:_0x18d96f[_0xc20e('0x5d')]*0x3e8;_0xaa4ade[_0xc20e('0x68')]=isNaN(_0x18d96f['sampleCount'])?null:_0x18d96f[_0xc20e('0x5f')];_0xaa4ade[_0xc20e('0x69')]=isNaN(_0x18d96f[_0xc20e('0x61')])?null:_0x18d96f[_0xc20e('0x61')];_0xaa4ade['converted_bitRate']=isNaN(_0x18d96f[_0xc20e('0x63')])?null:_0x18d96f[_0xc20e('0x63')];_0xaa4ade[_0xc20e('0x6a')]=isNaN(_0x18d96f[_0xc20e('0x65')])?null:_0x18d96f[_0xc20e('0x65')];});_0x319706['on'](_0xc20e('0x1a'),function(){fs[_0xc20e('0x6b')](_0x401b80,parseInt(_0xc20e('0x59'),0x8));return db['Sound'][_0xc20e('0x4c')](_0xaa4ade)['then'](function(_0x3e03d8){var _0x28699a={'role':_0x56ba59[_0xc20e('0x6c')][_0xc20e('0x6d')],'userProfileId':_0x56ba59['body'][_0xc20e('0x6e')]};if(!_0x28699a)throw new Error(_0xc20e('0x6f'));if(_0x28699a['role']===_0xc20e('0x70')){var _0x5b28e6=_0x3e03d8[_0xc20e('0x26')]({'plain':!![]});return db['UserProfileSection'][_0xc20e('0x44')]({'where':{'name':_0xc20e('0x27'),'userProfileId':_0x28699a[_0xc20e('0x6e')]},'raw':!![]})[_0xc20e('0x24')](function(_0x55ede5){if(_0x55ede5&&_0x55ede5[_0xc20e('0x71')]===0x0){return db[_0xc20e('0x72')][_0xc20e('0x4c')]({'name':_0x5b28e6[_0xc20e('0x29')],'resourceId':_0x5b28e6['id'],'type':_0x55ede5[_0xc20e('0x29')],'sectionId':_0x55ede5['id']},{})[_0xc20e('0x24')](function(){return _0x3e03d8;});}else{return _0x3e03d8;}})[_0xc20e('0x42')](function(_0x1b0c73){logger[_0xc20e('0x28')](_0xc20e('0x73'),_0x1b0c73);throw _0x1b0c73;});}return _0x3e03d8;})[_0xc20e('0x24')](respondWithResult(_0x3a10e2,null))[_0xc20e('0x42')](handleError(_0x3a10e2,null));});_0x319706[_0xc20e('0x74')]();}catch(_0x596c69){_0x3a10e2['status'](0x1f4)['send'](_0x596c69);}};exports['update']=function(_0x391a3b,_0x1a7cda,_0x4a214c){return db[_0xc20e('0x3d')][_0xc20e('0x44')]({'where':{'id':_0x391a3b[_0xc20e('0x40')]['id']}})[_0xc20e('0x24')](handleEntityNotFound(_0x1a7cda,null))[_0xc20e('0x24')](saveUpdates(_[_0xc20e('0x39')](_0x391a3b['body'],[_0xc20e('0x29'),'description']),null))[_0xc20e('0x24')](respondWithResult(_0x1a7cda,null))[_0xc20e('0x42')](handleError(_0x1a7cda,null));};exports[_0xc20e('0x75')]=function(_0x365e59,_0x1dc6c5,_0x46c755){return db[_0xc20e('0x3d')][_0xc20e('0x44')]({'where':{'id':_0x365e59[_0xc20e('0x40')]['id']}})[_0xc20e('0x24')](function(_0x415b7b){if(_0x415b7b){return _0x415b7b[_0xc20e('0x25')]();}})[_0xc20e('0x24')](function(_0x20c734){var _0x2ea2d3=path[_0xc20e('0x46')](config[_0xc20e('0x49')],'server/files/sounds/original',util[_0xc20e('0x55')](_0xc20e('0x4a'),_0x20c734[_0xc20e('0x4b')],_0x20c734[_0xc20e('0x76')]));var _0x16c6ff=path[_0xc20e('0x46')](config['root'],_0xc20e('0x47'),util[_0xc20e('0x55')](_0xc20e('0x4a'),_0x20c734[_0xc20e('0x4b')],_0x20c734[_0xc20e('0x45')]));fs[_0xc20e('0x5a')](_0x2ea2d3);fs[_0xc20e('0x5a')](_0x16c6ff);return _0x20c734;})[_0xc20e('0x24')](function(_0x49f0ec){if(_0x49f0ec){return _0x1dc6c5[_0xc20e('0x19')](0xcc)['end']();}})[_0xc20e('0x24')](handleEntityNotFound(_0x1dc6c5,null))['catch'](handleError(_0x1dc6c5,null));};