a83523f849bc8d93933e3150e360f2a2059ff7b6
[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 _0x233d=['VIRTUAL','filter','include','findAll','catch','show','params','options','find','save_name','converted_format','root','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','download','join','format','%s.%s','basename','originalname','file','filename','extname','substring','wav','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','unlinkSync','src','original_duration','duration','sampleCount','channelCount','original_sampleRate','dest','converted_duration','converted_bitRate','bitRate','converted_sampleRate','sampleRate','chmodSync','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','status','end','json','count','offset','limit','set','Content-Range','reject','update','then','destroy','Sounds','UserProfileResource','sendStatus','error','stack','send','index','map','Sound','rawAttributes','key','model','name','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','merge','type'];(function(_0x51ec85,_0x46832c){var _0x59f6e8=function(_0x1deccd){while(--_0x1deccd){_0x51ec85['push'](_0x51ec85['shift']());}};_0x59f6e8(++_0x46832c);}(_0x233d,0x12c));var _0xd233=function(_0x967959,_0x53c5c1){_0x967959=_0x967959-0x0;var _0x5c4489=_0x233d[_0x967959];return _0x5c4489;};'use strict';var pdf=require(_0xd233('0x0'));var emlformat=require(_0xd233('0x1'));var rimraf=require(_0xd233('0x2'));var zipdir=require(_0xd233('0x3'));var jsonpatch=require(_0xd233('0x4'));var rp=require(_0xd233('0x5'));var moment=require(_0xd233('0x6'));var BPromise=require(_0xd233('0x7'));var Mustache=require('mustache');var util=require(_0xd233('0x8'));var path=require(_0xd233('0x9'));var sox=require(_0xd233('0xa'));var csv=require(_0xd233('0xb'));var ejs=require(_0xd233('0xc'));var fs=require('fs');var _=require(_0xd233('0xd'));var squel=require('squel');var crypto=require(_0xd233('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xd233('0xf'));var toCsv=require(_0xd233('0xb'));var querystring=require(_0xd233('0x10'));var Papa=require(_0xd233('0x11'));var Redis=require(_0xd233('0x12'));var authService=require(_0xd233('0x13'));var qs=require(_0xd233('0x14'));var as=require(_0xd233('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xd233('0x16'));var utils=require(_0xd233('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xd233('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xdeabe5,_0x2bd4ab){_0x2bd4ab=_0x2bd4ab||0xcc;return function(_0x35c12d){if(_0x35c12d){return _0xdeabe5['sendStatus'](_0x2bd4ab);}return _0xdeabe5[_0xd233('0x19')](_0x2bd4ab)[_0xd233('0x1a')]();};}function respondWithResult(_0x1cd78d,_0x547f9e){_0x547f9e=_0x547f9e||0xc8;return function(_0x23cdf2){if(_0x23cdf2){return _0x1cd78d[_0xd233('0x19')](_0x547f9e)[_0xd233('0x1b')](_0x23cdf2);}};}function respondWithFilteredResult(_0x277146,_0x1023ef){return function(_0x1ce949){if(_0x1ce949){var _0x2d7d3f=_0x1ce949[_0xd233('0x1c')],_0x1e54d7=_0x1023ef['offset'],_0x48ba3c=_0x1023ef[_0xd233('0x1d')]+_0x1023ef[_0xd233('0x1e')],_0x20006e;if(_0x48ba3c>=_0x2d7d3f){_0x48ba3c=_0x2d7d3f;_0x20006e=0xc8;}else{_0x20006e=0xce;}_0x277146[_0xd233('0x19')](_0x20006e);return _0x277146[_0xd233('0x1f')](_0xd233('0x20'),_0x1e54d7+'-'+_0x48ba3c+'/'+_0x2d7d3f)['json'](_0x1ce949);}return null;};}function patchUpdates(_0x3bf6d3){return function(_0x523746){try{jsonpatch['apply'](_0x523746,_0x3bf6d3,!![]);}catch(_0x1f955b){return BPromise[_0xd233('0x21')](_0x1f955b);}return _0x523746['save']();};}function saveUpdates(_0x3aa30e,_0x2b896f){return function(_0x6975e4){if(_0x6975e4){return _0x6975e4[_0xd233('0x22')](_0x3aa30e)[_0xd233('0x23')](function(_0xce9a65){return _0xce9a65;});}return null;};}function removeEntity(_0x58030f,_0x3d2c0b){return function(_0x4d9ae5){if(_0x4d9ae5){return _0x4d9ae5[_0xd233('0x24')]()['then'](function(){var _0x47e656=_0x4d9ae5['get']({'plain':!![]});var _0x51c838=_0xd233('0x25');return db[_0xd233('0x26')][_0xd233('0x24')]({'where':{'type':_0x51c838,'resourceId':_0x47e656['id']}})[_0xd233('0x23')](function(){return _0x4d9ae5;});})[_0xd233('0x23')](function(){_0x58030f['status'](0xcc)[_0xd233('0x1a')]();});}};}function handleEntityNotFound(_0x2b8962,_0x101147){return function(_0x32047f){if(!_0x32047f){_0x2b8962[_0xd233('0x27')](0x194);}return _0x32047f;};}function handleError(_0x487052,_0x574587){_0x574587=_0x574587||0x1f4;return function(_0x13ef07){logger[_0xd233('0x28')](_0x13ef07[_0xd233('0x29')]);if(_0x13ef07['name']){delete _0x13ef07['name'];}_0x487052[_0xd233('0x19')](_0x574587)[_0xd233('0x2a')](_0x13ef07);};}exports[_0xd233('0x2b')]=function(_0x2a38ff,_0x107b4a){var _0x276bf2={},_0x4e1d5a={},_0x50e83d={'count':0x0,'rows':[]};var _0x3b6d48=_[_0xd233('0x2c')](db[_0xd233('0x2d')][_0xd233('0x2e')],function(_0xb48836){return{'name':_0xb48836['fieldName'],'type':_0xb48836['type'][_0xd233('0x2f')]};});_0x4e1d5a[_0xd233('0x30')]=_[_0xd233('0x2c')](_0x3b6d48,_0xd233('0x31'));_0x4e1d5a[_0xd233('0x32')]=_[_0xd233('0x33')](_0x2a38ff[_0xd233('0x32')]);_0x4e1d5a[_0xd233('0x34')]=_[_0xd233('0x35')](_0x4e1d5a[_0xd233('0x30')],_0x4e1d5a[_0xd233('0x32')]);_0x276bf2[_0xd233('0x36')]=_[_0xd233('0x35')](_0x4e1d5a[_0xd233('0x30')],qs[_0xd233('0x37')](_0x2a38ff[_0xd233('0x32')][_0xd233('0x37')]));_0x276bf2[_0xd233('0x36')]=_0x276bf2[_0xd233('0x36')][_0xd233('0x38')]?_0x276bf2[_0xd233('0x36')]:_0x4e1d5a[_0xd233('0x30')];if(!_0x2a38ff['query']['hasOwnProperty']('nolimit')){_0x276bf2[_0xd233('0x1e')]=qs['limit'](_0x2a38ff[_0xd233('0x32')]['limit']);_0x276bf2[_0xd233('0x1d')]=qs['offset'](_0x2a38ff[_0xd233('0x32')]['offset']);}_0x276bf2[_0xd233('0x39')]=qs[_0xd233('0x3a')](_0x2a38ff['query']['sort']);_0x276bf2[_0xd233('0x3b')]=qs[_0xd233('0x34')](_[_0xd233('0x3c')](_0x2a38ff[_0xd233('0x32')],_0x4e1d5a[_0xd233('0x34')]),_0x3b6d48);if(_0x2a38ff['query']['filter']){_0x276bf2[_0xd233('0x3b')]=_[_0xd233('0x3d')](_0x276bf2[_0xd233('0x3b')],{'$or':_[_0xd233('0x2c')](_0x3b6d48,function(_0x4b6f25){if(_0x4b6f25[_0xd233('0x3e')]!==_0xd233('0x3f')){var _0x4e271a={};_0x4e271a[_0x4b6f25[_0xd233('0x31')]]={'$like':'%'+_0x2a38ff[_0xd233('0x32')][_0xd233('0x40')]+'%'};return _0x4e271a;}})});}_0x276bf2=_[_0xd233('0x3d')]({},_0x276bf2,_0x2a38ff['options']);var _0x3152c0={'where':_0x276bf2[_0xd233('0x3b')]};return db['Sound'][_0xd233('0x1c')](_0x3152c0)[_0xd233('0x23')](function(_0x40d458){_0x50e83d[_0xd233('0x1c')]=_0x40d458;if(_0x2a38ff[_0xd233('0x32')]['includeAll']){_0x276bf2[_0xd233('0x41')]=[{'all':!![]}];}return db[_0xd233('0x2d')][_0xd233('0x42')](_0x276bf2);})[_0xd233('0x23')](function(_0x4c3d40){_0x50e83d['rows']=_0x4c3d40;return _0x50e83d;})[_0xd233('0x23')](respondWithFilteredResult(_0x107b4a,_0x276bf2))[_0xd233('0x43')](handleError(_0x107b4a,null));};exports[_0xd233('0x44')]=function(_0x2faf85,_0x3d0e13){var _0x2cbc2d={'raw':!![],'where':{'id':_0x2faf85[_0xd233('0x45')]['id']}},_0x2108ed={};_0x2108ed[_0xd233('0x30')]=_[_0xd233('0x33')](db[_0xd233('0x2d')][_0xd233('0x2e')]);_0x2108ed['query']=_[_0xd233('0x33')](_0x2faf85[_0xd233('0x32')]);_0x2108ed[_0xd233('0x34')]=_['intersection'](_0x2108ed['model'],_0x2108ed[_0xd233('0x32')]);_0x2cbc2d[_0xd233('0x36')]=_[_0xd233('0x35')](_0x2108ed['model'],qs[_0xd233('0x37')](_0x2faf85[_0xd233('0x32')]['fields']));_0x2cbc2d['attributes']=_0x2cbc2d[_0xd233('0x36')]['length']?_0x2cbc2d[_0xd233('0x36')]:_0x2108ed[_0xd233('0x30')];if(_0x2faf85[_0xd233('0x32')]['includeAll']){_0x2cbc2d[_0xd233('0x41')]=[{'all':!![]}];}_0x2cbc2d=_[_0xd233('0x3d')]({},_0x2cbc2d,_0x2faf85[_0xd233('0x46')]);return db['Sound'][_0xd233('0x47')](_0x2cbc2d)[_0xd233('0x23')](handleEntityNotFound(_0x3d0e13,null))[_0xd233('0x23')](respondWithResult(_0x3d0e13,null))[_0xd233('0x43')](handleError(_0x3d0e13,null));};exports['download']=function(_0x41a291,_0x370607,_0x50c3c5){return db['Sound'][_0xd233('0x47')]({'where':{'id':_0x41a291[_0xd233('0x45')]['id']},'attributes':[_0xd233('0x31'),_0xd233('0x48'),_0xd233('0x49')],'raw':!![]})[_0xd233('0x23')](handleEntityNotFound(_0x370607,null))[_0xd233('0x23')](function(_0xfd0c57){if(_0xfd0c57){if(!fs['existsSync'](path['join'](config[_0xd233('0x4a')],_0xd233('0x4b'),_0xfd0c57[_0xd233('0x48')]+'.'+_0xfd0c57[_0xd233('0x49')]))){throw new db[(_0xd233('0x4c'))][(_0xd233('0x4d'))](_0xd233('0x4e'));}return _0x370607[_0xd233('0x4f')](path[_0xd233('0x50')](config[_0xd233('0x4a')],_0xd233('0x4b'),util[_0xd233('0x51')](_0xd233('0x52'),_0xfd0c57['save_name'],_0xfd0c57[_0xd233('0x49')])),util[_0xd233('0x51')](_0xd233('0x52'),_0xfd0c57['name'],_0xfd0c57['converted_format']));}return null;})[_0xd233('0x43')](handleError(_0x370607,null));};exports['create']=function(_0x30a0e2,_0x5716b3,_0x26316a){var _0x53165c={'name':path[_0xd233('0x53')](_0x30a0e2['file'][_0xd233('0x54')],path['extname'](_0x30a0e2[_0xd233('0x55')]['originalname'])),'save_name':path['basename'](_0x30a0e2[_0xd233('0x55')][_0xd233('0x56')],path['extname'](_0x30a0e2[_0xd233('0x55')][_0xd233('0x56')])),'original_format':path[_0xd233('0x57')](_0x30a0e2[_0xd233('0x55')]['originalname'])[_0xd233('0x58')](0x1),'converted_format':_0xd233('0x59')};var _0x1f685d=path[_0xd233('0x50')](config[_0xd233('0x4a')],'server/files/sounds/original',_0x30a0e2[_0xd233('0x55')]['filename']);var _0x1c3455=path[_0xd233('0x50')](config[_0xd233('0x4a')],_0xd233('0x4b'),util[_0xd233('0x51')]('%s.%s',path['basename'](_0x30a0e2[_0xd233('0x55')][_0xd233('0x56')],path[_0xd233('0x57')](_0x30a0e2[_0xd233('0x55')][_0xd233('0x56')])),_0x53165c[_0xd233('0x49')]));logger[_0xd233('0x5a')](_0xd233('0x5b'),_0x1f685d);logger['info'](_0xd233('0x5c'),_0x1c3455);try{fs['chmodSync'](_0x1f685d,parseInt(_0xd233('0x5d'),0x8));var _0x2a833f=sox['transcode'](_0x1f685d,_0x1c3455,{'sampleRate':0x1f40,'format':_0xd233('0x59'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x2a833f['on'](_0xd233('0x28'),function(_0x3f4d7e){fs[_0xd233('0x5e')](_0x1f685d);_0x5716b3['status'](0x1f4)[_0xd233('0x2a')](_0x3f4d7e);});_0x2a833f['on'](_0xd233('0x5f'),function(_0x37af86){_0x53165c[_0xd233('0x60')]=isNaN(_0x37af86[_0xd233('0x61')])?null:_0x37af86[_0xd233('0x61')]*0x3e8;_0x53165c['original_sampleCount']=isNaN(_0x37af86[_0xd233('0x62')])?null:_0x37af86[_0xd233('0x62')];_0x53165c['original_channelCount']=isNaN(_0x37af86[_0xd233('0x63')])?null:_0x37af86[_0xd233('0x63')];_0x53165c['original_bitRate']=isNaN(_0x37af86['bitRate'])?null:_0x37af86['bitRate'];_0x53165c[_0xd233('0x64')]=isNaN(_0x37af86['sampleRate'])?null:_0x37af86['sampleRate'];});_0x2a833f['on'](_0xd233('0x65'),function(_0x331e4b){_0x53165c[_0xd233('0x66')]=isNaN(_0x331e4b[_0xd233('0x61')])?null:_0x331e4b[_0xd233('0x61')]*0x3e8;_0x53165c['converted_sampleCount']=isNaN(_0x331e4b[_0xd233('0x62')])?null:_0x331e4b[_0xd233('0x62')];_0x53165c['converted_channelCount']=isNaN(_0x331e4b[_0xd233('0x63')])?null:_0x331e4b[_0xd233('0x63')];_0x53165c[_0xd233('0x67')]=isNaN(_0x331e4b[_0xd233('0x68')])?null:_0x331e4b[_0xd233('0x68')];_0x53165c[_0xd233('0x69')]=isNaN(_0x331e4b[_0xd233('0x6a')])?null:_0x331e4b[_0xd233('0x6a')];});_0x2a833f['on'](_0xd233('0x1a'),function(){fs[_0xd233('0x6b')](_0x1c3455,parseInt(_0xd233('0x5d'),0x8));return db['Sound'][_0xd233('0x6c')](_0x53165c)[_0xd233('0x23')](function(_0x1b3f0c){var _0x4a15e2={'role':_0x30a0e2[_0xd233('0x6d')][_0xd233('0x6e')],'userProfileId':_0x30a0e2['body'][_0xd233('0x6f')]};if(!_0x4a15e2)throw new Error(_0xd233('0x70'));if(_0x4a15e2[_0xd233('0x6e')]===_0xd233('0x71')){var _0x561fe7=_0x1b3f0c[_0xd233('0x72')]({'plain':!![]});return db[_0xd233('0x73')]['find']({'where':{'name':_0xd233('0x25'),'userProfileId':_0x4a15e2['userProfileId']},'raw':!![]})['then'](function(_0x46176d){if(_0x46176d&&_0x46176d[_0xd233('0x74')]===0x0){return db[_0xd233('0x26')][_0xd233('0x6c')]({'name':_0x561fe7[_0xd233('0x31')],'resourceId':_0x561fe7['id'],'type':_0x46176d[_0xd233('0x31')],'sectionId':_0x46176d['id']},{})[_0xd233('0x23')](function(){return _0x1b3f0c;});}else{return _0x1b3f0c;}})['catch'](function(_0x47b6b8){logger[_0xd233('0x28')](_0xd233('0x75'),_0x47b6b8);throw _0x47b6b8;});}return _0x1b3f0c;})['then'](respondWithResult(_0x5716b3,null))[_0xd233('0x43')](handleError(_0x5716b3,null));});_0x2a833f[_0xd233('0x76')]();}catch(_0xd49bca){_0x5716b3[_0xd233('0x19')](0x1f4)[_0xd233('0x2a')](_0xd49bca);}};exports[_0xd233('0x22')]=function(_0x2dbbd4,_0x400f22,_0x37dc7f){return db[_0xd233('0x2d')][_0xd233('0x47')]({'where':{'id':_0x2dbbd4[_0xd233('0x45')]['id']}})['then'](handleEntityNotFound(_0x400f22,null))[_0xd233('0x23')](saveUpdates(_[_0xd233('0x3c')](_0x2dbbd4['body'],[_0xd233('0x31'),_0xd233('0x77')]),null))[_0xd233('0x23')](respondWithResult(_0x400f22,null))[_0xd233('0x43')](handleError(_0x400f22,null));};exports[_0xd233('0x78')]=function(_0x154bb8,_0x41de04,_0x7c1115){return db['Sound'][_0xd233('0x47')]({'where':{'id':_0x154bb8[_0xd233('0x45')]['id']}})[_0xd233('0x23')](function(_0x55fd8e){if(_0x55fd8e){return _0x55fd8e['destroy']();}})['then'](function(_0x277c8a){var _0x2efafd=path[_0xd233('0x50')](config['root'],'server/files/sounds/original',util[_0xd233('0x51')]('%s.%s',_0x277c8a['save_name'],_0x277c8a['original_format']));var _0x57335e=path[_0xd233('0x50')](config[_0xd233('0x4a')],_0xd233('0x4b'),util[_0xd233('0x51')](_0xd233('0x52'),_0x277c8a['save_name'],_0x277c8a['converted_format']));fs[_0xd233('0x5e')](_0x2efafd);fs[_0xd233('0x5e')](_0x57335e);return _0x277c8a;})[_0xd233('0x23')](function(_0x486747){if(_0x486747){return _0x41de04[_0xd233('0x19')](0xcc)[_0xd233('0x1a')]();}})[_0xd233('0x23')](handleEntityNotFound(_0x41de04,null))[_0xd233('0x43')](handleError(_0x41de04,null));};