76f379d3e62d4e172f30bc5a5576ef22f6470d89
[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 _0xc353=['root','server/files/sounds/converted','save_name','Sequelize','ValidationError','Sound\x20not\x20found','join','format','create','basename','file','originalname','extname','filename','substring','server/files/sounds/original','%s.%s','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','wav','src','duration','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','start','description','delete','original_format','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','update','destroy','then','get','Sounds','UserProfileResource','error','name','send','map','Sound','rawAttributes','fieldName','type','key','model','keys','query','intersection','fields','attributes','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','includeAll','include','findAll','catch','show','params','length','find','download','converted_format','existsSync'];(function(_0x3eb28d,_0x2fb93e){var _0x44a424=function(_0x935b10){while(--_0x935b10){_0x3eb28d['push'](_0x3eb28d['shift']());}};_0x44a424(++_0x2fb93e);}(_0xc353,0x134));var _0x3c35=function(_0x5ac707,_0x106792){_0x5ac707=_0x5ac707-0x0;var _0x11451b=_0xc353[_0x5ac707];return _0x11451b;};'use strict';var emlformat=require(_0x3c35('0x0'));var rimraf=require(_0x3c35('0x1'));var zipdir=require(_0x3c35('0x2'));var jsonpatch=require(_0x3c35('0x3'));var rp=require(_0x3c35('0x4'));var moment=require(_0x3c35('0x5'));var BPromise=require(_0x3c35('0x6'));var Mustache=require(_0x3c35('0x7'));var util=require(_0x3c35('0x8'));var path=require(_0x3c35('0x9'));var sox=require(_0x3c35('0xa'));var csv=require('to-csv');var ejs=require(_0x3c35('0xb'));var fs=require('fs');var fs_extra=require(_0x3c35('0xc'));var _=require(_0x3c35('0xd'));var squel=require(_0x3c35('0xe'));var crypto=require(_0x3c35('0xf'));var jsforce=require(_0x3c35('0x10'));var deskjs=require(_0x3c35('0x11'));var toCsv=require(_0x3c35('0x12'));var querystring=require(_0x3c35('0x13'));var Papa=require(_0x3c35('0x14'));var Redis=require(_0x3c35('0x15'));var authService=require('../../components/auth/service');var qs=require(_0x3c35('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3c35('0x17'));var logger=require(_0x3c35('0x18'))(_0x3c35('0x19'));var utils=require(_0x3c35('0x1a'));var config=require(_0x3c35('0x1b'));var licenseUtil=require(_0x3c35('0x1c'));var db=require(_0x3c35('0x1d'))['db'];function respondWithStatusCode(_0x5ad412,_0x5d4d01){_0x5d4d01=_0x5d4d01||0xcc;return function(_0x544814){if(_0x544814){return _0x5ad412[_0x3c35('0x1e')](_0x5d4d01);}return _0x5ad412[_0x3c35('0x1f')](_0x5d4d01)[_0x3c35('0x20')]();};}function respondWithResult(_0x2c8407,_0x1d5497){_0x1d5497=_0x1d5497||0xc8;return function(_0xd11e56){if(_0xd11e56){return _0x2c8407[_0x3c35('0x1f')](_0x1d5497)[_0x3c35('0x21')](_0xd11e56);}};}function respondWithFilteredResult(_0x179950,_0x503946){return function(_0x1b25c2){if(_0x1b25c2){var _0x1eb897=typeof _0x503946[_0x3c35('0x22')]===_0x3c35('0x23')&&typeof _0x503946['limit']===_0x3c35('0x23');var _0x46cbc4=_0x1b25c2[_0x3c35('0x24')];var _0x8d708=_0x1eb897?0x0:_0x503946['offset'];var _0x30d9f8=_0x1eb897?_0x1b25c2[_0x3c35('0x24')]:_0x503946['offset']+_0x503946['limit'];var _0x2cffaf;if(_0x30d9f8>=_0x46cbc4){_0x30d9f8=_0x46cbc4;_0x2cffaf=0xc8;}else{_0x2cffaf=0xce;}_0x179950[_0x3c35('0x1f')](_0x2cffaf);return _0x179950[_0x3c35('0x25')](_0x3c35('0x26'),_0x8d708+'-'+_0x30d9f8+'/'+_0x46cbc4)[_0x3c35('0x21')](_0x1b25c2);}return null;};}function patchUpdates(_0x561b38){return function(_0x275b8e){try{jsonpatch[_0x3c35('0x27')](_0x275b8e,_0x561b38,!![]);}catch(_0x420f63){return BPromise[_0x3c35('0x28')](_0x420f63);}return _0x275b8e['save']();};}function saveUpdates(_0x3ce200,_0x36aac0){return function(_0x443346){if(_0x443346){return _0x443346[_0x3c35('0x29')](_0x3ce200)['then'](function(_0x1b1f6c){return _0x1b1f6c;});}return null;};}function removeEntity(_0x9e45ae,_0x1867c9){return function(_0x44a4fc){if(_0x44a4fc){return _0x44a4fc[_0x3c35('0x2a')]()[_0x3c35('0x2b')](function(){var _0x1253df=_0x44a4fc[_0x3c35('0x2c')]({'plain':!![]});var _0x1a0167=_0x3c35('0x2d');return db[_0x3c35('0x2e')][_0x3c35('0x2a')]({'where':{'type':_0x1a0167,'resourceId':_0x1253df['id']}})[_0x3c35('0x2b')](function(){return _0x44a4fc;});})[_0x3c35('0x2b')](function(){_0x9e45ae['status'](0xcc)[_0x3c35('0x20')]();});}};}function handleEntityNotFound(_0x28c091,_0x4c1b43){return function(_0x13631b){if(!_0x13631b){_0x28c091[_0x3c35('0x1e')](0x194);}return _0x13631b;};}function handleError(_0x5e3032,_0x91fe98){_0x91fe98=_0x91fe98||0x1f4;return function(_0x46a92d){logger[_0x3c35('0x2f')](_0x46a92d['stack']);if(_0x46a92d[_0x3c35('0x30')]){delete _0x46a92d[_0x3c35('0x30')];}_0x5e3032[_0x3c35('0x1f')](_0x91fe98)[_0x3c35('0x31')](_0x46a92d);};}exports['index']=function(_0x546133,_0x5f434e){var _0x20c65c={},_0x29c81e={},_0x4b73f3={'count':0x0,'rows':[]};var _0x3ddbbf=_[_0x3c35('0x32')](db[_0x3c35('0x33')][_0x3c35('0x34')],function(_0x345baa){return{'name':_0x345baa[_0x3c35('0x35')],'type':_0x345baa[_0x3c35('0x36')][_0x3c35('0x37')]};});_0x29c81e[_0x3c35('0x38')]=_[_0x3c35('0x32')](_0x3ddbbf,_0x3c35('0x30'));_0x29c81e['query']=_[_0x3c35('0x39')](_0x546133[_0x3c35('0x3a')]);_0x29c81e['filters']=_[_0x3c35('0x3b')](_0x29c81e['model'],_0x29c81e[_0x3c35('0x3a')]);_0x20c65c['attributes']=_['intersection'](_0x29c81e['model'],qs[_0x3c35('0x3c')](_0x546133[_0x3c35('0x3a')][_0x3c35('0x3c')]));_0x20c65c[_0x3c35('0x3d')]=_0x20c65c['attributes']['length']?_0x20c65c[_0x3c35('0x3d')]:_0x29c81e[_0x3c35('0x38')];if(!_0x546133[_0x3c35('0x3a')][_0x3c35('0x3e')](_0x3c35('0x3f'))){_0x20c65c[_0x3c35('0x40')]=qs[_0x3c35('0x40')](_0x546133[_0x3c35('0x3a')][_0x3c35('0x40')]);_0x20c65c[_0x3c35('0x22')]=qs['offset'](_0x546133[_0x3c35('0x3a')][_0x3c35('0x22')]);}_0x20c65c[_0x3c35('0x41')]=qs[_0x3c35('0x42')](_0x546133[_0x3c35('0x3a')][_0x3c35('0x42')]);_0x20c65c[_0x3c35('0x43')]=qs['filters'](_[_0x3c35('0x44')](_0x546133[_0x3c35('0x3a')],_0x29c81e['filters']),_0x3ddbbf);if(_0x546133[_0x3c35('0x3a')][_0x3c35('0x45')]){_0x20c65c[_0x3c35('0x43')]=_[_0x3c35('0x46')](_0x20c65c[_0x3c35('0x43')],{'$or':_[_0x3c35('0x32')](_0x3ddbbf,function(_0xe5e8e7){if(_0xe5e8e7['type']!=='VIRTUAL'){var _0x59d2e7={};_0x59d2e7[_0xe5e8e7[_0x3c35('0x30')]]={'$like':'%'+_0x546133[_0x3c35('0x3a')]['filter']+'%'};return _0x59d2e7;}})});}_0x20c65c=_[_0x3c35('0x46')]({},_0x20c65c,_0x546133['options']);var _0x540696={'where':_0x20c65c[_0x3c35('0x43')]};return db['Sound']['count'](_0x540696)['then'](function(_0x323384){_0x4b73f3[_0x3c35('0x24')]=_0x323384;if(_0x546133[_0x3c35('0x3a')][_0x3c35('0x47')]){_0x20c65c[_0x3c35('0x48')]=[{'all':!![]}];}return db['Sound'][_0x3c35('0x49')](_0x20c65c);})[_0x3c35('0x2b')](function(_0x29f6fb){_0x4b73f3['rows']=_0x29f6fb;return _0x4b73f3;})['then'](respondWithFilteredResult(_0x5f434e,_0x20c65c))[_0x3c35('0x4a')](handleError(_0x5f434e,null));};exports[_0x3c35('0x4b')]=function(_0x2177f7,_0x4dfb19){var _0x5e6f09={'raw':!![],'where':{'id':_0x2177f7[_0x3c35('0x4c')]['id']}},_0x1106eb={};_0x1106eb[_0x3c35('0x38')]=_[_0x3c35('0x39')](db[_0x3c35('0x33')][_0x3c35('0x34')]);_0x1106eb[_0x3c35('0x3a')]=_[_0x3c35('0x39')](_0x2177f7['query']);_0x1106eb['filters']=_[_0x3c35('0x3b')](_0x1106eb[_0x3c35('0x38')],_0x1106eb[_0x3c35('0x3a')]);_0x5e6f09['attributes']=_[_0x3c35('0x3b')](_0x1106eb['model'],qs[_0x3c35('0x3c')](_0x2177f7['query'][_0x3c35('0x3c')]));_0x5e6f09['attributes']=_0x5e6f09[_0x3c35('0x3d')][_0x3c35('0x4d')]?_0x5e6f09[_0x3c35('0x3d')]:_0x1106eb[_0x3c35('0x38')];if(_0x2177f7['query'][_0x3c35('0x47')]){_0x5e6f09[_0x3c35('0x48')]=[{'all':!![]}];}_0x5e6f09=_[_0x3c35('0x46')]({},_0x5e6f09,_0x2177f7['options']);return db[_0x3c35('0x33')][_0x3c35('0x4e')](_0x5e6f09)[_0x3c35('0x2b')](handleEntityNotFound(_0x4dfb19,null))[_0x3c35('0x2b')](respondWithResult(_0x4dfb19,null))[_0x3c35('0x4a')](handleError(_0x4dfb19,null));};exports[_0x3c35('0x4f')]=function(_0x5445e0,_0x244176,_0x5b1469){return db[_0x3c35('0x33')][_0x3c35('0x4e')]({'where':{'id':_0x5445e0['params']['id']},'attributes':['name','save_name',_0x3c35('0x50')],'raw':!![]})[_0x3c35('0x2b')](handleEntityNotFound(_0x244176,null))[_0x3c35('0x2b')](function(_0x1770e0){if(_0x1770e0){if(!fs[_0x3c35('0x51')](path['join'](config[_0x3c35('0x52')],_0x3c35('0x53'),_0x1770e0[_0x3c35('0x54')]+'.'+_0x1770e0[_0x3c35('0x50')]))){throw new db[(_0x3c35('0x55'))][(_0x3c35('0x56'))](_0x3c35('0x57'));}return _0x244176[_0x3c35('0x4f')](path[_0x3c35('0x58')](config['root'],_0x3c35('0x53'),util['format']('%s.%s',_0x1770e0[_0x3c35('0x54')],_0x1770e0['converted_format'])),util[_0x3c35('0x59')]('%s.%s',_0x1770e0[_0x3c35('0x30')],_0x1770e0[_0x3c35('0x50')]));}return null;})[_0x3c35('0x4a')](handleError(_0x244176,null));};exports[_0x3c35('0x5a')]=function(_0x10bbdc,_0x56dcd4,_0x38835c){var _0x14ae5a={'name':path[_0x3c35('0x5b')](_0x10bbdc[_0x3c35('0x5c')][_0x3c35('0x5d')],path[_0x3c35('0x5e')](_0x10bbdc[_0x3c35('0x5c')]['originalname'])),'save_name':path[_0x3c35('0x5b')](_0x10bbdc[_0x3c35('0x5c')][_0x3c35('0x5f')],path['extname'](_0x10bbdc[_0x3c35('0x5c')][_0x3c35('0x5f')])),'original_format':path[_0x3c35('0x5e')](_0x10bbdc[_0x3c35('0x5c')]['originalname'])[_0x3c35('0x60')](0x1),'converted_format':'wav'};var _0x4230a7=path['join'](config[_0x3c35('0x52')],_0x3c35('0x61'),_0x10bbdc[_0x3c35('0x5c')][_0x3c35('0x5f')]);var _0x5e14dc=path[_0x3c35('0x58')](config[_0x3c35('0x52')],_0x3c35('0x53'),util[_0x3c35('0x59')](_0x3c35('0x62'),path['basename'](_0x10bbdc[_0x3c35('0x5c')][_0x3c35('0x5f')],path[_0x3c35('0x5e')](_0x10bbdc[_0x3c35('0x5c')]['filename'])),_0x14ae5a['converted_format']));logger[_0x3c35('0x63')](_0x3c35('0x64'),_0x4230a7);logger[_0x3c35('0x63')](_0x3c35('0x65'),_0x5e14dc);try{fs[_0x3c35('0x66')](_0x4230a7,parseInt(_0x3c35('0x67'),0x8));var _0x26ddb3=sox['transcode'](_0x4230a7,_0x5e14dc,{'sampleRate':0x1f40,'format':_0x3c35('0x68'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x26ddb3['on']('error',function(_0x32c7eb){fs['unlinkSync'](_0x4230a7);_0x56dcd4[_0x3c35('0x1f')](0x1f4)[_0x3c35('0x31')](_0x32c7eb);});_0x26ddb3['on'](_0x3c35('0x69'),function(_0x3a8408){_0x14ae5a['original_duration']=isNaN(_0x3a8408[_0x3c35('0x6a')])?null:_0x3a8408[_0x3c35('0x6a')]*0x3e8;_0x14ae5a['original_sampleCount']=isNaN(_0x3a8408['sampleCount'])?null:_0x3a8408[_0x3c35('0x6b')];_0x14ae5a[_0x3c35('0x6c')]=isNaN(_0x3a8408[_0x3c35('0x6d')])?null:_0x3a8408['channelCount'];_0x14ae5a[_0x3c35('0x6e')]=isNaN(_0x3a8408[_0x3c35('0x6f')])?null:_0x3a8408[_0x3c35('0x6f')];_0x14ae5a['original_sampleRate']=isNaN(_0x3a8408[_0x3c35('0x70')])?null:_0x3a8408[_0x3c35('0x70')];});_0x26ddb3['on'](_0x3c35('0x71'),function(_0x8a107b){_0x14ae5a[_0x3c35('0x72')]=isNaN(_0x8a107b[_0x3c35('0x6a')])?null:_0x8a107b[_0x3c35('0x6a')]*0x3e8;_0x14ae5a[_0x3c35('0x73')]=isNaN(_0x8a107b[_0x3c35('0x6b')])?null:_0x8a107b[_0x3c35('0x6b')];_0x14ae5a[_0x3c35('0x74')]=isNaN(_0x8a107b['channelCount'])?null:_0x8a107b[_0x3c35('0x6d')];_0x14ae5a[_0x3c35('0x75')]=isNaN(_0x8a107b['bitRate'])?null:_0x8a107b['bitRate'];_0x14ae5a[_0x3c35('0x76')]=isNaN(_0x8a107b[_0x3c35('0x70')])?null:_0x8a107b[_0x3c35('0x70')];});_0x26ddb3['on']('end',function(){fs[_0x3c35('0x66')](_0x5e14dc,parseInt(_0x3c35('0x67'),0x8));return db[_0x3c35('0x33')][_0x3c35('0x5a')](_0x14ae5a)[_0x3c35('0x2b')](function(_0x5caadc){var _0x40b96a={'role':_0x10bbdc[_0x3c35('0x77')][_0x3c35('0x78')],'userProfileId':_0x10bbdc['body'][_0x3c35('0x79')]};if(!_0x40b96a)throw new Error(_0x3c35('0x7a'));if(_0x40b96a[_0x3c35('0x78')]===_0x3c35('0x7b')){var _0x538f1e=_0x5caadc[_0x3c35('0x2c')]({'plain':!![]});return db[_0x3c35('0x7c')][_0x3c35('0x4e')]({'where':{'name':_0x3c35('0x2d'),'userProfileId':_0x40b96a['userProfileId']},'raw':!![]})['then'](function(_0x30aa3d){if(_0x30aa3d&&_0x30aa3d['autoAssociation']===0x0){return db[_0x3c35('0x2e')][_0x3c35('0x5a')]({'name':_0x538f1e[_0x3c35('0x30')],'resourceId':_0x538f1e['id'],'type':_0x30aa3d[_0x3c35('0x30')],'sectionId':_0x30aa3d['id']},{})[_0x3c35('0x2b')](function(){return _0x5caadc;});}else{return _0x5caadc;}})[_0x3c35('0x4a')](function(_0x8f2797){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x8f2797);throw _0x8f2797;});}return _0x5caadc;})[_0x3c35('0x2b')](respondWithResult(_0x56dcd4,null))['catch'](handleError(_0x56dcd4,null));});_0x26ddb3[_0x3c35('0x7d')]();}catch(_0x3e0d14){_0x56dcd4[_0x3c35('0x1f')](0x1f4)[_0x3c35('0x31')](_0x3e0d14);}};exports[_0x3c35('0x29')]=function(_0xdc2969,_0x23c74b,_0x2458fe){return db['Sound']['find']({'where':{'id':_0xdc2969[_0x3c35('0x4c')]['id']}})[_0x3c35('0x2b')](handleEntityNotFound(_0x23c74b,null))[_0x3c35('0x2b')](saveUpdates(_['pick'](_0xdc2969[_0x3c35('0x77')],['name',_0x3c35('0x7e')]),null))[_0x3c35('0x2b')](respondWithResult(_0x23c74b,null))['catch'](handleError(_0x23c74b,null));};exports[_0x3c35('0x7f')]=function(_0x15fd80,_0x4d4897,_0x5d1335){return db[_0x3c35('0x33')]['find']({'where':{'id':_0x15fd80['params']['id']}})[_0x3c35('0x2b')](function(_0x34119f){if(_0x34119f){return _0x34119f[_0x3c35('0x2a')]();}})['then'](function(_0x234605){var _0x35e9a6=path[_0x3c35('0x58')](config[_0x3c35('0x52')],_0x3c35('0x61'),util[_0x3c35('0x59')](_0x3c35('0x62'),_0x234605[_0x3c35('0x54')],_0x234605[_0x3c35('0x80')]));var _0xe24f5e=path[_0x3c35('0x58')](config['root'],_0x3c35('0x53'),util[_0x3c35('0x59')](_0x3c35('0x62'),_0x234605[_0x3c35('0x54')],_0x234605[_0x3c35('0x50')]));fs[_0x3c35('0x81')](_0x35e9a6);fs['unlinkSync'](_0xe24f5e);return _0x234605;})['then'](function(_0x40a7bb){if(_0x40a7bb){return _0x4d4897[_0x3c35('0x1f')](0xcc)[_0x3c35('0x20')]();}})[_0x3c35('0x2b')](handleEntityNotFound(_0x4d4897,null))['catch'](handleError(_0x4d4897,null));};