60fdc93b60db0587ed5ec85450972991704c91e8
[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 _0xa0c3=['chmodSync','transcode','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','original_sampleRate','sampleRate','converted_duration','converted_channelCount','converted_bitRate','bitRate','converted_sampleRate','0777','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','pick','description','delete','original_format','eml-format','zip-dir','fast-json-patch','moment','bluebird','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','get','UserProfileResource','end','error','stack','name','send','index','map','Sound','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','where','merge','filter','options','includeAll','findAll','rows','catch','show','params','length','include','download','save_name','existsSync','join','root','server/files/sounds/converted','converted_format','Sequelize','ValidationError','Sound\x20not\x20found','format','%s.%s','create','basename','file','originalname','filename','extname','wav','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s'];(function(_0x29d94e,_0xf386d6){var _0x106237=function(_0x327501){while(--_0x327501){_0x29d94e['push'](_0x29d94e['shift']());}};_0x106237(++_0xf386d6);}(_0xa0c3,0x1a6));var _0x3a0c=function(_0x2c5db9,_0x4e8bf2){_0x2c5db9=_0x2c5db9-0x0;var _0x4e4f89=_0xa0c3[_0x2c5db9];return _0x4e4f89;};'use strict';var emlformat=require(_0x3a0c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3a0c('0x1'));var jsonpatch=require(_0x3a0c('0x2'));var rp=require('request-promise');var moment=require(_0x3a0c('0x3'));var BPromise=require(_0x3a0c('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x3a0c('0x5'));var sox=require(_0x3a0c('0x6'));var csv=require('to-csv');var ejs=require(_0x3a0c('0x7'));var fs=require('fs');var fs_extra=require(_0x3a0c('0x8'));var _=require(_0x3a0c('0x9'));var squel=require('squel');var crypto=require(_0x3a0c('0xa'));var jsforce=require(_0x3a0c('0xb'));var deskjs=require(_0x3a0c('0xc'));var toCsv=require(_0x3a0c('0xd'));var querystring=require(_0x3a0c('0xe'));var Papa=require(_0x3a0c('0xf'));var Redis=require(_0x3a0c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x3a0c('0x11'));var as=require(_0x3a0c('0x12'));var hardwareService=require(_0x3a0c('0x13'));var logger=require('../../config/logger')(_0x3a0c('0x14'));var utils=require(_0x3a0c('0x15'));var config=require(_0x3a0c('0x16'));var licenseUtil=require(_0x3a0c('0x17'));var db=require(_0x3a0c('0x18'))['db'];function respondWithStatusCode(_0x299212,_0x31bc07){_0x31bc07=_0x31bc07||0xcc;return function(_0x33e924){if(_0x33e924){return _0x299212[_0x3a0c('0x19')](_0x31bc07);}return _0x299212[_0x3a0c('0x1a')](_0x31bc07)['end']();};}function respondWithResult(_0x5e7ef8,_0x10c589){_0x10c589=_0x10c589||0xc8;return function(_0x5bde7a){if(_0x5bde7a){return _0x5e7ef8[_0x3a0c('0x1a')](_0x10c589)[_0x3a0c('0x1b')](_0x5bde7a);}};}function respondWithFilteredResult(_0x1383e5,_0x1cb613){return function(_0x5581b5){if(_0x5581b5){var _0x1fc5d8=typeof _0x1cb613['offset']===_0x3a0c('0x1c')&&typeof _0x1cb613[_0x3a0c('0x1d')]===_0x3a0c('0x1c');var _0x3ce77a=_0x5581b5[_0x3a0c('0x1e')];var _0x1a4232=_0x1fc5d8?0x0:_0x1cb613['offset'];var _0x3cecc7=_0x1fc5d8?_0x5581b5['count']:_0x1cb613[_0x3a0c('0x1f')]+_0x1cb613[_0x3a0c('0x1d')];var _0x81f2ac;if(_0x3cecc7>=_0x3ce77a){_0x3cecc7=_0x3ce77a;_0x81f2ac=0xc8;}else{_0x81f2ac=0xce;}_0x1383e5[_0x3a0c('0x1a')](_0x81f2ac);return _0x1383e5[_0x3a0c('0x20')](_0x3a0c('0x21'),_0x1a4232+'-'+_0x3cecc7+'/'+_0x3ce77a)['json'](_0x5581b5);}return null;};}function patchUpdates(_0x5d8a13){return function(_0x32b977){try{jsonpatch[_0x3a0c('0x22')](_0x32b977,_0x5d8a13,!![]);}catch(_0x2d01d2){return BPromise[_0x3a0c('0x23')](_0x2d01d2);}return _0x32b977['save']();};}function saveUpdates(_0x23fd3f,_0x501ff9){return function(_0x5819a6){if(_0x5819a6){return _0x5819a6[_0x3a0c('0x24')](_0x23fd3f)[_0x3a0c('0x25')](function(_0x4637fe){return _0x4637fe;});}return null;};}function removeEntity(_0x1abcde,_0x459ae5){return function(_0x1dffe0){if(_0x1dffe0){return _0x1dffe0[_0x3a0c('0x26')]()['then'](function(){var _0xcb577b=_0x1dffe0[_0x3a0c('0x27')]({'plain':!![]});var _0x218991='Sounds';return db[_0x3a0c('0x28')][_0x3a0c('0x26')]({'where':{'type':_0x218991,'resourceId':_0xcb577b['id']}})[_0x3a0c('0x25')](function(){return _0x1dffe0;});})[_0x3a0c('0x25')](function(){_0x1abcde[_0x3a0c('0x1a')](0xcc)[_0x3a0c('0x29')]();});}};}function handleEntityNotFound(_0x2b65c8,_0x3ca833){return function(_0x34f81e){if(!_0x34f81e){_0x2b65c8['sendStatus'](0x194);}return _0x34f81e;};}function handleError(_0x16afcf,_0x5e0bc6){_0x5e0bc6=_0x5e0bc6||0x1f4;return function(_0x4d2214){logger[_0x3a0c('0x2a')](_0x4d2214[_0x3a0c('0x2b')]);if(_0x4d2214[_0x3a0c('0x2c')]){delete _0x4d2214['name'];}_0x16afcf[_0x3a0c('0x1a')](_0x5e0bc6)[_0x3a0c('0x2d')](_0x4d2214);};}exports[_0x3a0c('0x2e')]=function(_0x1e0c86,_0x4e0f6d){var _0x34a9a7={},_0x4c41b1={},_0xefd326={'count':0x0,'rows':[]};var _0x2fe426=_[_0x3a0c('0x2f')](db[_0x3a0c('0x30')][_0x3a0c('0x31')],function(_0x265e31){return{'name':_0x265e31[_0x3a0c('0x32')],'type':_0x265e31[_0x3a0c('0x33')][_0x3a0c('0x34')]};});_0x4c41b1[_0x3a0c('0x35')]=_['map'](_0x2fe426,_0x3a0c('0x2c'));_0x4c41b1[_0x3a0c('0x36')]=_[_0x3a0c('0x37')](_0x1e0c86[_0x3a0c('0x36')]);_0x4c41b1['filters']=_[_0x3a0c('0x38')](_0x4c41b1[_0x3a0c('0x35')],_0x4c41b1[_0x3a0c('0x36')]);_0x34a9a7[_0x3a0c('0x39')]=_[_0x3a0c('0x38')](_0x4c41b1[_0x3a0c('0x35')],qs[_0x3a0c('0x3a')](_0x1e0c86['query'][_0x3a0c('0x3a')]));_0x34a9a7[_0x3a0c('0x39')]=_0x34a9a7['attributes']['length']?_0x34a9a7[_0x3a0c('0x39')]:_0x4c41b1[_0x3a0c('0x35')];if(!_0x1e0c86['query'][_0x3a0c('0x3b')](_0x3a0c('0x3c'))){_0x34a9a7[_0x3a0c('0x1d')]=qs[_0x3a0c('0x1d')](_0x1e0c86[_0x3a0c('0x36')][_0x3a0c('0x1d')]);_0x34a9a7[_0x3a0c('0x1f')]=qs[_0x3a0c('0x1f')](_0x1e0c86['query'][_0x3a0c('0x1f')]);}_0x34a9a7[_0x3a0c('0x3d')]=qs[_0x3a0c('0x3e')](_0x1e0c86[_0x3a0c('0x36')][_0x3a0c('0x3e')]);_0x34a9a7['where']=qs[_0x3a0c('0x3f')](_['pick'](_0x1e0c86[_0x3a0c('0x36')],_0x4c41b1[_0x3a0c('0x3f')]),_0x2fe426);if(_0x1e0c86['query']['filter']){_0x34a9a7[_0x3a0c('0x40')]=_[_0x3a0c('0x41')](_0x34a9a7[_0x3a0c('0x40')],{'$or':_[_0x3a0c('0x2f')](_0x2fe426,function(_0x3446df){if(_0x3446df[_0x3a0c('0x33')]!=='VIRTUAL'){var _0xe5af90={};_0xe5af90[_0x3446df[_0x3a0c('0x2c')]]={'$like':'%'+_0x1e0c86['query'][_0x3a0c('0x42')]+'%'};return _0xe5af90;}})});}_0x34a9a7=_[_0x3a0c('0x41')]({},_0x34a9a7,_0x1e0c86[_0x3a0c('0x43')]);var _0x5d6610={'where':_0x34a9a7[_0x3a0c('0x40')]};return db['Sound'][_0x3a0c('0x1e')](_0x5d6610)[_0x3a0c('0x25')](function(_0x127796){_0xefd326[_0x3a0c('0x1e')]=_0x127796;if(_0x1e0c86['query'][_0x3a0c('0x44')]){_0x34a9a7['include']=[{'all':!![]}];}return db[_0x3a0c('0x30')][_0x3a0c('0x45')](_0x34a9a7);})['then'](function(_0x2edfd2){_0xefd326[_0x3a0c('0x46')]=_0x2edfd2;return _0xefd326;})[_0x3a0c('0x25')](respondWithFilteredResult(_0x4e0f6d,_0x34a9a7))[_0x3a0c('0x47')](handleError(_0x4e0f6d,null));};exports[_0x3a0c('0x48')]=function(_0xe9dabc,_0x4e89d8){var _0x3bf5c0={'raw':!![],'where':{'id':_0xe9dabc[_0x3a0c('0x49')]['id']}},_0x2b66f1={};_0x2b66f1[_0x3a0c('0x35')]=_[_0x3a0c('0x37')](db[_0x3a0c('0x30')]['rawAttributes']);_0x2b66f1[_0x3a0c('0x36')]=_[_0x3a0c('0x37')](_0xe9dabc[_0x3a0c('0x36')]);_0x2b66f1[_0x3a0c('0x3f')]=_['intersection'](_0x2b66f1[_0x3a0c('0x35')],_0x2b66f1[_0x3a0c('0x36')]);_0x3bf5c0[_0x3a0c('0x39')]=_[_0x3a0c('0x38')](_0x2b66f1[_0x3a0c('0x35')],qs[_0x3a0c('0x3a')](_0xe9dabc[_0x3a0c('0x36')]['fields']));_0x3bf5c0[_0x3a0c('0x39')]=_0x3bf5c0[_0x3a0c('0x39')][_0x3a0c('0x4a')]?_0x3bf5c0[_0x3a0c('0x39')]:_0x2b66f1[_0x3a0c('0x35')];if(_0xe9dabc[_0x3a0c('0x36')][_0x3a0c('0x44')]){_0x3bf5c0[_0x3a0c('0x4b')]=[{'all':!![]}];}_0x3bf5c0=_[_0x3a0c('0x41')]({},_0x3bf5c0,_0xe9dabc['options']);return db[_0x3a0c('0x30')]['find'](_0x3bf5c0)[_0x3a0c('0x25')](handleEntityNotFound(_0x4e89d8,null))[_0x3a0c('0x25')](respondWithResult(_0x4e89d8,null))[_0x3a0c('0x47')](handleError(_0x4e89d8,null));};exports[_0x3a0c('0x4c')]=function(_0xf6de26,_0x1907fa,_0x4c9a66){return db[_0x3a0c('0x30')]['find']({'where':{'id':_0xf6de26[_0x3a0c('0x49')]['id']},'attributes':[_0x3a0c('0x2c'),_0x3a0c('0x4d'),'converted_format'],'raw':!![]})[_0x3a0c('0x25')](handleEntityNotFound(_0x1907fa,null))[_0x3a0c('0x25')](function(_0x2f782b){if(_0x2f782b){if(!fs[_0x3a0c('0x4e')](path[_0x3a0c('0x4f')](config[_0x3a0c('0x50')],_0x3a0c('0x51'),_0x2f782b[_0x3a0c('0x4d')]+'.'+_0x2f782b[_0x3a0c('0x52')]))){throw new db[(_0x3a0c('0x53'))][(_0x3a0c('0x54'))](_0x3a0c('0x55'));}return _0x1907fa[_0x3a0c('0x4c')](path[_0x3a0c('0x4f')](config[_0x3a0c('0x50')],_0x3a0c('0x51'),util[_0x3a0c('0x56')](_0x3a0c('0x57'),_0x2f782b[_0x3a0c('0x4d')],_0x2f782b[_0x3a0c('0x52')])),util[_0x3a0c('0x56')](_0x3a0c('0x57'),_0x2f782b[_0x3a0c('0x2c')],_0x2f782b['converted_format']));}return null;})[_0x3a0c('0x47')](handleError(_0x1907fa,null));};exports[_0x3a0c('0x58')]=function(_0x3202f9,_0x56ec7e,_0x1c8d6e){var _0x2d6a06={'name':path[_0x3a0c('0x59')](_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5b')],path['extname'](_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5b')])),'save_name':path[_0x3a0c('0x59')](_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5c')],path['extname'](_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5c')])),'original_format':path[_0x3a0c('0x5d')](_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5b')])['substring'](0x1),'converted_format':_0x3a0c('0x5e')};var _0x3e4572=path['join'](config['root'],_0x3a0c('0x5f'),_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5c')]);var _0x26cff5=path[_0x3a0c('0x4f')](config[_0x3a0c('0x50')],_0x3a0c('0x51'),util[_0x3a0c('0x56')](_0x3a0c('0x57'),path[_0x3a0c('0x59')](_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5c')],path[_0x3a0c('0x5d')](_0x3202f9[_0x3a0c('0x5a')][_0x3a0c('0x5c')])),_0x2d6a06[_0x3a0c('0x52')]));logger['info']('Sound\x20upload\x20filepath:\x20%s',_0x3e4572);logger[_0x3a0c('0x60')](_0x3a0c('0x61'),_0x26cff5);try{fs[_0x3a0c('0x62')](_0x3e4572,parseInt('0777',0x8));var _0x5ef866=sox[_0x3a0c('0x63')](_0x3e4572,_0x26cff5,{'sampleRate':0x1f40,'format':_0x3a0c('0x5e'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x5ef866['on'](_0x3a0c('0x2a'),function(_0x5aba73){fs[_0x3a0c('0x64')](_0x3e4572);_0x56ec7e['status'](0x1f4)[_0x3a0c('0x2d')](_0x5aba73);});_0x5ef866['on'](_0x3a0c('0x65'),function(_0x33f685){_0x2d6a06[_0x3a0c('0x66')]=isNaN(_0x33f685[_0x3a0c('0x67')])?null:_0x33f685['duration']*0x3e8;_0x2d6a06[_0x3a0c('0x68')]=isNaN(_0x33f685[_0x3a0c('0x69')])?null:_0x33f685['sampleCount'];_0x2d6a06['original_channelCount']=isNaN(_0x33f685[_0x3a0c('0x6a')])?null:_0x33f685[_0x3a0c('0x6a')];_0x2d6a06[_0x3a0c('0x6b')]=isNaN(_0x33f685['bitRate'])?null:_0x33f685['bitRate'];_0x2d6a06[_0x3a0c('0x6c')]=isNaN(_0x33f685[_0x3a0c('0x6d')])?null:_0x33f685[_0x3a0c('0x6d')];});_0x5ef866['on']('dest',function(_0x551b01){_0x2d6a06[_0x3a0c('0x6e')]=isNaN(_0x551b01['duration'])?null:_0x551b01[_0x3a0c('0x67')]*0x3e8;_0x2d6a06['converted_sampleCount']=isNaN(_0x551b01[_0x3a0c('0x69')])?null:_0x551b01[_0x3a0c('0x69')];_0x2d6a06[_0x3a0c('0x6f')]=isNaN(_0x551b01[_0x3a0c('0x6a')])?null:_0x551b01[_0x3a0c('0x6a')];_0x2d6a06[_0x3a0c('0x70')]=isNaN(_0x551b01[_0x3a0c('0x71')])?null:_0x551b01[_0x3a0c('0x71')];_0x2d6a06[_0x3a0c('0x72')]=isNaN(_0x551b01[_0x3a0c('0x6d')])?null:_0x551b01[_0x3a0c('0x6d')];});_0x5ef866['on']('end',function(){fs[_0x3a0c('0x62')](_0x26cff5,parseInt(_0x3a0c('0x73'),0x8));return db[_0x3a0c('0x30')]['create'](_0x2d6a06)['then'](function(_0x12607a){var _0x2cd931={'role':_0x3202f9[_0x3a0c('0x74')][_0x3a0c('0x75')],'userProfileId':_0x3202f9[_0x3a0c('0x74')][_0x3a0c('0x76')]};if(!_0x2cd931)throw new Error(_0x3a0c('0x77'));if(_0x2cd931[_0x3a0c('0x75')]===_0x3a0c('0x78')){var _0x112db1=_0x12607a[_0x3a0c('0x27')]({'plain':!![]});return db[_0x3a0c('0x79')][_0x3a0c('0x7a')]({'where':{'name':'Sounds','userProfileId':_0x2cd931['userProfileId']},'raw':!![]})['then'](function(_0x422288){if(_0x422288&&_0x422288[_0x3a0c('0x7b')]===0x0){return db['UserProfileResource']['create']({'name':_0x112db1[_0x3a0c('0x2c')],'resourceId':_0x112db1['id'],'type':_0x422288[_0x3a0c('0x2c')],'sectionId':_0x422288['id']},{})[_0x3a0c('0x25')](function(){return _0x12607a;});}else{return _0x12607a;}})[_0x3a0c('0x47')](function(_0x3675b2){logger['error'](_0x3a0c('0x7c'),_0x3675b2);throw _0x3675b2;});}return _0x12607a;})[_0x3a0c('0x25')](respondWithResult(_0x56ec7e,null))[_0x3a0c('0x47')](handleError(_0x56ec7e,null));});_0x5ef866[_0x3a0c('0x7d')]();}catch(_0x30fbc9){_0x56ec7e[_0x3a0c('0x1a')](0x1f4)[_0x3a0c('0x2d')](_0x30fbc9);}};exports[_0x3a0c('0x24')]=function(_0x281416,_0x469a86,_0x14afe0){return db[_0x3a0c('0x30')][_0x3a0c('0x7a')]({'where':{'id':_0x281416[_0x3a0c('0x49')]['id']}})['then'](handleEntityNotFound(_0x469a86,null))[_0x3a0c('0x25')](saveUpdates(_[_0x3a0c('0x7e')](_0x281416[_0x3a0c('0x74')],[_0x3a0c('0x2c'),_0x3a0c('0x7f')]),null))[_0x3a0c('0x25')](respondWithResult(_0x469a86,null))['catch'](handleError(_0x469a86,null));};exports[_0x3a0c('0x80')]=function(_0x271067,_0x5217e1,_0x58da79){return db['Sound'][_0x3a0c('0x7a')]({'where':{'id':_0x271067[_0x3a0c('0x49')]['id']}})[_0x3a0c('0x25')](function(_0x4794ee){if(_0x4794ee){return _0x4794ee[_0x3a0c('0x26')]();}})[_0x3a0c('0x25')](function(_0x28c737){var _0x12e2c2=path[_0x3a0c('0x4f')](config['root'],_0x3a0c('0x5f'),util[_0x3a0c('0x56')](_0x3a0c('0x57'),_0x28c737[_0x3a0c('0x4d')],_0x28c737[_0x3a0c('0x81')]));var _0x49ba87=path[_0x3a0c('0x4f')](config[_0x3a0c('0x50')],_0x3a0c('0x51'),util[_0x3a0c('0x56')](_0x3a0c('0x57'),_0x28c737['save_name'],_0x28c737['converted_format']));fs[_0x3a0c('0x64')](_0x12e2c2);fs[_0x3a0c('0x64')](_0x49ba87);return _0x28c737;})[_0x3a0c('0x25')](function(_0x354c45){if(_0x354c45){return _0x5217e1[_0x3a0c('0x1a')](0xcc)['end']();}})[_0x3a0c('0x25')](handleEntityNotFound(_0x5217e1,null))[_0x3a0c('0x47')](handleError(_0x5217e1,null));};