9919eff13de9e08b6d0c63cc1314881c4fada6f0
[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 _0xfcc0=['converted_channelCount','converted_bitRate','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','Sounds','autoAssociation','UserProfileResource','description','server/files/sounds/original','original_format','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','end','status','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','get','sendStatus','error','name','send','Sound','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','download','converted_format','existsSync','root','server/files/sounds/converted','save_name','Sequelize','ValidationError','Sound\x20not\x20found','join','format','create','basename','originalname','extname','file','wav','%s.%s','filename','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','src','original_duration','duration','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','converted_duration'];(function(_0x2c582c,_0x4b4e0e){var _0x1d5935=function(_0xb643eb){while(--_0xb643eb){_0x2c582c['push'](_0x2c582c['shift']());}};_0x1d5935(++_0x4b4e0e);}(_0xfcc0,0x8c));var _0x0fcc=function(_0x34404a,_0x132ae6){_0x34404a=_0x34404a-0x0;var _0x1cbc17=_0xfcc0[_0x34404a];return _0x1cbc17;};'use strict';var emlformat=require(_0x0fcc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0fcc('0x1'));var jsonpatch=require(_0x0fcc('0x2'));var rp=require(_0x0fcc('0x3'));var moment=require(_0x0fcc('0x4'));var BPromise=require(_0x0fcc('0x5'));var Mustache=require(_0x0fcc('0x6'));var util=require(_0x0fcc('0x7'));var path=require(_0x0fcc('0x8'));var sox=require(_0x0fcc('0x9'));var csv=require(_0x0fcc('0xa'));var ejs=require(_0x0fcc('0xb'));var fs=require('fs');var fs_extra=require(_0x0fcc('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x0fcc('0xd'));var jsforce=require(_0x0fcc('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x0fcc('0xa'));var querystring=require(_0x0fcc('0xf'));var Papa=require(_0x0fcc('0x10'));var Redis=require('ioredis');var authService=require(_0x0fcc('0x11'));var qs=require(_0x0fcc('0x12'));var as=require(_0x0fcc('0x13'));var hardwareService=require(_0x0fcc('0x14'));var logger=require(_0x0fcc('0x15'))(_0x0fcc('0x16'));var utils=require(_0x0fcc('0x17'));var config=require(_0x0fcc('0x18'));var licenseUtil=require(_0x0fcc('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2a4a96,_0x2b348d){_0x2b348d=_0x2b348d||0xcc;return function(_0x33dc85){if(_0x33dc85){return _0x2a4a96['sendStatus'](_0x2b348d);}return _0x2a4a96['status'](_0x2b348d)[_0x0fcc('0x1a')]();};}function respondWithResult(_0x181c6c,_0x59f70c){_0x59f70c=_0x59f70c||0xc8;return function(_0x6f6eb3){if(_0x6f6eb3){return _0x181c6c[_0x0fcc('0x1b')](_0x59f70c)['json'](_0x6f6eb3);}};}function respondWithFilteredResult(_0xd909c6,_0x148ff6){return function(_0x16c514){if(_0x16c514){var _0x53ccb0=typeof _0x148ff6[_0x0fcc('0x1c')]===_0x0fcc('0x1d')&&typeof _0x148ff6['limit']===_0x0fcc('0x1d');var _0x265457=_0x16c514[_0x0fcc('0x1e')];var _0x341475=_0x53ccb0?0x0:_0x148ff6[_0x0fcc('0x1c')];var _0xb88c57=_0x53ccb0?_0x16c514[_0x0fcc('0x1e')]:_0x148ff6[_0x0fcc('0x1c')]+_0x148ff6[_0x0fcc('0x1f')];var _0xe4b0b0;if(_0xb88c57>=_0x265457){_0xb88c57=_0x265457;_0xe4b0b0=0xc8;}else{_0xe4b0b0=0xce;}_0xd909c6[_0x0fcc('0x1b')](_0xe4b0b0);return _0xd909c6[_0x0fcc('0x20')](_0x0fcc('0x21'),_0x341475+'-'+_0xb88c57+'/'+_0x265457)[_0x0fcc('0x22')](_0x16c514);}return null;};}function patchUpdates(_0x4928fd){return function(_0x1f5210){try{jsonpatch[_0x0fcc('0x23')](_0x1f5210,_0x4928fd,!![]);}catch(_0x9640e0){return BPromise[_0x0fcc('0x24')](_0x9640e0);}return _0x1f5210[_0x0fcc('0x25')]();};}function saveUpdates(_0x4bc2af,_0x4962f0){return function(_0x1c0dbe){if(_0x1c0dbe){return _0x1c0dbe[_0x0fcc('0x26')](_0x4bc2af)[_0x0fcc('0x27')](function(_0x25b4a2){return _0x25b4a2;});}return null;};}function removeEntity(_0x4380fd,_0x5a54f9){return function(_0x30a173){if(_0x30a173){return _0x30a173[_0x0fcc('0x28')]()[_0x0fcc('0x27')](function(){var _0x1e7b4d=_0x30a173[_0x0fcc('0x29')]({'plain':!![]});var _0x49c219='Sounds';return db['UserProfileResource'][_0x0fcc('0x28')]({'where':{'type':_0x49c219,'resourceId':_0x1e7b4d['id']}})[_0x0fcc('0x27')](function(){return _0x30a173;});})['then'](function(){_0x4380fd[_0x0fcc('0x1b')](0xcc)[_0x0fcc('0x1a')]();});}};}function handleEntityNotFound(_0x1a294b,_0x2eba11){return function(_0x36684f){if(!_0x36684f){_0x1a294b[_0x0fcc('0x2a')](0x194);}return _0x36684f;};}function handleError(_0xa205ec,_0x19c9df){_0x19c9df=_0x19c9df||0x1f4;return function(_0x3530ec){logger[_0x0fcc('0x2b')](_0x3530ec['stack']);if(_0x3530ec[_0x0fcc('0x2c')]){delete _0x3530ec[_0x0fcc('0x2c')];}_0xa205ec[_0x0fcc('0x1b')](_0x19c9df)[_0x0fcc('0x2d')](_0x3530ec);};}exports['index']=function(_0x453ac0,_0x385451){var _0x244d72={},_0x5c7b35={},_0x112d50={'count':0x0,'rows':[]};var _0x453d03=_['map'](db[_0x0fcc('0x2e')][_0x0fcc('0x2f')],function(_0x34b633){return{'name':_0x34b633['fieldName'],'type':_0x34b633[_0x0fcc('0x30')][_0x0fcc('0x31')]};});_0x5c7b35[_0x0fcc('0x32')]=_['map'](_0x453d03,'name');_0x5c7b35['query']=_[_0x0fcc('0x33')](_0x453ac0[_0x0fcc('0x34')]);_0x5c7b35[_0x0fcc('0x35')]=_[_0x0fcc('0x36')](_0x5c7b35[_0x0fcc('0x32')],_0x5c7b35[_0x0fcc('0x34')]);_0x244d72[_0x0fcc('0x37')]=_[_0x0fcc('0x36')](_0x5c7b35['model'],qs[_0x0fcc('0x38')](_0x453ac0[_0x0fcc('0x34')]['fields']));_0x244d72['attributes']=_0x244d72['attributes'][_0x0fcc('0x39')]?_0x244d72[_0x0fcc('0x37')]:_0x5c7b35[_0x0fcc('0x32')];if(!_0x453ac0[_0x0fcc('0x34')]['hasOwnProperty'](_0x0fcc('0x3a'))){_0x244d72['limit']=qs[_0x0fcc('0x1f')](_0x453ac0['query'][_0x0fcc('0x1f')]);_0x244d72[_0x0fcc('0x1c')]=qs[_0x0fcc('0x1c')](_0x453ac0[_0x0fcc('0x34')]['offset']);}_0x244d72[_0x0fcc('0x3b')]=qs[_0x0fcc('0x3c')](_0x453ac0[_0x0fcc('0x34')][_0x0fcc('0x3c')]);_0x244d72[_0x0fcc('0x3d')]=qs[_0x0fcc('0x35')](_['pick'](_0x453ac0[_0x0fcc('0x34')],_0x5c7b35[_0x0fcc('0x35')]),_0x453d03);if(_0x453ac0['query'][_0x0fcc('0x3e')]){_0x244d72[_0x0fcc('0x3d')]=_[_0x0fcc('0x3f')](_0x244d72[_0x0fcc('0x3d')],{'$or':_[_0x0fcc('0x40')](_0x453d03,function(_0x17a21d){if(_0x17a21d[_0x0fcc('0x30')]!==_0x0fcc('0x41')){var _0x477ac7={};_0x477ac7[_0x17a21d[_0x0fcc('0x2c')]]={'$like':'%'+_0x453ac0['query']['filter']+'%'};return _0x477ac7;}})});}_0x244d72=_[_0x0fcc('0x3f')]({},_0x244d72,_0x453ac0[_0x0fcc('0x42')]);var _0x77a6a4={'where':_0x244d72[_0x0fcc('0x3d')]};return db['Sound'][_0x0fcc('0x1e')](_0x77a6a4)['then'](function(_0x20a922){_0x112d50['count']=_0x20a922;if(_0x453ac0[_0x0fcc('0x34')][_0x0fcc('0x43')]){_0x244d72[_0x0fcc('0x44')]=[{'all':!![]}];}return db[_0x0fcc('0x2e')][_0x0fcc('0x45')](_0x244d72);})[_0x0fcc('0x27')](function(_0x474568){_0x112d50[_0x0fcc('0x46')]=_0x474568;return _0x112d50;})[_0x0fcc('0x27')](respondWithFilteredResult(_0x385451,_0x244d72))[_0x0fcc('0x47')](handleError(_0x385451,null));};exports[_0x0fcc('0x48')]=function(_0x111868,_0x102f70){var _0x143af3={'raw':!![],'where':{'id':_0x111868[_0x0fcc('0x49')]['id']}},_0x107e33={};_0x107e33[_0x0fcc('0x32')]=_[_0x0fcc('0x33')](db[_0x0fcc('0x2e')][_0x0fcc('0x2f')]);_0x107e33[_0x0fcc('0x34')]=_[_0x0fcc('0x33')](_0x111868[_0x0fcc('0x34')]);_0x107e33[_0x0fcc('0x35')]=_[_0x0fcc('0x36')](_0x107e33['model'],_0x107e33[_0x0fcc('0x34')]);_0x143af3[_0x0fcc('0x37')]=_[_0x0fcc('0x36')](_0x107e33[_0x0fcc('0x32')],qs[_0x0fcc('0x38')](_0x111868[_0x0fcc('0x34')][_0x0fcc('0x38')]));_0x143af3[_0x0fcc('0x37')]=_0x143af3[_0x0fcc('0x37')]['length']?_0x143af3[_0x0fcc('0x37')]:_0x107e33[_0x0fcc('0x32')];if(_0x111868[_0x0fcc('0x34')][_0x0fcc('0x43')]){_0x143af3[_0x0fcc('0x44')]=[{'all':!![]}];}_0x143af3=_[_0x0fcc('0x3f')]({},_0x143af3,_0x111868[_0x0fcc('0x42')]);return db[_0x0fcc('0x2e')][_0x0fcc('0x4a')](_0x143af3)[_0x0fcc('0x27')](handleEntityNotFound(_0x102f70,null))[_0x0fcc('0x27')](respondWithResult(_0x102f70,null))[_0x0fcc('0x47')](handleError(_0x102f70,null));};exports[_0x0fcc('0x4b')]=function(_0x2ff59d,_0x7070c1,_0x2f8d78){return db[_0x0fcc('0x2e')][_0x0fcc('0x4a')]({'where':{'id':_0x2ff59d[_0x0fcc('0x49')]['id']},'attributes':[_0x0fcc('0x2c'),'save_name',_0x0fcc('0x4c')],'raw':!![]})['then'](handleEntityNotFound(_0x7070c1,null))[_0x0fcc('0x27')](function(_0x105f92){if(_0x105f92){if(!fs[_0x0fcc('0x4d')](path['join'](config[_0x0fcc('0x4e')],_0x0fcc('0x4f'),_0x105f92[_0x0fcc('0x50')]+'.'+_0x105f92[_0x0fcc('0x4c')]))){throw new db[(_0x0fcc('0x51'))][(_0x0fcc('0x52'))](_0x0fcc('0x53'));}return _0x7070c1[_0x0fcc('0x4b')](path[_0x0fcc('0x54')](config[_0x0fcc('0x4e')],_0x0fcc('0x4f'),util[_0x0fcc('0x55')]('%s.%s',_0x105f92['save_name'],_0x105f92[_0x0fcc('0x4c')])),util['format']('%s.%s',_0x105f92[_0x0fcc('0x2c')],_0x105f92[_0x0fcc('0x4c')]));}return null;})['catch'](handleError(_0x7070c1,null));};exports[_0x0fcc('0x56')]=function(_0x4014f4,_0x3e1212,_0x567d90){var _0x5f0cd2={'name':path[_0x0fcc('0x57')](_0x4014f4['file'][_0x0fcc('0x58')],path[_0x0fcc('0x59')](_0x4014f4['file'][_0x0fcc('0x58')])),'save_name':path[_0x0fcc('0x57')](_0x4014f4['file']['filename'],path[_0x0fcc('0x59')](_0x4014f4['file']['filename'])),'original_format':path[_0x0fcc('0x59')](_0x4014f4[_0x0fcc('0x5a')]['originalname'])['substring'](0x1),'converted_format':_0x0fcc('0x5b')};var _0xb277b=path[_0x0fcc('0x54')](config[_0x0fcc('0x4e')],'server/files/sounds/original',_0x4014f4[_0x0fcc('0x5a')]['filename']);var _0x482dc4=path[_0x0fcc('0x54')](config[_0x0fcc('0x4e')],'server/files/sounds/converted',util[_0x0fcc('0x55')](_0x0fcc('0x5c'),path[_0x0fcc('0x57')](_0x4014f4[_0x0fcc('0x5a')]['filename'],path[_0x0fcc('0x59')](_0x4014f4[_0x0fcc('0x5a')][_0x0fcc('0x5d')])),_0x5f0cd2[_0x0fcc('0x4c')]));logger[_0x0fcc('0x5e')](_0x0fcc('0x5f'),_0xb277b);logger[_0x0fcc('0x5e')](_0x0fcc('0x60'),_0x482dc4);try{fs[_0x0fcc('0x61')](_0xb277b,parseInt(_0x0fcc('0x62'),0x8));var _0x4146dc=sox[_0x0fcc('0x63')](_0xb277b,_0x482dc4,{'sampleRate':0x1f40,'format':_0x0fcc('0x5b'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4146dc['on']('error',function(_0x5b60d7){fs[_0x0fcc('0x64')](_0xb277b);_0x3e1212[_0x0fcc('0x1b')](0x1f4)['send'](_0x5b60d7);});_0x4146dc['on'](_0x0fcc('0x65'),function(_0x4f6316){_0x5f0cd2[_0x0fcc('0x66')]=isNaN(_0x4f6316[_0x0fcc('0x67')])?null:_0x4f6316[_0x0fcc('0x67')]*0x3e8;_0x5f0cd2['original_sampleCount']=isNaN(_0x4f6316[_0x0fcc('0x68')])?null:_0x4f6316[_0x0fcc('0x68')];_0x5f0cd2[_0x0fcc('0x69')]=isNaN(_0x4f6316[_0x0fcc('0x6a')])?null:_0x4f6316['channelCount'];_0x5f0cd2[_0x0fcc('0x6b')]=isNaN(_0x4f6316[_0x0fcc('0x6c')])?null:_0x4f6316[_0x0fcc('0x6c')];_0x5f0cd2[_0x0fcc('0x6d')]=isNaN(_0x4f6316[_0x0fcc('0x6e')])?null:_0x4f6316[_0x0fcc('0x6e')];});_0x4146dc['on']('dest',function(_0x436d4b){_0x5f0cd2[_0x0fcc('0x6f')]=isNaN(_0x436d4b[_0x0fcc('0x67')])?null:_0x436d4b[_0x0fcc('0x67')]*0x3e8;_0x5f0cd2['converted_sampleCount']=isNaN(_0x436d4b[_0x0fcc('0x68')])?null:_0x436d4b[_0x0fcc('0x68')];_0x5f0cd2[_0x0fcc('0x70')]=isNaN(_0x436d4b[_0x0fcc('0x6a')])?null:_0x436d4b['channelCount'];_0x5f0cd2[_0x0fcc('0x71')]=isNaN(_0x436d4b[_0x0fcc('0x6c')])?null:_0x436d4b[_0x0fcc('0x6c')];_0x5f0cd2['converted_sampleRate']=isNaN(_0x436d4b[_0x0fcc('0x6e')])?null:_0x436d4b['sampleRate'];});_0x4146dc['on'](_0x0fcc('0x1a'),function(){fs['chmodSync'](_0x482dc4,parseInt(_0x0fcc('0x62'),0x8));return db[_0x0fcc('0x2e')][_0x0fcc('0x56')](_0x5f0cd2)[_0x0fcc('0x27')](function(_0x1816eb){var _0x1a9a34={'role':_0x4014f4[_0x0fcc('0x72')]['role'],'userProfileId':_0x4014f4[_0x0fcc('0x72')][_0x0fcc('0x73')]};if(!_0x1a9a34)throw new Error(_0x0fcc('0x74'));if(_0x1a9a34[_0x0fcc('0x75')]===_0x0fcc('0x76')){var _0x41de51=_0x1816eb[_0x0fcc('0x29')]({'plain':!![]});return db[_0x0fcc('0x77')][_0x0fcc('0x4a')]({'where':{'name':_0x0fcc('0x78'),'userProfileId':_0x1a9a34[_0x0fcc('0x73')]},'raw':!![]})['then'](function(_0x1ad5fb){if(_0x1ad5fb&&_0x1ad5fb[_0x0fcc('0x79')]===0x0){return db[_0x0fcc('0x7a')][_0x0fcc('0x56')]({'name':_0x41de51[_0x0fcc('0x2c')],'resourceId':_0x41de51['id'],'type':_0x1ad5fb[_0x0fcc('0x2c')],'sectionId':_0x1ad5fb['id']},{})['then'](function(){return _0x1816eb;});}else{return _0x1816eb;}})[_0x0fcc('0x47')](function(_0x5065a3){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5065a3);throw _0x5065a3;});}return _0x1816eb;})['then'](respondWithResult(_0x3e1212,null))[_0x0fcc('0x47')](handleError(_0x3e1212,null));});_0x4146dc['start']();}catch(_0x5e33a1){_0x3e1212['status'](0x1f4)[_0x0fcc('0x2d')](_0x5e33a1);}};exports[_0x0fcc('0x26')]=function(_0x5f059e,_0x46066b,_0x5bf66e){return db['Sound']['find']({'where':{'id':_0x5f059e['params']['id']}})[_0x0fcc('0x27')](handleEntityNotFound(_0x46066b,null))[_0x0fcc('0x27')](saveUpdates(_['pick'](_0x5f059e[_0x0fcc('0x72')],[_0x0fcc('0x2c'),_0x0fcc('0x7b')]),null))[_0x0fcc('0x27')](respondWithResult(_0x46066b,null))[_0x0fcc('0x47')](handleError(_0x46066b,null));};exports['delete']=function(_0x4846e9,_0xc78d92,_0x2a761e){return db['Sound']['find']({'where':{'id':_0x4846e9[_0x0fcc('0x49')]['id']}})['then'](function(_0x4b204e){if(_0x4b204e){return _0x4b204e[_0x0fcc('0x28')]();}})[_0x0fcc('0x27')](function(_0x26cd21){var _0x57a62e=path[_0x0fcc('0x54')](config[_0x0fcc('0x4e')],_0x0fcc('0x7c'),util['format'](_0x0fcc('0x5c'),_0x26cd21[_0x0fcc('0x50')],_0x26cd21[_0x0fcc('0x7d')]));var _0x321ba8=path[_0x0fcc('0x54')](config[_0x0fcc('0x4e')],'server/files/sounds/converted',util['format'](_0x0fcc('0x5c'),_0x26cd21[_0x0fcc('0x50')],_0x26cd21[_0x0fcc('0x4c')]));fs['unlinkSync'](_0x57a62e);fs[_0x0fcc('0x64')](_0x321ba8);return _0x26cd21;})[_0x0fcc('0x27')](function(_0x3b24e8){if(_0x3b24e8){return _0xc78d92['status'](0xcc)['end']();}})[_0x0fcc('0x27')](handleEntityNotFound(_0xc78d92,null))[_0x0fcc('0x47')](handleError(_0xc78d92,null));};