5c83f7a21d8289e4fcb67050983dd25fdd644627
[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 _0x3193=['status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','get','Sounds','UserProfileResource','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','Sound','includeAll','show','params','include','find','catch','save_name','converted_format','root','server/files/sounds/converted','ValidationError','Sound\x20not\x20found','download','join','format','%s.%s','create','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','Sound\x20upload\x20filepath:\x20%s','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','send','src','original_duration','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','delete','original_format','unlinkSync','eml-format','rimraf','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end'];(function(_0x24d41f,_0x343f04){var _0x269356=function(_0x4d2bf4){while(--_0x4d2bf4){_0x24d41f['push'](_0x24d41f['shift']());}};_0x269356(++_0x343f04);}(_0x3193,0x161));var _0x3319=function(_0xf89c16,_0x3331a3){_0xf89c16=_0xf89c16-0x0;var _0x3ca534=_0x3193[_0xf89c16];return _0x3ca534;};'use strict';var emlformat=require(_0x3319('0x0'));var rimraf=require(_0x3319('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3319('0x2'));var moment=require('moment');var BPromise=require(_0x3319('0x3'));var Mustache=require('mustache');var util=require(_0x3319('0x4'));var path=require(_0x3319('0x5'));var sox=require(_0x3319('0x6'));var csv=require(_0x3319('0x7'));var ejs=require(_0x3319('0x8'));var fs=require('fs');var fs_extra=require(_0x3319('0x9'));var _=require(_0x3319('0xa'));var squel=require('squel');var crypto=require(_0x3319('0xb'));var jsforce=require(_0x3319('0xc'));var deskjs=require(_0x3319('0xd'));var toCsv=require(_0x3319('0x7'));var querystring=require('querystring');var Papa=require(_0x3319('0xe'));var Redis=require(_0x3319('0xf'));var authService=require(_0x3319('0x10'));var qs=require(_0x3319('0x11'));var as=require(_0x3319('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3319('0x13'))(_0x3319('0x14'));var utils=require(_0x3319('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3319('0x16'))['db'];function respondWithStatusCode(_0x38c3cc,_0x164e8a){_0x164e8a=_0x164e8a||0xcc;return function(_0x57ccba){if(_0x57ccba){return _0x38c3cc[_0x3319('0x17')](_0x164e8a);}return _0x38c3cc['status'](_0x164e8a)[_0x3319('0x18')]();};}function respondWithResult(_0x2c448e,_0x37c628){_0x37c628=_0x37c628||0xc8;return function(_0x171473){if(_0x171473){return _0x2c448e[_0x3319('0x19')](_0x37c628)[_0x3319('0x1a')](_0x171473);}};}function respondWithFilteredResult(_0x42c805,_0x22ff1b){return function(_0x2b72bd){if(_0x2b72bd){var _0x53439f=typeof _0x22ff1b[_0x3319('0x1b')]===_0x3319('0x1c')&&typeof _0x22ff1b[_0x3319('0x1d')]===_0x3319('0x1c');var _0x4370f2=_0x2b72bd[_0x3319('0x1e')];var _0x18c2f4=_0x53439f?0x0:_0x22ff1b[_0x3319('0x1b')];var _0x9a3e34=_0x53439f?_0x2b72bd[_0x3319('0x1e')]:_0x22ff1b[_0x3319('0x1b')]+_0x22ff1b[_0x3319('0x1d')];var _0x41835d;if(_0x9a3e34>=_0x4370f2){_0x9a3e34=_0x4370f2;_0x41835d=0xc8;}else{_0x41835d=0xce;}_0x42c805[_0x3319('0x19')](_0x41835d);return _0x42c805[_0x3319('0x1f')](_0x3319('0x20'),_0x18c2f4+'-'+_0x9a3e34+'/'+_0x4370f2)[_0x3319('0x1a')](_0x2b72bd);}return null;};}function patchUpdates(_0x416f3c){return function(_0x415099){try{jsonpatch[_0x3319('0x21')](_0x415099,_0x416f3c,!![]);}catch(_0x29ec3f){return BPromise[_0x3319('0x22')](_0x29ec3f);}return _0x415099['save']();};}function saveUpdates(_0x1cfb63,_0x4d2ad1){return function(_0xf516af){if(_0xf516af){return _0xf516af[_0x3319('0x23')](_0x1cfb63)[_0x3319('0x24')](function(_0x225c1d){return _0x225c1d;});}return null;};}function removeEntity(_0x1aa9c9,_0x33742f){return function(_0x14e6e9){if(_0x14e6e9){return _0x14e6e9[_0x3319('0x25')]()[_0x3319('0x24')](function(){var _0x1e6604=_0x14e6e9[_0x3319('0x26')]({'plain':!![]});var _0x4ffdcc=_0x3319('0x27');return db[_0x3319('0x28')]['destroy']({'where':{'type':_0x4ffdcc,'resourceId':_0x1e6604['id']}})[_0x3319('0x24')](function(){return _0x14e6e9;});})[_0x3319('0x24')](function(){_0x1aa9c9[_0x3319('0x19')](0xcc)[_0x3319('0x18')]();});}};}function handleEntityNotFound(_0x167e3e,_0x485c03){return function(_0x43cead){if(!_0x43cead){_0x167e3e[_0x3319('0x17')](0x194);}return _0x43cead;};}function handleError(_0x5cfb78,_0xb75d05){_0xb75d05=_0xb75d05||0x1f4;return function(_0x108ddf){logger[_0x3319('0x29')](_0x108ddf[_0x3319('0x2a')]);if(_0x108ddf['name']){delete _0x108ddf[_0x3319('0x2b')];}_0x5cfb78[_0x3319('0x19')](_0xb75d05)['send'](_0x108ddf);};}exports[_0x3319('0x2c')]=function(_0x2d2780,_0x1b9614){var _0x124f95={},_0x2609ef={},_0x52ed5b={'count':0x0,'rows':[]};var _0x461165=_[_0x3319('0x2d')](db['Sound'][_0x3319('0x2e')],function(_0x5179c5){return{'name':_0x5179c5[_0x3319('0x2f')],'type':_0x5179c5[_0x3319('0x30')][_0x3319('0x31')]};});_0x2609ef[_0x3319('0x32')]=_[_0x3319('0x2d')](_0x461165,_0x3319('0x2b'));_0x2609ef[_0x3319('0x33')]=_[_0x3319('0x34')](_0x2d2780['query']);_0x2609ef[_0x3319('0x35')]=_[_0x3319('0x36')](_0x2609ef[_0x3319('0x32')],_0x2609ef[_0x3319('0x33')]);_0x124f95[_0x3319('0x37')]=_[_0x3319('0x36')](_0x2609ef[_0x3319('0x32')],qs[_0x3319('0x38')](_0x2d2780['query'][_0x3319('0x38')]));_0x124f95['attributes']=_0x124f95['attributes'][_0x3319('0x39')]?_0x124f95['attributes']:_0x2609ef['model'];if(!_0x2d2780[_0x3319('0x33')][_0x3319('0x3a')]('nolimit')){_0x124f95[_0x3319('0x1d')]=qs[_0x3319('0x1d')](_0x2d2780['query']['limit']);_0x124f95['offset']=qs[_0x3319('0x1b')](_0x2d2780[_0x3319('0x33')]['offset']);}_0x124f95[_0x3319('0x3b')]=qs[_0x3319('0x3c')](_0x2d2780[_0x3319('0x33')][_0x3319('0x3c')]);_0x124f95[_0x3319('0x3d')]=qs['filters'](_[_0x3319('0x3e')](_0x2d2780[_0x3319('0x33')],_0x2609ef[_0x3319('0x35')]),_0x461165);if(_0x2d2780[_0x3319('0x33')][_0x3319('0x3f')]){_0x124f95[_0x3319('0x3d')]=_[_0x3319('0x40')](_0x124f95[_0x3319('0x3d')],{'$or':_[_0x3319('0x2d')](_0x461165,function(_0x2f327d){if(_0x2f327d[_0x3319('0x30')]!==_0x3319('0x41')){var _0x106b3f={};_0x106b3f[_0x2f327d[_0x3319('0x2b')]]={'$like':'%'+_0x2d2780[_0x3319('0x33')][_0x3319('0x3f')]+'%'};return _0x106b3f;}})});}_0x124f95=_[_0x3319('0x40')]({},_0x124f95,_0x2d2780[_0x3319('0x42')]);var _0x80835c={'where':_0x124f95[_0x3319('0x3d')]};return db[_0x3319('0x43')][_0x3319('0x1e')](_0x80835c)[_0x3319('0x24')](function(_0x3011b9){_0x52ed5b[_0x3319('0x1e')]=_0x3011b9;if(_0x2d2780[_0x3319('0x33')][_0x3319('0x44')]){_0x124f95['include']=[{'all':!![]}];}return db[_0x3319('0x43')]['findAll'](_0x124f95);})['then'](function(_0x5cb2ff){_0x52ed5b['rows']=_0x5cb2ff;return _0x52ed5b;})[_0x3319('0x24')](respondWithFilteredResult(_0x1b9614,_0x124f95))['catch'](handleError(_0x1b9614,null));};exports[_0x3319('0x45')]=function(_0x133bb5,_0x1de3b0){var _0x4f3e8a={'raw':!![],'where':{'id':_0x133bb5[_0x3319('0x46')]['id']}},_0x244bc={};_0x244bc['model']=_[_0x3319('0x34')](db['Sound'][_0x3319('0x2e')]);_0x244bc[_0x3319('0x33')]=_[_0x3319('0x34')](_0x133bb5['query']);_0x244bc['filters']=_[_0x3319('0x36')](_0x244bc[_0x3319('0x32')],_0x244bc[_0x3319('0x33')]);_0x4f3e8a[_0x3319('0x37')]=_[_0x3319('0x36')](_0x244bc[_0x3319('0x32')],qs[_0x3319('0x38')](_0x133bb5[_0x3319('0x33')][_0x3319('0x38')]));_0x4f3e8a[_0x3319('0x37')]=_0x4f3e8a['attributes'][_0x3319('0x39')]?_0x4f3e8a[_0x3319('0x37')]:_0x244bc[_0x3319('0x32')];if(_0x133bb5[_0x3319('0x33')][_0x3319('0x44')]){_0x4f3e8a[_0x3319('0x47')]=[{'all':!![]}];}_0x4f3e8a=_[_0x3319('0x40')]({},_0x4f3e8a,_0x133bb5[_0x3319('0x42')]);return db['Sound'][_0x3319('0x48')](_0x4f3e8a)['then'](handleEntityNotFound(_0x1de3b0,null))[_0x3319('0x24')](respondWithResult(_0x1de3b0,null))[_0x3319('0x49')](handleError(_0x1de3b0,null));};exports['download']=function(_0x76d651,_0x30932d,_0x3d8f8c){return db[_0x3319('0x43')][_0x3319('0x48')]({'where':{'id':_0x76d651[_0x3319('0x46')]['id']},'attributes':[_0x3319('0x2b'),_0x3319('0x4a'),_0x3319('0x4b')],'raw':!![]})['then'](handleEntityNotFound(_0x30932d,null))[_0x3319('0x24')](function(_0x4ed513){if(_0x4ed513){if(!fs['existsSync'](path['join'](config[_0x3319('0x4c')],_0x3319('0x4d'),_0x4ed513['save_name']+'.'+_0x4ed513[_0x3319('0x4b')]))){throw new db['Sequelize'][(_0x3319('0x4e'))](_0x3319('0x4f'));}return _0x30932d[_0x3319('0x50')](path[_0x3319('0x51')](config[_0x3319('0x4c')],_0x3319('0x4d'),util[_0x3319('0x52')](_0x3319('0x53'),_0x4ed513['save_name'],_0x4ed513[_0x3319('0x4b')])),util[_0x3319('0x52')](_0x3319('0x53'),_0x4ed513[_0x3319('0x2b')],_0x4ed513['converted_format']));}return null;})[_0x3319('0x49')](handleError(_0x30932d,null));};exports[_0x3319('0x54')]=function(_0x12def1,_0x2e5d51,_0x2bd703){var _0x118ee0={'name':path[_0x3319('0x55')](_0x12def1[_0x3319('0x56')][_0x3319('0x57')],path[_0x3319('0x58')](_0x12def1[_0x3319('0x56')][_0x3319('0x57')])),'save_name':path['basename'](_0x12def1['file'][_0x3319('0x59')],path[_0x3319('0x58')](_0x12def1[_0x3319('0x56')][_0x3319('0x59')])),'original_format':path['extname'](_0x12def1[_0x3319('0x56')][_0x3319('0x57')])[_0x3319('0x5a')](0x1),'converted_format':_0x3319('0x5b')};var _0x72b9b8=path[_0x3319('0x51')](config[_0x3319('0x4c')],_0x3319('0x5c'),_0x12def1[_0x3319('0x56')][_0x3319('0x59')]);var _0x4c18ad=path[_0x3319('0x51')](config['root'],_0x3319('0x4d'),util['format'](_0x3319('0x53'),path[_0x3319('0x55')](_0x12def1[_0x3319('0x56')][_0x3319('0x59')],path[_0x3319('0x58')](_0x12def1[_0x3319('0x56')][_0x3319('0x59')])),_0x118ee0['converted_format']));logger['info'](_0x3319('0x5d'),_0x72b9b8);logger[_0x3319('0x5e')](_0x3319('0x5f'),_0x4c18ad);try{fs[_0x3319('0x60')](_0x72b9b8,parseInt(_0x3319('0x61'),0x8));var _0x2eafdb=sox['transcode'](_0x72b9b8,_0x4c18ad,{'sampleRate':0x1f40,'format':_0x3319('0x5b'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x2eafdb['on'](_0x3319('0x29'),function(_0x1e1e10){fs['unlinkSync'](_0x72b9b8);_0x2e5d51[_0x3319('0x19')](0x1f4)[_0x3319('0x62')](_0x1e1e10);});_0x2eafdb['on'](_0x3319('0x63'),function(_0x1b14fa){_0x118ee0[_0x3319('0x64')]=isNaN(_0x1b14fa[_0x3319('0x65')])?null:_0x1b14fa[_0x3319('0x65')]*0x3e8;_0x118ee0[_0x3319('0x66')]=isNaN(_0x1b14fa[_0x3319('0x67')])?null:_0x1b14fa[_0x3319('0x67')];_0x118ee0['original_channelCount']=isNaN(_0x1b14fa[_0x3319('0x68')])?null:_0x1b14fa['channelCount'];_0x118ee0[_0x3319('0x69')]=isNaN(_0x1b14fa[_0x3319('0x6a')])?null:_0x1b14fa[_0x3319('0x6a')];_0x118ee0[_0x3319('0x6b')]=isNaN(_0x1b14fa[_0x3319('0x6c')])?null:_0x1b14fa[_0x3319('0x6c')];});_0x2eafdb['on']('dest',function(_0x5486a7){_0x118ee0[_0x3319('0x6d')]=isNaN(_0x5486a7['duration'])?null:_0x5486a7[_0x3319('0x65')]*0x3e8;_0x118ee0[_0x3319('0x6e')]=isNaN(_0x5486a7[_0x3319('0x67')])?null:_0x5486a7[_0x3319('0x67')];_0x118ee0[_0x3319('0x6f')]=isNaN(_0x5486a7['channelCount'])?null:_0x5486a7[_0x3319('0x68')];_0x118ee0[_0x3319('0x70')]=isNaN(_0x5486a7[_0x3319('0x6a')])?null:_0x5486a7[_0x3319('0x6a')];_0x118ee0[_0x3319('0x71')]=isNaN(_0x5486a7[_0x3319('0x6c')])?null:_0x5486a7[_0x3319('0x6c')];});_0x2eafdb['on'](_0x3319('0x18'),function(){fs['chmodSync'](_0x4c18ad,parseInt(_0x3319('0x61'),0x8));return db['Sound'][_0x3319('0x54')](_0x118ee0)[_0x3319('0x24')](function(_0x312dab){var _0x24554f={'role':_0x12def1[_0x3319('0x72')][_0x3319('0x73')],'userProfileId':_0x12def1[_0x3319('0x72')][_0x3319('0x74')]};if(!_0x24554f)throw new Error(_0x3319('0x75'));if(_0x24554f[_0x3319('0x73')]===_0x3319('0x76')){var _0x174513=_0x312dab['get']({'plain':!![]});return db[_0x3319('0x77')][_0x3319('0x48')]({'where':{'name':_0x3319('0x27'),'userProfileId':_0x24554f[_0x3319('0x74')]},'raw':!![]})[_0x3319('0x24')](function(_0x54fb25){if(_0x54fb25&&_0x54fb25[_0x3319('0x78')]===0x0){return db[_0x3319('0x28')]['create']({'name':_0x174513['name'],'resourceId':_0x174513['id'],'type':_0x54fb25['name'],'sectionId':_0x54fb25['id']},{})[_0x3319('0x24')](function(){return _0x312dab;});}else{return _0x312dab;}})[_0x3319('0x49')](function(_0x542651){logger[_0x3319('0x29')](_0x3319('0x79'),_0x542651);throw _0x542651;});}return _0x312dab;})[_0x3319('0x24')](respondWithResult(_0x2e5d51,null))['catch'](handleError(_0x2e5d51,null));});_0x2eafdb[_0x3319('0x7a')]();}catch(_0x46886d){_0x2e5d51[_0x3319('0x19')](0x1f4)[_0x3319('0x62')](_0x46886d);}};exports[_0x3319('0x23')]=function(_0x1c6cc0,_0x4ae614,_0x1192f6){return db[_0x3319('0x43')][_0x3319('0x48')]({'where':{'id':_0x1c6cc0[_0x3319('0x46')]['id']}})[_0x3319('0x24')](handleEntityNotFound(_0x4ae614,null))[_0x3319('0x24')](saveUpdates(_[_0x3319('0x3e')](_0x1c6cc0[_0x3319('0x72')],[_0x3319('0x2b'),'description']),null))[_0x3319('0x24')](respondWithResult(_0x4ae614,null))[_0x3319('0x49')](handleError(_0x4ae614,null));};exports[_0x3319('0x7b')]=function(_0x171ffe,_0x2be497,_0x43ea54){return db['Sound'][_0x3319('0x48')]({'where':{'id':_0x171ffe['params']['id']}})[_0x3319('0x24')](function(_0x350afa){if(_0x350afa){return _0x350afa['destroy']();}})['then'](function(_0x3211a4){var _0x15c0d3=path[_0x3319('0x51')](config[_0x3319('0x4c')],_0x3319('0x5c'),util[_0x3319('0x52')](_0x3319('0x53'),_0x3211a4[_0x3319('0x4a')],_0x3211a4[_0x3319('0x7c')]));var _0x9b0a67=path[_0x3319('0x51')](config[_0x3319('0x4c')],_0x3319('0x4d'),util[_0x3319('0x52')](_0x3319('0x53'),_0x3211a4[_0x3319('0x4a')],_0x3211a4['converted_format']));fs['unlinkSync'](_0x15c0d3);fs[_0x3319('0x7d')](_0x9b0a67);return _0x3211a4;})['then'](function(_0x5963d7){if(_0x5963d7){return _0x2be497[_0x3319('0x19')](0xcc)[_0x3319('0x18')]();}})[_0x3319('0x24')](handleEntityNotFound(_0x2be497,null))[_0x3319('0x49')](handleError(_0x2be497,null));};