b2d9c0cc97458d8d2f6a3a89a7eb5c65dc534e5a
[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 _0x9699=['update','then','destroy','get','Sounds','error','stack','name','send','map','Sound','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','options','includeAll','include','findAll','catch','show','params','rawAttributes','find','download','save_name','existsSync','join','server/files/sounds/converted','converted_format','Sequelize','root','%s.%s','format','create','basename','file','extname','originalname','filename','substring','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','transcode','wav','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','0777','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','delete','original_format','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','apply','save'];(function(_0x47761d,_0x3f8494){var _0x3d1c05=function(_0x3571da){while(--_0x3571da){_0x47761d['push'](_0x47761d['shift']());}};_0x3d1c05(++_0x3f8494);}(_0x9699,0x1ce));var _0x9969=function(_0x212d0a,_0x17f4ea){_0x212d0a=_0x212d0a-0x0;var _0x1e9fb6=_0x9699[_0x212d0a];return _0x1e9fb6;};'use strict';var emlformat=require(_0x9969('0x0'));var rimraf=require(_0x9969('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9969('0x2'));var rp=require(_0x9969('0x3'));var moment=require(_0x9969('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9969('0x5'));var util=require('util');var path=require(_0x9969('0x6'));var sox=require(_0x9969('0x7'));var csv=require(_0x9969('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9969('0x9'));var _=require('lodash');var squel=require(_0x9969('0xa'));var crypto=require(_0x9969('0xb'));var jsforce=require(_0x9969('0xc'));var deskjs=require(_0x9969('0xd'));var toCsv=require(_0x9969('0x8'));var querystring=require(_0x9969('0xe'));var Papa=require(_0x9969('0xf'));var Redis=require(_0x9969('0x10'));var authService=require(_0x9969('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x9969('0x12'));var hardwareService=require(_0x9969('0x13'));var logger=require('../../config/logger')(_0x9969('0x14'));var utils=require(_0x9969('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x9969('0x16'));var db=require(_0x9969('0x17'))['db'];function respondWithStatusCode(_0x4b6fb3,_0x215370){_0x215370=_0x215370||0xcc;return function(_0x5b35fa){if(_0x5b35fa){return _0x4b6fb3[_0x9969('0x18')](_0x215370);}return _0x4b6fb3['status'](_0x215370)[_0x9969('0x19')]();};}function respondWithResult(_0x10d4d1,_0x51a197){_0x51a197=_0x51a197||0xc8;return function(_0xef253b){if(_0xef253b){return _0x10d4d1[_0x9969('0x1a')](_0x51a197)[_0x9969('0x1b')](_0xef253b);}};}function respondWithFilteredResult(_0x38bbf0,_0x8d50a9){return function(_0x8258c6){if(_0x8258c6){var _0x5ce92f=typeof _0x8d50a9[_0x9969('0x1c')]==='undefined'&&typeof _0x8d50a9['limit']===_0x9969('0x1d');var _0x34d57d=_0x8258c6[_0x9969('0x1e')];var _0x30a215=_0x5ce92f?0x0:_0x8d50a9[_0x9969('0x1c')];var _0x32d553=_0x5ce92f?_0x8258c6[_0x9969('0x1e')]:_0x8d50a9[_0x9969('0x1c')]+_0x8d50a9[_0x9969('0x1f')];var _0x2d038d;if(_0x32d553>=_0x34d57d){_0x32d553=_0x34d57d;_0x2d038d=0xc8;}else{_0x2d038d=0xce;}_0x38bbf0[_0x9969('0x1a')](_0x2d038d);return _0x38bbf0['set']('Content-Range',_0x30a215+'-'+_0x32d553+'/'+_0x34d57d)[_0x9969('0x1b')](_0x8258c6);}return null;};}function patchUpdates(_0x1c8396){return function(_0x5ee2cf){try{jsonpatch[_0x9969('0x20')](_0x5ee2cf,_0x1c8396,!![]);}catch(_0x28c117){return BPromise['reject'](_0x28c117);}return _0x5ee2cf[_0x9969('0x21')]();};}function saveUpdates(_0xf2f4db,_0x2c4592){return function(_0x1c033c){if(_0x1c033c){return _0x1c033c[_0x9969('0x22')](_0xf2f4db)[_0x9969('0x23')](function(_0x53e440){return _0x53e440;});}return null;};}function removeEntity(_0x4deebf,_0xb221fe){return function(_0x14ba27){if(_0x14ba27){return _0x14ba27[_0x9969('0x24')]()[_0x9969('0x23')](function(){var _0x4254dc=_0x14ba27[_0x9969('0x25')]({'plain':!![]});var _0x380e75=_0x9969('0x26');return db['UserProfileResource'][_0x9969('0x24')]({'where':{'type':_0x380e75,'resourceId':_0x4254dc['id']}})[_0x9969('0x23')](function(){return _0x14ba27;});})[_0x9969('0x23')](function(){_0x4deebf[_0x9969('0x1a')](0xcc)[_0x9969('0x19')]();});}};}function handleEntityNotFound(_0x2376c8,_0x58f027){return function(_0x1c80f1){if(!_0x1c80f1){_0x2376c8[_0x9969('0x18')](0x194);}return _0x1c80f1;};}function handleError(_0x10a87d,_0x387463){_0x387463=_0x387463||0x1f4;return function(_0x187b55){logger[_0x9969('0x27')](_0x187b55[_0x9969('0x28')]);if(_0x187b55[_0x9969('0x29')]){delete _0x187b55[_0x9969('0x29')];}_0x10a87d['status'](_0x387463)[_0x9969('0x2a')](_0x187b55);};}exports['index']=function(_0x5cc644,_0x26b6ed){var _0x4b99b0={},_0x272c2a={},_0x57588e={'count':0x0,'rows':[]};var _0x2e5d1f=_[_0x9969('0x2b')](db[_0x9969('0x2c')]['rawAttributes'],function(_0x48f720){return{'name':_0x48f720[_0x9969('0x2d')],'type':_0x48f720[_0x9969('0x2e')][_0x9969('0x2f')]};});_0x272c2a[_0x9969('0x30')]=_[_0x9969('0x2b')](_0x2e5d1f,'name');_0x272c2a[_0x9969('0x31')]=_[_0x9969('0x32')](_0x5cc644['query']);_0x272c2a['filters']=_[_0x9969('0x33')](_0x272c2a['model'],_0x272c2a['query']);_0x4b99b0[_0x9969('0x34')]=_[_0x9969('0x33')](_0x272c2a[_0x9969('0x30')],qs[_0x9969('0x35')](_0x5cc644['query']['fields']));_0x4b99b0[_0x9969('0x34')]=_0x4b99b0['attributes'][_0x9969('0x36')]?_0x4b99b0[_0x9969('0x34')]:_0x272c2a[_0x9969('0x30')];if(!_0x5cc644[_0x9969('0x31')][_0x9969('0x37')](_0x9969('0x38'))){_0x4b99b0[_0x9969('0x1f')]=qs['limit'](_0x5cc644[_0x9969('0x31')][_0x9969('0x1f')]);_0x4b99b0[_0x9969('0x1c')]=qs['offset'](_0x5cc644[_0x9969('0x31')]['offset']);}_0x4b99b0['order']=qs[_0x9969('0x39')](_0x5cc644[_0x9969('0x31')]['sort']);_0x4b99b0[_0x9969('0x3a')]=qs[_0x9969('0x3b')](_[_0x9969('0x3c')](_0x5cc644['query'],_0x272c2a[_0x9969('0x3b')]),_0x2e5d1f);if(_0x5cc644['query'][_0x9969('0x3d')]){_0x4b99b0[_0x9969('0x3a')]=_[_0x9969('0x3e')](_0x4b99b0[_0x9969('0x3a')],{'$or':_[_0x9969('0x2b')](_0x2e5d1f,function(_0xea2255){if(_0xea2255[_0x9969('0x2e')]!=='VIRTUAL'){var _0x1761bc={};_0x1761bc[_0xea2255['name']]={'$like':'%'+_0x5cc644['query'][_0x9969('0x3d')]+'%'};return _0x1761bc;}})});}_0x4b99b0=_[_0x9969('0x3e')]({},_0x4b99b0,_0x5cc644[_0x9969('0x3f')]);var _0x38db7a={'where':_0x4b99b0[_0x9969('0x3a')]};return db['Sound'][_0x9969('0x1e')](_0x38db7a)[_0x9969('0x23')](function(_0x5aa877){_0x57588e[_0x9969('0x1e')]=_0x5aa877;if(_0x5cc644[_0x9969('0x31')][_0x9969('0x40')]){_0x4b99b0[_0x9969('0x41')]=[{'all':!![]}];}return db[_0x9969('0x2c')][_0x9969('0x42')](_0x4b99b0);})[_0x9969('0x23')](function(_0x562d5d){_0x57588e['rows']=_0x562d5d;return _0x57588e;})[_0x9969('0x23')](respondWithFilteredResult(_0x26b6ed,_0x4b99b0))[_0x9969('0x43')](handleError(_0x26b6ed,null));};exports[_0x9969('0x44')]=function(_0x4f7cc2,_0xa5bce8){var _0x26fe4d={'raw':!![],'where':{'id':_0x4f7cc2[_0x9969('0x45')]['id']}},_0x14a61e={};_0x14a61e['model']=_[_0x9969('0x32')](db['Sound'][_0x9969('0x46')]);_0x14a61e[_0x9969('0x31')]=_['keys'](_0x4f7cc2[_0x9969('0x31')]);_0x14a61e['filters']=_[_0x9969('0x33')](_0x14a61e[_0x9969('0x30')],_0x14a61e[_0x9969('0x31')]);_0x26fe4d['attributes']=_[_0x9969('0x33')](_0x14a61e[_0x9969('0x30')],qs[_0x9969('0x35')](_0x4f7cc2[_0x9969('0x31')][_0x9969('0x35')]));_0x26fe4d[_0x9969('0x34')]=_0x26fe4d['attributes'][_0x9969('0x36')]?_0x26fe4d[_0x9969('0x34')]:_0x14a61e[_0x9969('0x30')];if(_0x4f7cc2[_0x9969('0x31')]['includeAll']){_0x26fe4d[_0x9969('0x41')]=[{'all':!![]}];}_0x26fe4d=_[_0x9969('0x3e')]({},_0x26fe4d,_0x4f7cc2[_0x9969('0x3f')]);return db[_0x9969('0x2c')][_0x9969('0x47')](_0x26fe4d)[_0x9969('0x23')](handleEntityNotFound(_0xa5bce8,null))[_0x9969('0x23')](respondWithResult(_0xa5bce8,null))[_0x9969('0x43')](handleError(_0xa5bce8,null));};exports[_0x9969('0x48')]=function(_0x3b8291,_0x520f69,_0x436111){return db[_0x9969('0x2c')][_0x9969('0x47')]({'where':{'id':_0x3b8291['params']['id']},'attributes':[_0x9969('0x29'),_0x9969('0x49'),'converted_format'],'raw':!![]})[_0x9969('0x23')](handleEntityNotFound(_0x520f69,null))['then'](function(_0x3491f6){if(_0x3491f6){if(!fs[_0x9969('0x4a')](path[_0x9969('0x4b')](config['root'],_0x9969('0x4c'),_0x3491f6[_0x9969('0x49')]+'.'+_0x3491f6[_0x9969('0x4d')]))){throw new db[(_0x9969('0x4e'))]['ValidationError']('Sound\x20not\x20found');}return _0x520f69[_0x9969('0x48')](path[_0x9969('0x4b')](config[_0x9969('0x4f')],_0x9969('0x4c'),util['format'](_0x9969('0x50'),_0x3491f6[_0x9969('0x49')],_0x3491f6['converted_format'])),util[_0x9969('0x51')]('%s.%s',_0x3491f6[_0x9969('0x29')],_0x3491f6[_0x9969('0x4d')]));}return null;})['catch'](handleError(_0x520f69,null));};exports[_0x9969('0x52')]=function(_0x37b726,_0x5904d2,_0x31b5fa){var _0xb0972a={'name':path[_0x9969('0x53')](_0x37b726[_0x9969('0x54')]['originalname'],path[_0x9969('0x55')](_0x37b726[_0x9969('0x54')][_0x9969('0x56')])),'save_name':path[_0x9969('0x53')](_0x37b726[_0x9969('0x54')][_0x9969('0x57')],path[_0x9969('0x55')](_0x37b726[_0x9969('0x54')][_0x9969('0x57')])),'original_format':path[_0x9969('0x55')](_0x37b726['file'][_0x9969('0x56')])[_0x9969('0x58')](0x1),'converted_format':'wav'};var _0x2aecd4=path[_0x9969('0x4b')](config[_0x9969('0x4f')],_0x9969('0x59'),_0x37b726[_0x9969('0x54')]['filename']);var _0x500f9f=path[_0x9969('0x4b')](config[_0x9969('0x4f')],_0x9969('0x4c'),util[_0x9969('0x51')](_0x9969('0x50'),path['basename'](_0x37b726[_0x9969('0x54')]['filename'],path[_0x9969('0x55')](_0x37b726[_0x9969('0x54')][_0x9969('0x57')])),_0xb0972a['converted_format']));logger[_0x9969('0x5a')](_0x9969('0x5b'),_0x2aecd4);logger['info'](_0x9969('0x5c'),_0x500f9f);try{fs[_0x9969('0x5d')](_0x2aecd4,parseInt('0777',0x8));var _0x1156c9=sox[_0x9969('0x5e')](_0x2aecd4,_0x500f9f,{'sampleRate':0x1f40,'format':_0x9969('0x5f'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1156c9['on'](_0x9969('0x27'),function(_0x156d2d){fs[_0x9969('0x60')](_0x2aecd4);_0x5904d2[_0x9969('0x1a')](0x1f4)['send'](_0x156d2d);});_0x1156c9['on'](_0x9969('0x61'),function(_0x21359f){_0xb0972a[_0x9969('0x62')]=isNaN(_0x21359f[_0x9969('0x63')])?null:_0x21359f[_0x9969('0x63')]*0x3e8;_0xb0972a[_0x9969('0x64')]=isNaN(_0x21359f['sampleCount'])?null:_0x21359f[_0x9969('0x65')];_0xb0972a[_0x9969('0x66')]=isNaN(_0x21359f[_0x9969('0x67')])?null:_0x21359f['channelCount'];_0xb0972a[_0x9969('0x68')]=isNaN(_0x21359f['bitRate'])?null:_0x21359f[_0x9969('0x69')];_0xb0972a[_0x9969('0x6a')]=isNaN(_0x21359f[_0x9969('0x6b')])?null:_0x21359f['sampleRate'];});_0x1156c9['on'](_0x9969('0x6c'),function(_0x3b0220){_0xb0972a[_0x9969('0x6d')]=isNaN(_0x3b0220[_0x9969('0x63')])?null:_0x3b0220[_0x9969('0x63')]*0x3e8;_0xb0972a[_0x9969('0x6e')]=isNaN(_0x3b0220[_0x9969('0x65')])?null:_0x3b0220['sampleCount'];_0xb0972a[_0x9969('0x6f')]=isNaN(_0x3b0220[_0x9969('0x67')])?null:_0x3b0220[_0x9969('0x67')];_0xb0972a[_0x9969('0x70')]=isNaN(_0x3b0220['bitRate'])?null:_0x3b0220['bitRate'];_0xb0972a[_0x9969('0x71')]=isNaN(_0x3b0220['sampleRate'])?null:_0x3b0220[_0x9969('0x6b')];});_0x1156c9['on']('end',function(){fs[_0x9969('0x5d')](_0x500f9f,parseInt(_0x9969('0x72'),0x8));return db['Sound']['create'](_0xb0972a)[_0x9969('0x23')](function(_0x3f60ef){var _0x460292={'role':_0x37b726['body'][_0x9969('0x73')],'userProfileId':_0x37b726[_0x9969('0x74')][_0x9969('0x75')]};if(!_0x460292)throw new Error(_0x9969('0x76'));if(_0x460292[_0x9969('0x73')]==='user'){var _0x19dde6=_0x3f60ef[_0x9969('0x25')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0x9969('0x26'),'userProfileId':_0x460292[_0x9969('0x75')]},'raw':!![]})[_0x9969('0x23')](function(_0x486a4e){if(_0x486a4e&&_0x486a4e[_0x9969('0x77')]===0x0){return db[_0x9969('0x78')][_0x9969('0x52')]({'name':_0x19dde6[_0x9969('0x29')],'resourceId':_0x19dde6['id'],'type':_0x486a4e[_0x9969('0x29')],'sectionId':_0x486a4e['id']},{})[_0x9969('0x23')](function(){return _0x3f60ef;});}else{return _0x3f60ef;}})[_0x9969('0x43')](function(_0x1408fc){logger[_0x9969('0x27')](_0x9969('0x79'),_0x1408fc);throw _0x1408fc;});}return _0x3f60ef;})['then'](respondWithResult(_0x5904d2,null))['catch'](handleError(_0x5904d2,null));});_0x1156c9['start']();}catch(_0x3898bb){_0x5904d2['status'](0x1f4)[_0x9969('0x2a')](_0x3898bb);}};exports['update']=function(_0x1065b3,_0x549c75,_0x33cc8f){return db['Sound'][_0x9969('0x47')]({'where':{'id':_0x1065b3[_0x9969('0x45')]['id']}})[_0x9969('0x23')](handleEntityNotFound(_0x549c75,null))[_0x9969('0x23')](saveUpdates(_['pick'](_0x1065b3[_0x9969('0x74')],[_0x9969('0x29'),'description']),null))[_0x9969('0x23')](respondWithResult(_0x549c75,null))[_0x9969('0x43')](handleError(_0x549c75,null));};exports[_0x9969('0x7a')]=function(_0x12e035,_0x4cf618,_0x610113){return db['Sound'][_0x9969('0x47')]({'where':{'id':_0x12e035[_0x9969('0x45')]['id']}})[_0x9969('0x23')](function(_0x1249de){if(_0x1249de){return _0x1249de[_0x9969('0x24')]();}})[_0x9969('0x23')](function(_0x384678){var _0x56be96=path[_0x9969('0x4b')](config[_0x9969('0x4f')],_0x9969('0x59'),util[_0x9969('0x51')]('%s.%s',_0x384678[_0x9969('0x49')],_0x384678[_0x9969('0x7b')]));var _0x3d842c=path[_0x9969('0x4b')](config[_0x9969('0x4f')],_0x9969('0x4c'),util['format'](_0x9969('0x50'),_0x384678['save_name'],_0x384678[_0x9969('0x4d')]));fs[_0x9969('0x60')](_0x56be96);fs[_0x9969('0x60')](_0x3d842c);return _0x384678;})[_0x9969('0x23')](function(_0x47a14d){if(_0x47a14d){return _0x4cf618['status'](0xcc)[_0x9969('0x19')]();}})[_0x9969('0x23')](handleEntityNotFound(_0x4cf618,null))['catch'](handleError(_0x4cf618,null));};