Built motion from commit (unavailable).|2.5.28
[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 _0xb13f=['filter','merge','options','includeAll','include','findAll','rows','catch','show','find','download','params','save_name','converted_format','existsSync','join','root','Sequelize','ValidationError','Sound\x20not\x20found','server/files/sounds/converted','format','%s.%s','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','transcode','error','unlinkSync','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','converted_sampleRate','create','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','delete','original_format','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','save','update','destroy','then','get','Sounds','stack','name','send','index','map','Sound','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters'];(function(_0x435dde,_0x2a2fa3){var _0x4aca2d=function(_0x283a96){while(--_0x283a96){_0x435dde['push'](_0x435dde['shift']());}};_0x4aca2d(++_0x2a2fa3);}(_0xb13f,0xb8));var _0xfb13=function(_0x4982cb,_0x2b244d){_0x4982cb=_0x4982cb-0x0;var _0x5898f6=_0xb13f[_0x4982cb];return _0x5898f6;};'use strict';var emlformat=require(_0xfb13('0x0'));var rimraf=require(_0xfb13('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfb13('0x2'));var rp=require(_0xfb13('0x3'));var moment=require(_0xfb13('0x4'));var BPromise=require(_0xfb13('0x5'));var Mustache=require(_0xfb13('0x6'));var util=require(_0xfb13('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xfb13('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfb13('0x9'));var _=require('lodash');var squel=require(_0xfb13('0xa'));var crypto=require(_0xfb13('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xfb13('0xc'));var toCsv=require('to-csv');var querystring=require(_0xfb13('0xd'));var Papa=require(_0xfb13('0xe'));var Redis=require(_0xfb13('0xf'));var authService=require(_0xfb13('0x10'));var qs=require(_0xfb13('0x11'));var as=require(_0xfb13('0x12'));var hardwareService=require(_0xfb13('0x13'));var logger=require(_0xfb13('0x14'))(_0xfb13('0x15'));var utils=require('../../config/utils');var config=require(_0xfb13('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xfb13('0x17'))['db'];function respondWithStatusCode(_0x3c0389,_0x32bca1){_0x32bca1=_0x32bca1||0xcc;return function(_0x2109cd){if(_0x2109cd){return _0x3c0389[_0xfb13('0x18')](_0x32bca1);}return _0x3c0389['status'](_0x32bca1)[_0xfb13('0x19')]();};}function respondWithResult(_0x2c35f6,_0x1f8b0f){_0x1f8b0f=_0x1f8b0f||0xc8;return function(_0xd115e4){if(_0xd115e4){return _0x2c35f6[_0xfb13('0x1a')](_0x1f8b0f)[_0xfb13('0x1b')](_0xd115e4);}};}function respondWithFilteredResult(_0x5003ff,_0x1219bd){return function(_0x597fb8){if(_0x597fb8){var _0x226012=_0x597fb8[_0xfb13('0x1c')],_0x38ad38=_0x1219bd[_0xfb13('0x1d')],_0x3e7b07=_0x1219bd['offset']+_0x1219bd[_0xfb13('0x1e')],_0x451a5c;if(_0x3e7b07>=_0x226012){_0x3e7b07=_0x226012;_0x451a5c=0xc8;}else{_0x451a5c=0xce;}_0x5003ff[_0xfb13('0x1a')](_0x451a5c);return _0x5003ff[_0xfb13('0x1f')](_0xfb13('0x20'),_0x38ad38+'-'+_0x3e7b07+'/'+_0x226012)['json'](_0x597fb8);}return null;};}function patchUpdates(_0x283d01){return function(_0x4c56db){try{jsonpatch[_0xfb13('0x21')](_0x4c56db,_0x283d01,!![]);}catch(_0x43b79d){return BPromise['reject'](_0x43b79d);}return _0x4c56db[_0xfb13('0x22')]();};}function saveUpdates(_0x25e7b3,_0x45e9a4){return function(_0x3ff303){if(_0x3ff303){return _0x3ff303[_0xfb13('0x23')](_0x25e7b3)['then'](function(_0x17090e){return _0x17090e;});}return null;};}function removeEntity(_0x5484a3,_0x31f03b){return function(_0x281c91){if(_0x281c91){return _0x281c91[_0xfb13('0x24')]()[_0xfb13('0x25')](function(){var _0x2068ed=_0x281c91[_0xfb13('0x26')]({'plain':!![]});var _0x30f875=_0xfb13('0x27');return db['UserProfileResource'][_0xfb13('0x24')]({'where':{'type':_0x30f875,'resourceId':_0x2068ed['id']}})[_0xfb13('0x25')](function(){return _0x281c91;});})[_0xfb13('0x25')](function(){_0x5484a3['status'](0xcc)[_0xfb13('0x19')]();});}};}function handleEntityNotFound(_0x3d6000,_0x15d566){return function(_0x3a6b52){if(!_0x3a6b52){_0x3d6000[_0xfb13('0x18')](0x194);}return _0x3a6b52;};}function handleError(_0x5ae672,_0x1543fa){_0x1543fa=_0x1543fa||0x1f4;return function(_0x406e38){logger['error'](_0x406e38[_0xfb13('0x28')]);if(_0x406e38[_0xfb13('0x29')]){delete _0x406e38[_0xfb13('0x29')];}_0x5ae672['status'](_0x1543fa)[_0xfb13('0x2a')](_0x406e38);};}exports[_0xfb13('0x2b')]=function(_0x4ab55a,_0x24533c){var _0x1fb7a3={},_0x189d56={},_0x586a70={'count':0x0,'rows':[]};var _0x25beb4=_[_0xfb13('0x2c')](db[_0xfb13('0x2d')]['rawAttributes'],function(_0x5dc191){return{'name':_0x5dc191['fieldName'],'type':_0x5dc191[_0xfb13('0x2e')][_0xfb13('0x2f')]};});_0x189d56[_0xfb13('0x30')]=_['map'](_0x25beb4,_0xfb13('0x29'));_0x189d56['query']=_[_0xfb13('0x31')](_0x4ab55a[_0xfb13('0x32')]);_0x189d56['filters']=_[_0xfb13('0x33')](_0x189d56[_0xfb13('0x30')],_0x189d56['query']);_0x1fb7a3[_0xfb13('0x34')]=_[_0xfb13('0x33')](_0x189d56['model'],qs[_0xfb13('0x35')](_0x4ab55a['query'][_0xfb13('0x35')]));_0x1fb7a3[_0xfb13('0x34')]=_0x1fb7a3[_0xfb13('0x34')][_0xfb13('0x36')]?_0x1fb7a3[_0xfb13('0x34')]:_0x189d56['model'];if(!_0x4ab55a['query'][_0xfb13('0x37')](_0xfb13('0x38'))){_0x1fb7a3[_0xfb13('0x1e')]=qs[_0xfb13('0x1e')](_0x4ab55a['query']['limit']);_0x1fb7a3['offset']=qs['offset'](_0x4ab55a[_0xfb13('0x32')]['offset']);}_0x1fb7a3[_0xfb13('0x39')]=qs['sort'](_0x4ab55a['query'][_0xfb13('0x3a')]);_0x1fb7a3[_0xfb13('0x3b')]=qs['filters'](_[_0xfb13('0x3c')](_0x4ab55a[_0xfb13('0x32')],_0x189d56[_0xfb13('0x3d')]),_0x25beb4);if(_0x4ab55a['query'][_0xfb13('0x3e')]){_0x1fb7a3[_0xfb13('0x3b')]=_[_0xfb13('0x3f')](_0x1fb7a3[_0xfb13('0x3b')],{'$or':_[_0xfb13('0x2c')](_0x25beb4,function(_0x23a7d7){if(_0x23a7d7[_0xfb13('0x2e')]!=='VIRTUAL'){var _0xf2e489={};_0xf2e489[_0x23a7d7['name']]={'$like':'%'+_0x4ab55a[_0xfb13('0x32')][_0xfb13('0x3e')]+'%'};return _0xf2e489;}})});}_0x1fb7a3=_[_0xfb13('0x3f')]({},_0x1fb7a3,_0x4ab55a[_0xfb13('0x40')]);var _0xd96acc={'where':_0x1fb7a3[_0xfb13('0x3b')]};return db[_0xfb13('0x2d')]['count'](_0xd96acc)[_0xfb13('0x25')](function(_0x546d43){_0x586a70[_0xfb13('0x1c')]=_0x546d43;if(_0x4ab55a[_0xfb13('0x32')][_0xfb13('0x41')]){_0x1fb7a3[_0xfb13('0x42')]=[{'all':!![]}];}return db[_0xfb13('0x2d')][_0xfb13('0x43')](_0x1fb7a3);})['then'](function(_0x34bb96){_0x586a70[_0xfb13('0x44')]=_0x34bb96;return _0x586a70;})[_0xfb13('0x25')](respondWithFilteredResult(_0x24533c,_0x1fb7a3))[_0xfb13('0x45')](handleError(_0x24533c,null));};exports[_0xfb13('0x46')]=function(_0x48c785,_0x4f0a4f){var _0x4ddb24={'raw':!![],'where':{'id':_0x48c785['params']['id']}},_0x198a4d={};_0x198a4d[_0xfb13('0x30')]=_[_0xfb13('0x31')](db[_0xfb13('0x2d')]['rawAttributes']);_0x198a4d['query']=_[_0xfb13('0x31')](_0x48c785[_0xfb13('0x32')]);_0x198a4d['filters']=_['intersection'](_0x198a4d[_0xfb13('0x30')],_0x198a4d[_0xfb13('0x32')]);_0x4ddb24[_0xfb13('0x34')]=_['intersection'](_0x198a4d['model'],qs[_0xfb13('0x35')](_0x48c785[_0xfb13('0x32')]['fields']));_0x4ddb24[_0xfb13('0x34')]=_0x4ddb24[_0xfb13('0x34')]['length']?_0x4ddb24[_0xfb13('0x34')]:_0x198a4d[_0xfb13('0x30')];if(_0x48c785[_0xfb13('0x32')][_0xfb13('0x41')]){_0x4ddb24[_0xfb13('0x42')]=[{'all':!![]}];}_0x4ddb24=_[_0xfb13('0x3f')]({},_0x4ddb24,_0x48c785[_0xfb13('0x40')]);return db[_0xfb13('0x2d')][_0xfb13('0x47')](_0x4ddb24)[_0xfb13('0x25')](handleEntityNotFound(_0x4f0a4f,null))[_0xfb13('0x25')](respondWithResult(_0x4f0a4f,null))[_0xfb13('0x45')](handleError(_0x4f0a4f,null));};exports[_0xfb13('0x48')]=function(_0x190e9d,_0x4da459,_0x127df0){return db[_0xfb13('0x2d')][_0xfb13('0x47')]({'where':{'id':_0x190e9d[_0xfb13('0x49')]['id']},'attributes':[_0xfb13('0x29'),_0xfb13('0x4a'),_0xfb13('0x4b')],'raw':!![]})[_0xfb13('0x25')](handleEntityNotFound(_0x4da459,null))['then'](function(_0x38c733){if(_0x38c733){if(!fs[_0xfb13('0x4c')](path[_0xfb13('0x4d')](config[_0xfb13('0x4e')],'server/files/sounds/converted',_0x38c733[_0xfb13('0x4a')]+'.'+_0x38c733[_0xfb13('0x4b')]))){throw new db[(_0xfb13('0x4f'))][(_0xfb13('0x50'))](_0xfb13('0x51'));}return _0x4da459[_0xfb13('0x48')](path[_0xfb13('0x4d')](config[_0xfb13('0x4e')],_0xfb13('0x52'),util[_0xfb13('0x53')](_0xfb13('0x54'),_0x38c733[_0xfb13('0x4a')],_0x38c733[_0xfb13('0x4b')])),util[_0xfb13('0x53')](_0xfb13('0x54'),_0x38c733[_0xfb13('0x29')],_0x38c733[_0xfb13('0x4b')]));}return null;})[_0xfb13('0x45')](handleError(_0x4da459,null));};exports['create']=function(_0x436978,_0x269f0d,_0x3ab008){var _0x765146={'name':path[_0xfb13('0x55')](_0x436978[_0xfb13('0x56')][_0xfb13('0x57')],path[_0xfb13('0x58')](_0x436978[_0xfb13('0x56')][_0xfb13('0x57')])),'save_name':path['basename'](_0x436978[_0xfb13('0x56')][_0xfb13('0x59')],path[_0xfb13('0x58')](_0x436978[_0xfb13('0x56')][_0xfb13('0x59')])),'original_format':path[_0xfb13('0x58')](_0x436978[_0xfb13('0x56')][_0xfb13('0x57')])[_0xfb13('0x5a')](0x1),'converted_format':_0xfb13('0x5b')};var _0x1fe1a6=path[_0xfb13('0x4d')](config[_0xfb13('0x4e')],_0xfb13('0x5c'),_0x436978[_0xfb13('0x56')][_0xfb13('0x59')]);var _0x5598aa=path[_0xfb13('0x4d')](config['root'],_0xfb13('0x52'),util['format'](_0xfb13('0x54'),path[_0xfb13('0x55')](_0x436978[_0xfb13('0x56')][_0xfb13('0x59')],path[_0xfb13('0x58')](_0x436978[_0xfb13('0x56')][_0xfb13('0x59')])),_0x765146[_0xfb13('0x4b')]));logger[_0xfb13('0x5d')](_0xfb13('0x5e'),_0x1fe1a6);logger['info'](_0xfb13('0x5f'),_0x5598aa);try{fs['chmodSync'](_0x1fe1a6,parseInt(_0xfb13('0x60'),0x8));var _0x206390=sox[_0xfb13('0x61')](_0x1fe1a6,_0x5598aa,{'sampleRate':0x1f40,'format':_0xfb13('0x5b'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x206390['on'](_0xfb13('0x62'),function(_0x56fcae){fs[_0xfb13('0x63')](_0x1fe1a6);_0x269f0d[_0xfb13('0x1a')](0x1f4)[_0xfb13('0x2a')](_0x56fcae);});_0x206390['on']('src',function(_0x24bbf8){_0x765146[_0xfb13('0x64')]=isNaN(_0x24bbf8[_0xfb13('0x65')])?null:_0x24bbf8[_0xfb13('0x65')]*0x3e8;_0x765146[_0xfb13('0x66')]=isNaN(_0x24bbf8[_0xfb13('0x67')])?null:_0x24bbf8[_0xfb13('0x67')];_0x765146[_0xfb13('0x68')]=isNaN(_0x24bbf8[_0xfb13('0x69')])?null:_0x24bbf8[_0xfb13('0x69')];_0x765146['original_bitRate']=isNaN(_0x24bbf8[_0xfb13('0x6a')])?null:_0x24bbf8[_0xfb13('0x6a')];_0x765146[_0xfb13('0x6b')]=isNaN(_0x24bbf8[_0xfb13('0x6c')])?null:_0x24bbf8[_0xfb13('0x6c')];});_0x206390['on']('dest',function(_0x249045){_0x765146['converted_duration']=isNaN(_0x249045[_0xfb13('0x65')])?null:_0x249045[_0xfb13('0x65')]*0x3e8;_0x765146['converted_sampleCount']=isNaN(_0x249045[_0xfb13('0x67')])?null:_0x249045['sampleCount'];_0x765146['converted_channelCount']=isNaN(_0x249045[_0xfb13('0x69')])?null:_0x249045[_0xfb13('0x69')];_0x765146['converted_bitRate']=isNaN(_0x249045[_0xfb13('0x6a')])?null:_0x249045[_0xfb13('0x6a')];_0x765146[_0xfb13('0x6d')]=isNaN(_0x249045['sampleRate'])?null:_0x249045['sampleRate'];});_0x206390['on']('end',function(){fs['chmodSync'](_0x5598aa,parseInt(_0xfb13('0x60'),0x8));return db[_0xfb13('0x2d')][_0xfb13('0x6e')](_0x765146)[_0xfb13('0x25')](function(_0x17351e){var _0x508ef4={'role':_0x436978[_0xfb13('0x6f')]['role'],'userProfileId':_0x436978[_0xfb13('0x6f')][_0xfb13('0x70')]};if(!_0x508ef4)throw new Error(_0xfb13('0x71'));if(_0x508ef4[_0xfb13('0x72')]===_0xfb13('0x73')){var _0x54c32=_0x17351e['get']({'plain':!![]});return db[_0xfb13('0x74')][_0xfb13('0x47')]({'where':{'name':_0xfb13('0x27'),'userProfileId':_0x508ef4[_0xfb13('0x70')]},'raw':!![]})['then'](function(_0x202558){if(_0x202558&&_0x202558[_0xfb13('0x75')]===0x0){return db[_0xfb13('0x76')][_0xfb13('0x6e')]({'name':_0x54c32[_0xfb13('0x29')],'resourceId':_0x54c32['id'],'type':_0x202558['name'],'sectionId':_0x202558['id']},{})['then'](function(){return _0x17351e;});}else{return _0x17351e;}})[_0xfb13('0x45')](function(_0x443110){logger[_0xfb13('0x62')](_0xfb13('0x77'),_0x443110);throw _0x443110;});}return _0x17351e;})[_0xfb13('0x25')](respondWithResult(_0x269f0d,null))['catch'](handleError(_0x269f0d,null));});_0x206390[_0xfb13('0x78')]();}catch(_0x1b88bd){_0x269f0d[_0xfb13('0x1a')](0x1f4)[_0xfb13('0x2a')](_0x1b88bd);}};exports[_0xfb13('0x23')]=function(_0x1f1221,_0x380199,_0x2f982c){return db['Sound']['find']({'where':{'id':_0x1f1221['params']['id']}})['then'](handleEntityNotFound(_0x380199,null))[_0xfb13('0x25')](saveUpdates(_[_0xfb13('0x3c')](_0x1f1221[_0xfb13('0x6f')],['name','description']),null))[_0xfb13('0x25')](respondWithResult(_0x380199,null))[_0xfb13('0x45')](handleError(_0x380199,null));};exports[_0xfb13('0x79')]=function(_0xd85cd8,_0xa0ca39,_0x2d5ec5){return db['Sound'][_0xfb13('0x47')]({'where':{'id':_0xd85cd8[_0xfb13('0x49')]['id']}})[_0xfb13('0x25')](function(_0x49ac20){if(_0x49ac20){return _0x49ac20[_0xfb13('0x24')]();}})[_0xfb13('0x25')](function(_0x440592){var _0x1d3a7c=path['join'](config[_0xfb13('0x4e')],'server/files/sounds/original',util[_0xfb13('0x53')]('%s.%s',_0x440592[_0xfb13('0x4a')],_0x440592[_0xfb13('0x7a')]));var _0x2889cb=path[_0xfb13('0x4d')](config[_0xfb13('0x4e')],_0xfb13('0x52'),util[_0xfb13('0x53')](_0xfb13('0x54'),_0x440592[_0xfb13('0x4a')],_0x440592[_0xfb13('0x4b')]));fs['unlinkSync'](_0x1d3a7c);fs[_0xfb13('0x63')](_0x2889cb);return _0x440592;})['then'](function(_0x52cec2){if(_0x52cec2){return _0xa0ca39[_0xfb13('0x1a')](0xcc)['end']();}})[_0xfb13('0x25')](handleEntityNotFound(_0xa0ca39,null))['catch'](handleError(_0xa0ca39,null));};