f672c08d00e6a9d0394bdd26ccd9fdd7edd125d1
[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 _0xdad6=['rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','Sounds','UserProfileResource','end','sendStatus','error','stack','name','send','index','map','Sound','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','where','filter','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','merge','find','download','converted_format','root','save_name','Sequelize','ValidationError','Sound\x20not\x20found','join','server/files/sounds/converted','format','%s.%s','create','basename','file','originalname','filename','extname','substring','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','wav','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','chmodSync','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','pick','delete','destroy','server/files/sounds/original'];(function(_0x4d0221,_0x46376e){var _0x251f52=function(_0x183634){while(--_0x183634){_0x4d0221['push'](_0x4d0221['shift']());}};_0x251f52(++_0x46376e);}(_0xdad6,0x189));var _0x6dad=function(_0x6c266c,_0x33bcc5){_0x6c266c=_0x6c266c-0x0;var _0x4fca1b=_0xdad6[_0x6c266c];return _0x4fca1b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6dad('0x0'));var zipdir=require(_0x6dad('0x1'));var jsonpatch=require(_0x6dad('0x2'));var rp=require(_0x6dad('0x3'));var moment=require(_0x6dad('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x6dad('0x5'));var util=require(_0x6dad('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x6dad('0x7'));var ejs=require(_0x6dad('0x8'));var fs=require('fs');var fs_extra=require(_0x6dad('0x9'));var _=require(_0x6dad('0xa'));var squel=require(_0x6dad('0xb'));var crypto=require(_0x6dad('0xc'));var jsforce=require(_0x6dad('0xd'));var deskjs=require(_0x6dad('0xe'));var toCsv=require(_0x6dad('0x7'));var querystring=require(_0x6dad('0xf'));var Papa=require(_0x6dad('0x10'));var Redis=require(_0x6dad('0x11'));var authService=require(_0x6dad('0x12'));var qs=require(_0x6dad('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6dad('0x14'));var logger=require(_0x6dad('0x15'))(_0x6dad('0x16'));var utils=require(_0x6dad('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x6dad('0x18'));var db=require(_0x6dad('0x19'))['db'];function respondWithStatusCode(_0x4e1278,_0x290bc2){_0x290bc2=_0x290bc2||0xcc;return function(_0x562550){if(_0x562550){return _0x4e1278['sendStatus'](_0x290bc2);}return _0x4e1278[_0x6dad('0x1a')](_0x290bc2)['end']();};}function respondWithResult(_0x12d9bd,_0x32d76d){_0x32d76d=_0x32d76d||0xc8;return function(_0x3c10dc){if(_0x3c10dc){return _0x12d9bd['status'](_0x32d76d)[_0x6dad('0x1b')](_0x3c10dc);}};}function respondWithFilteredResult(_0x1791d5,_0x241bd9){return function(_0x440125){if(_0x440125){var _0xa6f208=typeof _0x241bd9[_0x6dad('0x1c')]===_0x6dad('0x1d')&&typeof _0x241bd9['limit']===_0x6dad('0x1d');var _0x27e32c=_0x440125[_0x6dad('0x1e')];var _0x2a55ef=_0xa6f208?0x0:_0x241bd9['offset'];var _0x3280f0=_0xa6f208?_0x440125['count']:_0x241bd9[_0x6dad('0x1c')]+_0x241bd9['limit'];var _0x2ef225;if(_0x3280f0>=_0x27e32c){_0x3280f0=_0x27e32c;_0x2ef225=0xc8;}else{_0x2ef225=0xce;}_0x1791d5['status'](_0x2ef225);return _0x1791d5[_0x6dad('0x1f')](_0x6dad('0x20'),_0x2a55ef+'-'+_0x3280f0+'/'+_0x27e32c)['json'](_0x440125);}return null;};}function patchUpdates(_0x1caf86){return function(_0x5a8f34){try{jsonpatch[_0x6dad('0x21')](_0x5a8f34,_0x1caf86,!![]);}catch(_0x370676){return BPromise[_0x6dad('0x22')](_0x370676);}return _0x5a8f34[_0x6dad('0x23')]();};}function saveUpdates(_0x3c682f,_0x14bee9){return function(_0x4c9f74){if(_0x4c9f74){return _0x4c9f74[_0x6dad('0x24')](_0x3c682f)[_0x6dad('0x25')](function(_0xd8d647){return _0xd8d647;});}return null;};}function removeEntity(_0x5c5470,_0x4a1dc8){return function(_0xe0a84d){if(_0xe0a84d){return _0xe0a84d['destroy']()['then'](function(){var _0x562f63=_0xe0a84d['get']({'plain':!![]});var _0x15b97b=_0x6dad('0x26');return db[_0x6dad('0x27')]['destroy']({'where':{'type':_0x15b97b,'resourceId':_0x562f63['id']}})[_0x6dad('0x25')](function(){return _0xe0a84d;});})[_0x6dad('0x25')](function(){_0x5c5470[_0x6dad('0x1a')](0xcc)[_0x6dad('0x28')]();});}};}function handleEntityNotFound(_0x188655,_0x39c8be){return function(_0x53a275){if(!_0x53a275){_0x188655[_0x6dad('0x29')](0x194);}return _0x53a275;};}function handleError(_0xf32baf,_0x1941ce){_0x1941ce=_0x1941ce||0x1f4;return function(_0x28e2a6){logger[_0x6dad('0x2a')](_0x28e2a6[_0x6dad('0x2b')]);if(_0x28e2a6[_0x6dad('0x2c')]){delete _0x28e2a6[_0x6dad('0x2c')];}_0xf32baf[_0x6dad('0x1a')](_0x1941ce)[_0x6dad('0x2d')](_0x28e2a6);};}exports[_0x6dad('0x2e')]=function(_0x4802fe,_0x5069f6){var _0x53ce37={},_0xe60f8f={},_0x554491={'count':0x0,'rows':[]};var _0x55cb24=_[_0x6dad('0x2f')](db[_0x6dad('0x30')][_0x6dad('0x31')],function(_0x3d9b55){return{'name':_0x3d9b55[_0x6dad('0x32')],'type':_0x3d9b55[_0x6dad('0x33')][_0x6dad('0x34')]};});_0xe60f8f[_0x6dad('0x35')]=_[_0x6dad('0x2f')](_0x55cb24,_0x6dad('0x2c'));_0xe60f8f[_0x6dad('0x36')]=_[_0x6dad('0x37')](_0x4802fe[_0x6dad('0x36')]);_0xe60f8f[_0x6dad('0x38')]=_[_0x6dad('0x39')](_0xe60f8f[_0x6dad('0x35')],_0xe60f8f[_0x6dad('0x36')]);_0x53ce37[_0x6dad('0x3a')]=_[_0x6dad('0x39')](_0xe60f8f[_0x6dad('0x35')],qs[_0x6dad('0x3b')](_0x4802fe[_0x6dad('0x36')][_0x6dad('0x3b')]));_0x53ce37['attributes']=_0x53ce37[_0x6dad('0x3a')][_0x6dad('0x3c')]?_0x53ce37[_0x6dad('0x3a')]:_0xe60f8f[_0x6dad('0x35')];if(!_0x4802fe[_0x6dad('0x36')][_0x6dad('0x3d')]('nolimit')){_0x53ce37[_0x6dad('0x3e')]=qs[_0x6dad('0x3e')](_0x4802fe['query'][_0x6dad('0x3e')]);_0x53ce37['offset']=qs['offset'](_0x4802fe[_0x6dad('0x36')][_0x6dad('0x1c')]);}_0x53ce37[_0x6dad('0x3f')]=qs[_0x6dad('0x40')](_0x4802fe['query'][_0x6dad('0x40')]);_0x53ce37[_0x6dad('0x41')]=qs[_0x6dad('0x38')](_['pick'](_0x4802fe[_0x6dad('0x36')],_0xe60f8f[_0x6dad('0x38')]),_0x55cb24);if(_0x4802fe[_0x6dad('0x36')][_0x6dad('0x42')]){_0x53ce37[_0x6dad('0x41')]=_['merge'](_0x53ce37[_0x6dad('0x41')],{'$or':_[_0x6dad('0x2f')](_0x55cb24,function(_0x514306){if(_0x514306[_0x6dad('0x33')]!==_0x6dad('0x43')){var _0x3643b3={};_0x3643b3[_0x514306[_0x6dad('0x2c')]]={'$like':'%'+_0x4802fe['query'][_0x6dad('0x42')]+'%'};return _0x3643b3;}})});}_0x53ce37=_['merge']({},_0x53ce37,_0x4802fe[_0x6dad('0x44')]);var _0x52b070={'where':_0x53ce37[_0x6dad('0x41')]};return db[_0x6dad('0x30')][_0x6dad('0x1e')](_0x52b070)['then'](function(_0x3bd6ad){_0x554491[_0x6dad('0x1e')]=_0x3bd6ad;if(_0x4802fe[_0x6dad('0x36')]['includeAll']){_0x53ce37[_0x6dad('0x45')]=[{'all':!![]}];}return db['Sound'][_0x6dad('0x46')](_0x53ce37);})['then'](function(_0x4523be){_0x554491[_0x6dad('0x47')]=_0x4523be;return _0x554491;})['then'](respondWithFilteredResult(_0x5069f6,_0x53ce37))[_0x6dad('0x48')](handleError(_0x5069f6,null));};exports[_0x6dad('0x49')]=function(_0x5a0878,_0x41c0d7){var _0xc6f852={'raw':!![],'where':{'id':_0x5a0878[_0x6dad('0x4a')]['id']}},_0x2f59f1={};_0x2f59f1['model']=_[_0x6dad('0x37')](db['Sound']['rawAttributes']);_0x2f59f1['query']=_[_0x6dad('0x37')](_0x5a0878[_0x6dad('0x36')]);_0x2f59f1['filters']=_['intersection'](_0x2f59f1[_0x6dad('0x35')],_0x2f59f1[_0x6dad('0x36')]);_0xc6f852[_0x6dad('0x3a')]=_['intersection'](_0x2f59f1[_0x6dad('0x35')],qs[_0x6dad('0x3b')](_0x5a0878[_0x6dad('0x36')][_0x6dad('0x3b')]));_0xc6f852[_0x6dad('0x3a')]=_0xc6f852[_0x6dad('0x3a')]['length']?_0xc6f852['attributes']:_0x2f59f1[_0x6dad('0x35')];if(_0x5a0878[_0x6dad('0x36')][_0x6dad('0x4b')]){_0xc6f852[_0x6dad('0x45')]=[{'all':!![]}];}_0xc6f852=_[_0x6dad('0x4c')]({},_0xc6f852,_0x5a0878[_0x6dad('0x44')]);return db['Sound'][_0x6dad('0x4d')](_0xc6f852)[_0x6dad('0x25')](handleEntityNotFound(_0x41c0d7,null))[_0x6dad('0x25')](respondWithResult(_0x41c0d7,null))[_0x6dad('0x48')](handleError(_0x41c0d7,null));};exports[_0x6dad('0x4e')]=function(_0x322818,_0xe45ac3,_0x1ffc46){return db['Sound'][_0x6dad('0x4d')]({'where':{'id':_0x322818['params']['id']},'attributes':[_0x6dad('0x2c'),'save_name',_0x6dad('0x4f')],'raw':!![]})[_0x6dad('0x25')](handleEntityNotFound(_0xe45ac3,null))[_0x6dad('0x25')](function(_0x795666){if(_0x795666){if(!fs['existsSync'](path['join'](config[_0x6dad('0x50')],'server/files/sounds/converted',_0x795666[_0x6dad('0x51')]+'.'+_0x795666[_0x6dad('0x4f')]))){throw new db[(_0x6dad('0x52'))][(_0x6dad('0x53'))](_0x6dad('0x54'));}return _0xe45ac3[_0x6dad('0x4e')](path[_0x6dad('0x55')](config[_0x6dad('0x50')],_0x6dad('0x56'),util[_0x6dad('0x57')](_0x6dad('0x58'),_0x795666[_0x6dad('0x51')],_0x795666['converted_format'])),util[_0x6dad('0x57')](_0x6dad('0x58'),_0x795666['name'],_0x795666['converted_format']));}return null;})[_0x6dad('0x48')](handleError(_0xe45ac3,null));};exports[_0x6dad('0x59')]=function(_0x37b45f,_0x539574,_0x37b844){var _0x33a90f={'name':path[_0x6dad('0x5a')](_0x37b45f['file']['originalname'],path['extname'](_0x37b45f[_0x6dad('0x5b')][_0x6dad('0x5c')])),'save_name':path[_0x6dad('0x5a')](_0x37b45f[_0x6dad('0x5b')][_0x6dad('0x5d')],path[_0x6dad('0x5e')](_0x37b45f[_0x6dad('0x5b')][_0x6dad('0x5d')])),'original_format':path[_0x6dad('0x5e')](_0x37b45f[_0x6dad('0x5b')]['originalname'])[_0x6dad('0x5f')](0x1),'converted_format':'wav'};var _0x5d4bac=path[_0x6dad('0x55')](config[_0x6dad('0x50')],'server/files/sounds/original',_0x37b45f[_0x6dad('0x5b')][_0x6dad('0x5d')]);var _0x5b6c74=path[_0x6dad('0x55')](config['root'],_0x6dad('0x56'),util['format'](_0x6dad('0x58'),path['basename'](_0x37b45f[_0x6dad('0x5b')][_0x6dad('0x5d')],path['extname'](_0x37b45f[_0x6dad('0x5b')][_0x6dad('0x5d')])),_0x33a90f[_0x6dad('0x4f')]));logger[_0x6dad('0x60')](_0x6dad('0x61'),_0x5d4bac);logger[_0x6dad('0x60')](_0x6dad('0x62'),_0x5b6c74);try{fs['chmodSync'](_0x5d4bac,parseInt(_0x6dad('0x63'),0x8));var _0x3c4d60=sox['transcode'](_0x5d4bac,_0x5b6c74,{'sampleRate':0x1f40,'format':_0x6dad('0x64'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x3c4d60['on'](_0x6dad('0x2a'),function(_0x27d1a1){fs[_0x6dad('0x65')](_0x5d4bac);_0x539574[_0x6dad('0x1a')](0x1f4)[_0x6dad('0x2d')](_0x27d1a1);});_0x3c4d60['on'](_0x6dad('0x66'),function(_0x5e2c56){_0x33a90f[_0x6dad('0x67')]=isNaN(_0x5e2c56[_0x6dad('0x68')])?null:_0x5e2c56['duration']*0x3e8;_0x33a90f[_0x6dad('0x69')]=isNaN(_0x5e2c56[_0x6dad('0x6a')])?null:_0x5e2c56[_0x6dad('0x6a')];_0x33a90f[_0x6dad('0x6b')]=isNaN(_0x5e2c56[_0x6dad('0x6c')])?null:_0x5e2c56['channelCount'];_0x33a90f['original_bitRate']=isNaN(_0x5e2c56[_0x6dad('0x6d')])?null:_0x5e2c56[_0x6dad('0x6d')];_0x33a90f[_0x6dad('0x6e')]=isNaN(_0x5e2c56['sampleRate'])?null:_0x5e2c56[_0x6dad('0x6f')];});_0x3c4d60['on']('dest',function(_0x57b29d){_0x33a90f[_0x6dad('0x70')]=isNaN(_0x57b29d['duration'])?null:_0x57b29d[_0x6dad('0x68')]*0x3e8;_0x33a90f[_0x6dad('0x71')]=isNaN(_0x57b29d[_0x6dad('0x6a')])?null:_0x57b29d['sampleCount'];_0x33a90f[_0x6dad('0x72')]=isNaN(_0x57b29d[_0x6dad('0x6c')])?null:_0x57b29d[_0x6dad('0x6c')];_0x33a90f[_0x6dad('0x73')]=isNaN(_0x57b29d['bitRate'])?null:_0x57b29d['bitRate'];_0x33a90f[_0x6dad('0x74')]=isNaN(_0x57b29d[_0x6dad('0x6f')])?null:_0x57b29d['sampleRate'];});_0x3c4d60['on'](_0x6dad('0x28'),function(){fs[_0x6dad('0x75')](_0x5b6c74,parseInt(_0x6dad('0x63'),0x8));return db['Sound'][_0x6dad('0x59')](_0x33a90f)[_0x6dad('0x25')](function(_0x3c9e25){var _0x20a694={'role':_0x37b45f[_0x6dad('0x76')]['role'],'userProfileId':_0x37b45f[_0x6dad('0x76')][_0x6dad('0x77')]};if(!_0x20a694)throw new Error(_0x6dad('0x78'));if(_0x20a694[_0x6dad('0x79')]===_0x6dad('0x7a')){var _0x5e171e=_0x3c9e25['get']({'plain':!![]});return db[_0x6dad('0x7b')][_0x6dad('0x4d')]({'where':{'name':_0x6dad('0x26'),'userProfileId':_0x20a694[_0x6dad('0x77')]},'raw':!![]})[_0x6dad('0x25')](function(_0x544a76){if(_0x544a76&&_0x544a76[_0x6dad('0x7c')]===0x0){return db['UserProfileResource'][_0x6dad('0x59')]({'name':_0x5e171e[_0x6dad('0x2c')],'resourceId':_0x5e171e['id'],'type':_0x544a76[_0x6dad('0x2c')],'sectionId':_0x544a76['id']},{})[_0x6dad('0x25')](function(){return _0x3c9e25;});}else{return _0x3c9e25;}})[_0x6dad('0x48')](function(_0x200247){logger[_0x6dad('0x2a')](_0x6dad('0x7d'),_0x200247);throw _0x200247;});}return _0x3c9e25;})[_0x6dad('0x25')](respondWithResult(_0x539574,null))[_0x6dad('0x48')](handleError(_0x539574,null));});_0x3c4d60[_0x6dad('0x7e')]();}catch(_0x10a28c){_0x539574[_0x6dad('0x1a')](0x1f4)[_0x6dad('0x2d')](_0x10a28c);}};exports[_0x6dad('0x24')]=function(_0x332ee9,_0x2576cd,_0x4b5636){return db[_0x6dad('0x30')][_0x6dad('0x4d')]({'where':{'id':_0x332ee9[_0x6dad('0x4a')]['id']}})[_0x6dad('0x25')](handleEntityNotFound(_0x2576cd,null))['then'](saveUpdates(_[_0x6dad('0x7f')](_0x332ee9[_0x6dad('0x76')],[_0x6dad('0x2c'),'description']),null))['then'](respondWithResult(_0x2576cd,null))[_0x6dad('0x48')](handleError(_0x2576cd,null));};exports[_0x6dad('0x80')]=function(_0x1917e6,_0x47ec06,_0x1438ba){return db[_0x6dad('0x30')]['find']({'where':{'id':_0x1917e6[_0x6dad('0x4a')]['id']}})[_0x6dad('0x25')](function(_0x448e65){if(_0x448e65){return _0x448e65[_0x6dad('0x81')]();}})[_0x6dad('0x25')](function(_0x2534c3){var _0x8b224a=path[_0x6dad('0x55')](config[_0x6dad('0x50')],_0x6dad('0x82'),util[_0x6dad('0x57')](_0x6dad('0x58'),_0x2534c3['save_name'],_0x2534c3['original_format']));var _0x2cc8c8=path[_0x6dad('0x55')](config[_0x6dad('0x50')],_0x6dad('0x56'),util['format'](_0x6dad('0x58'),_0x2534c3[_0x6dad('0x51')],_0x2534c3['converted_format']));fs[_0x6dad('0x65')](_0x8b224a);fs['unlinkSync'](_0x2cc8c8);return _0x2534c3;})[_0x6dad('0x25')](function(_0x596677){if(_0x596677){return _0x47ec06[_0x6dad('0x1a')](0xcc)['end']();}})[_0x6dad('0x25')](handleEntityNotFound(_0x47ec06,null))['catch'](handleError(_0x47ec06,null));};