a4af3a729b52a56c70e741706d7abbe18fd521a0
[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 _0x12a8=['converted_bitRate','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','start','send','description','delete','format','original_format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','get','Sounds','error','stack','name','index','map','Sound','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','length','hasOwnProperty','sort','where','pick','filter','type','VIRTUAL','merge','includeAll','include','findAll','rows','show','params','attributes','options','find','catch','download','save_name','converted_format','existsSync','join','root','Sequelize','ValidationError','Sound\x20not\x20found','server/files/sounds/converted','%s.%s','create','basename','extname','originalname','file','filename','substring','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','wav','unlinkSync','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount'];(function(_0x50e0b4,_0x1057f7){var _0x2fa8b0=function(_0x3766bc){while(--_0x3766bc){_0x50e0b4['push'](_0x50e0b4['shift']());}};_0x2fa8b0(++_0x1057f7);}(_0x12a8,0x8c));var _0x812a=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x12a8[_0xfae23b];return _0x200640;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x812a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x812a('0x1'));var rp=require(_0x812a('0x2'));var moment=require(_0x812a('0x3'));var BPromise=require(_0x812a('0x4'));var Mustache=require(_0x812a('0x5'));var util=require(_0x812a('0x6'));var path=require('path');var sox=require(_0x812a('0x7'));var csv=require(_0x812a('0x8'));var ejs=require(_0x812a('0x9'));var fs=require('fs');var fs_extra=require(_0x812a('0xa'));var _=require('lodash');var squel=require(_0x812a('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x812a('0xc'));var toCsv=require('to-csv');var querystring=require(_0x812a('0xd'));var Papa=require('papaparse');var Redis=require(_0x812a('0xe'));var authService=require(_0x812a('0xf'));var qs=require(_0x812a('0x10'));var as=require(_0x812a('0x11'));var hardwareService=require(_0x812a('0x12'));var logger=require('../../config/logger')(_0x812a('0x13'));var utils=require(_0x812a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x812a('0x15'));var db=require(_0x812a('0x16'))['db'];function respondWithStatusCode(_0x405c8e,_0x168b91){_0x168b91=_0x168b91||0xcc;return function(_0x316d80){if(_0x316d80){return _0x405c8e[_0x812a('0x17')](_0x168b91);}return _0x405c8e['status'](_0x168b91)[_0x812a('0x18')]();};}function respondWithResult(_0x3f5bf7,_0xaa64bc){_0xaa64bc=_0xaa64bc||0xc8;return function(_0x41e20c){if(_0x41e20c){return _0x3f5bf7[_0x812a('0x19')](_0xaa64bc)[_0x812a('0x1a')](_0x41e20c);}};}function respondWithFilteredResult(_0x12fdf9,_0x1a3706){return function(_0x27d70f){if(_0x27d70f){var _0x615496=typeof _0x1a3706[_0x812a('0x1b')]===_0x812a('0x1c')&&typeof _0x1a3706[_0x812a('0x1d')]===_0x812a('0x1c');var _0x144ada=_0x27d70f[_0x812a('0x1e')];var _0x105918=_0x615496?0x0:_0x1a3706[_0x812a('0x1b')];var _0x5ac93a=_0x615496?_0x27d70f[_0x812a('0x1e')]:_0x1a3706[_0x812a('0x1b')]+_0x1a3706[_0x812a('0x1d')];var _0x5c0e67;if(_0x5ac93a>=_0x144ada){_0x5ac93a=_0x144ada;_0x5c0e67=0xc8;}else{_0x5c0e67=0xce;}_0x12fdf9[_0x812a('0x19')](_0x5c0e67);return _0x12fdf9[_0x812a('0x1f')](_0x812a('0x20'),_0x105918+'-'+_0x5ac93a+'/'+_0x144ada)[_0x812a('0x1a')](_0x27d70f);}return null;};}function patchUpdates(_0x2f4552){return function(_0xa81080){try{jsonpatch[_0x812a('0x21')](_0xa81080,_0x2f4552,!![]);}catch(_0x4d5c1b){return BPromise[_0x812a('0x22')](_0x4d5c1b);}return _0xa81080['save']();};}function saveUpdates(_0x52c1cc,_0x13c76e){return function(_0xb237c9){if(_0xb237c9){return _0xb237c9[_0x812a('0x23')](_0x52c1cc)['then'](function(_0x4319b4){return _0x4319b4;});}return null;};}function removeEntity(_0x3fc8b7,_0x248ca4){return function(_0x3608ce){if(_0x3608ce){return _0x3608ce[_0x812a('0x24')]()[_0x812a('0x25')](function(){var _0x225bae=_0x3608ce[_0x812a('0x26')]({'plain':!![]});var _0x354b12=_0x812a('0x27');return db['UserProfileResource'][_0x812a('0x24')]({'where':{'type':_0x354b12,'resourceId':_0x225bae['id']}})['then'](function(){return _0x3608ce;});})['then'](function(){_0x3fc8b7[_0x812a('0x19')](0xcc)[_0x812a('0x18')]();});}};}function handleEntityNotFound(_0x4380fc,_0x3e77e7){return function(_0x45d3de){if(!_0x45d3de){_0x4380fc[_0x812a('0x17')](0x194);}return _0x45d3de;};}function handleError(_0x1f86cb,_0x22d168){_0x22d168=_0x22d168||0x1f4;return function(_0x1d2adb){logger[_0x812a('0x28')](_0x1d2adb[_0x812a('0x29')]);if(_0x1d2adb['name']){delete _0x1d2adb[_0x812a('0x2a')];}_0x1f86cb[_0x812a('0x19')](_0x22d168)['send'](_0x1d2adb);};}exports[_0x812a('0x2b')]=function(_0x49c5b5,_0x3d217e){var _0x100c2f={},_0x36ed10={},_0x348521={'count':0x0,'rows':[]};var _0x2c09de=_[_0x812a('0x2c')](db[_0x812a('0x2d')][_0x812a('0x2e')],function(_0x56ccfc){return{'name':_0x56ccfc[_0x812a('0x2f')],'type':_0x56ccfc['type'][_0x812a('0x30')]};});_0x36ed10[_0x812a('0x31')]=_[_0x812a('0x2c')](_0x2c09de,_0x812a('0x2a'));_0x36ed10[_0x812a('0x32')]=_[_0x812a('0x33')](_0x49c5b5[_0x812a('0x32')]);_0x36ed10[_0x812a('0x34')]=_[_0x812a('0x35')](_0x36ed10[_0x812a('0x31')],_0x36ed10[_0x812a('0x32')]);_0x100c2f['attributes']=_[_0x812a('0x35')](_0x36ed10['model'],qs[_0x812a('0x36')](_0x49c5b5['query'][_0x812a('0x36')]));_0x100c2f['attributes']=_0x100c2f['attributes'][_0x812a('0x37')]?_0x100c2f['attributes']:_0x36ed10['model'];if(!_0x49c5b5[_0x812a('0x32')][_0x812a('0x38')]('nolimit')){_0x100c2f['limit']=qs[_0x812a('0x1d')](_0x49c5b5[_0x812a('0x32')][_0x812a('0x1d')]);_0x100c2f[_0x812a('0x1b')]=qs[_0x812a('0x1b')](_0x49c5b5[_0x812a('0x32')]['offset']);}_0x100c2f['order']=qs['sort'](_0x49c5b5[_0x812a('0x32')][_0x812a('0x39')]);_0x100c2f[_0x812a('0x3a')]=qs[_0x812a('0x34')](_[_0x812a('0x3b')](_0x49c5b5[_0x812a('0x32')],_0x36ed10[_0x812a('0x34')]),_0x2c09de);if(_0x49c5b5[_0x812a('0x32')][_0x812a('0x3c')]){_0x100c2f[_0x812a('0x3a')]=_['merge'](_0x100c2f[_0x812a('0x3a')],{'$or':_[_0x812a('0x2c')](_0x2c09de,function(_0x473bde){if(_0x473bde[_0x812a('0x3d')]!==_0x812a('0x3e')){var _0x2fb8ae={};_0x2fb8ae[_0x473bde[_0x812a('0x2a')]]={'$like':'%'+_0x49c5b5[_0x812a('0x32')][_0x812a('0x3c')]+'%'};return _0x2fb8ae;}})});}_0x100c2f=_[_0x812a('0x3f')]({},_0x100c2f,_0x49c5b5['options']);var _0x5a90b5={'where':_0x100c2f[_0x812a('0x3a')]};return db[_0x812a('0x2d')][_0x812a('0x1e')](_0x5a90b5)['then'](function(_0x329b02){_0x348521[_0x812a('0x1e')]=_0x329b02;if(_0x49c5b5[_0x812a('0x32')][_0x812a('0x40')]){_0x100c2f[_0x812a('0x41')]=[{'all':!![]}];}return db[_0x812a('0x2d')][_0x812a('0x42')](_0x100c2f);})[_0x812a('0x25')](function(_0x1e2d73){_0x348521[_0x812a('0x43')]=_0x1e2d73;return _0x348521;})[_0x812a('0x25')](respondWithFilteredResult(_0x3d217e,_0x100c2f))['catch'](handleError(_0x3d217e,null));};exports[_0x812a('0x44')]=function(_0x6a3efc,_0x54300e){var _0x416cec={'raw':!![],'where':{'id':_0x6a3efc[_0x812a('0x45')]['id']}},_0x55454c={};_0x55454c[_0x812a('0x31')]=_[_0x812a('0x33')](db['Sound'][_0x812a('0x2e')]);_0x55454c[_0x812a('0x32')]=_[_0x812a('0x33')](_0x6a3efc['query']);_0x55454c['filters']=_['intersection'](_0x55454c[_0x812a('0x31')],_0x55454c[_0x812a('0x32')]);_0x416cec[_0x812a('0x46')]=_[_0x812a('0x35')](_0x55454c[_0x812a('0x31')],qs[_0x812a('0x36')](_0x6a3efc[_0x812a('0x32')][_0x812a('0x36')]));_0x416cec['attributes']=_0x416cec['attributes']['length']?_0x416cec[_0x812a('0x46')]:_0x55454c[_0x812a('0x31')];if(_0x6a3efc['query'][_0x812a('0x40')]){_0x416cec[_0x812a('0x41')]=[{'all':!![]}];}_0x416cec=_[_0x812a('0x3f')]({},_0x416cec,_0x6a3efc[_0x812a('0x47')]);return db[_0x812a('0x2d')][_0x812a('0x48')](_0x416cec)[_0x812a('0x25')](handleEntityNotFound(_0x54300e,null))[_0x812a('0x25')](respondWithResult(_0x54300e,null))[_0x812a('0x49')](handleError(_0x54300e,null));};exports[_0x812a('0x4a')]=function(_0x149d34,_0x39e6f7,_0x583d0e){return db['Sound'][_0x812a('0x48')]({'where':{'id':_0x149d34[_0x812a('0x45')]['id']},'attributes':[_0x812a('0x2a'),_0x812a('0x4b'),_0x812a('0x4c')],'raw':!![]})[_0x812a('0x25')](handleEntityNotFound(_0x39e6f7,null))[_0x812a('0x25')](function(_0x32041c){if(_0x32041c){if(!fs[_0x812a('0x4d')](path[_0x812a('0x4e')](config[_0x812a('0x4f')],'server/files/sounds/converted',_0x32041c[_0x812a('0x4b')]+'.'+_0x32041c[_0x812a('0x4c')]))){throw new db[(_0x812a('0x50'))][(_0x812a('0x51'))](_0x812a('0x52'));}return _0x39e6f7[_0x812a('0x4a')](path[_0x812a('0x4e')](config[_0x812a('0x4f')],_0x812a('0x53'),util['format'](_0x812a('0x54'),_0x32041c[_0x812a('0x4b')],_0x32041c[_0x812a('0x4c')])),util['format'](_0x812a('0x54'),_0x32041c[_0x812a('0x2a')],_0x32041c[_0x812a('0x4c')]));}return null;})[_0x812a('0x49')](handleError(_0x39e6f7,null));};exports[_0x812a('0x55')]=function(_0x53602b,_0x1fb7ed,_0xd25e13){var _0xe9fd89={'name':path[_0x812a('0x56')](_0x53602b['file']['originalname'],path[_0x812a('0x57')](_0x53602b['file'][_0x812a('0x58')])),'save_name':path[_0x812a('0x56')](_0x53602b[_0x812a('0x59')][_0x812a('0x5a')],path[_0x812a('0x57')](_0x53602b[_0x812a('0x59')][_0x812a('0x5a')])),'original_format':path[_0x812a('0x57')](_0x53602b['file'][_0x812a('0x58')])[_0x812a('0x5b')](0x1),'converted_format':'wav'};var _0x426f88=path[_0x812a('0x4e')](config['root'],'server/files/sounds/original',_0x53602b[_0x812a('0x59')][_0x812a('0x5a')]);var _0x8d9855=path[_0x812a('0x4e')](config[_0x812a('0x4f')],_0x812a('0x53'),util['format'](_0x812a('0x54'),path[_0x812a('0x56')](_0x53602b[_0x812a('0x59')][_0x812a('0x5a')],path['extname'](_0x53602b[_0x812a('0x59')][_0x812a('0x5a')])),_0xe9fd89[_0x812a('0x4c')]));logger[_0x812a('0x5c')](_0x812a('0x5d'),_0x426f88);logger[_0x812a('0x5c')](_0x812a('0x5e'),_0x8d9855);try{fs[_0x812a('0x5f')](_0x426f88,parseInt(_0x812a('0x60'),0x8));var _0x167347=sox[_0x812a('0x61')](_0x426f88,_0x8d9855,{'sampleRate':0x1f40,'format':_0x812a('0x62'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x167347['on'](_0x812a('0x28'),function(_0x4fc246){fs[_0x812a('0x63')](_0x426f88);_0x1fb7ed[_0x812a('0x19')](0x1f4)['send'](_0x4fc246);});_0x167347['on']('src',function(_0xabbf00){_0xe9fd89['original_duration']=isNaN(_0xabbf00[_0x812a('0x64')])?null:_0xabbf00[_0x812a('0x64')]*0x3e8;_0xe9fd89[_0x812a('0x65')]=isNaN(_0xabbf00['sampleCount'])?null:_0xabbf00[_0x812a('0x66')];_0xe9fd89['original_channelCount']=isNaN(_0xabbf00[_0x812a('0x67')])?null:_0xabbf00[_0x812a('0x67')];_0xe9fd89[_0x812a('0x68')]=isNaN(_0xabbf00['bitRate'])?null:_0xabbf00[_0x812a('0x69')];_0xe9fd89[_0x812a('0x6a')]=isNaN(_0xabbf00[_0x812a('0x6b')])?null:_0xabbf00[_0x812a('0x6b')];});_0x167347['on'](_0x812a('0x6c'),function(_0x226ee){_0xe9fd89[_0x812a('0x6d')]=isNaN(_0x226ee[_0x812a('0x64')])?null:_0x226ee[_0x812a('0x64')]*0x3e8;_0xe9fd89[_0x812a('0x6e')]=isNaN(_0x226ee[_0x812a('0x66')])?null:_0x226ee[_0x812a('0x66')];_0xe9fd89[_0x812a('0x6f')]=isNaN(_0x226ee['channelCount'])?null:_0x226ee[_0x812a('0x67')];_0xe9fd89[_0x812a('0x70')]=isNaN(_0x226ee[_0x812a('0x69')])?null:_0x226ee[_0x812a('0x69')];_0xe9fd89['converted_sampleRate']=isNaN(_0x226ee[_0x812a('0x6b')])?null:_0x226ee[_0x812a('0x6b')];});_0x167347['on'](_0x812a('0x18'),function(){fs[_0x812a('0x5f')](_0x8d9855,parseInt(_0x812a('0x60'),0x8));return db[_0x812a('0x2d')][_0x812a('0x55')](_0xe9fd89)[_0x812a('0x25')](function(_0x381e7a){var _0x4a7fc7={'role':_0x53602b['body'][_0x812a('0x71')],'userProfileId':_0x53602b[_0x812a('0x72')][_0x812a('0x73')]};if(!_0x4a7fc7)throw new Error(_0x812a('0x74'));if(_0x4a7fc7[_0x812a('0x71')]===_0x812a('0x75')){var _0x1252ef=_0x381e7a[_0x812a('0x26')]({'plain':!![]});return db[_0x812a('0x76')]['find']({'where':{'name':_0x812a('0x27'),'userProfileId':_0x4a7fc7['userProfileId']},'raw':!![]})['then'](function(_0x119386){if(_0x119386&&_0x119386[_0x812a('0x77')]===0x0){return db['UserProfileResource'][_0x812a('0x55')]({'name':_0x1252ef[_0x812a('0x2a')],'resourceId':_0x1252ef['id'],'type':_0x119386['name'],'sectionId':_0x119386['id']},{})[_0x812a('0x25')](function(){return _0x381e7a;});}else{return _0x381e7a;}})[_0x812a('0x49')](function(_0x1845d8){logger[_0x812a('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1845d8);throw _0x1845d8;});}return _0x381e7a;})[_0x812a('0x25')](respondWithResult(_0x1fb7ed,null))[_0x812a('0x49')](handleError(_0x1fb7ed,null));});_0x167347[_0x812a('0x78')]();}catch(_0x4758bf){_0x1fb7ed['status'](0x1f4)[_0x812a('0x79')](_0x4758bf);}};exports['update']=function(_0x39c8f6,_0x15bca0,_0x4c35af){return db[_0x812a('0x2d')][_0x812a('0x48')]({'where':{'id':_0x39c8f6[_0x812a('0x45')]['id']}})[_0x812a('0x25')](handleEntityNotFound(_0x15bca0,null))[_0x812a('0x25')](saveUpdates(_['pick'](_0x39c8f6['body'],['name',_0x812a('0x7a')]),null))[_0x812a('0x25')](respondWithResult(_0x15bca0,null))[_0x812a('0x49')](handleError(_0x15bca0,null));};exports[_0x812a('0x7b')]=function(_0x498a5a,_0x1224fd,_0x43bc82){return db[_0x812a('0x2d')][_0x812a('0x48')]({'where':{'id':_0x498a5a[_0x812a('0x45')]['id']}})['then'](function(_0x2746bf){if(_0x2746bf){return _0x2746bf[_0x812a('0x24')]();}})[_0x812a('0x25')](function(_0x45dfc2){var _0x23f545=path['join'](config['root'],'server/files/sounds/original',util[_0x812a('0x7c')]('%s.%s',_0x45dfc2['save_name'],_0x45dfc2[_0x812a('0x7d')]));var _0x39010d=path[_0x812a('0x4e')](config['root'],'server/files/sounds/converted',util[_0x812a('0x7c')]('%s.%s',_0x45dfc2[_0x812a('0x4b')],_0x45dfc2[_0x812a('0x4c')]));fs[_0x812a('0x63')](_0x23f545);fs[_0x812a('0x63')](_0x39010d);return _0x45dfc2;})[_0x812a('0x25')](function(_0x497930){if(_0x497930){return _0x1224fd[_0x812a('0x19')](0xcc)[_0x812a('0x18')]();}})['then'](handleEntityNotFound(_0x1224fd,null))['catch'](handleError(_0x1224fd,null));};