7a4cb8bfc7b9277e13a9848597186c7cb522d289
[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 _0xd0b4=['rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','pick','filter','merge','options','Sound','include','findAll','rows','catch','show','params','find','download','save_name','converted_format','existsSync','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','root','format','%s.%s','create','file','extname','originalname','filename','substring','wav','join','basename','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','error','unlinkSync','send','src','original_duration','duration','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_sampleRate','body','userProfileId','role','user','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','server/files/sounds/original','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','get','Sounds','end','stack','name','map'];(function(_0x57cb06,_0x4e038d){var _0x513bde=function(_0x120b1c){while(--_0x120b1c){_0x57cb06['push'](_0x57cb06['shift']());}};_0x513bde(++_0x4e038d);}(_0xd0b4,0x14a));var _0x4d0b=function(_0x10e929,_0x5a5006){_0x10e929=_0x10e929-0x0;var _0x1067f4=_0xd0b4[_0x10e929];return _0x1067f4;};'use strict';var emlformat=require(_0x4d0b('0x0'));var rimraf=require(_0x4d0b('0x1'));var zipdir=require(_0x4d0b('0x2'));var jsonpatch=require(_0x4d0b('0x3'));var rp=require(_0x4d0b('0x4'));var moment=require('moment');var BPromise=require(_0x4d0b('0x5'));var Mustache=require(_0x4d0b('0x6'));var util=require(_0x4d0b('0x7'));var path=require(_0x4d0b('0x8'));var sox=require(_0x4d0b('0x9'));var csv=require('to-csv');var ejs=require(_0x4d0b('0xa'));var fs=require('fs');var fs_extra=require(_0x4d0b('0xb'));var _=require(_0x4d0b('0xc'));var squel=require(_0x4d0b('0xd'));var crypto=require(_0x4d0b('0xe'));var jsforce=require(_0x4d0b('0xf'));var deskjs=require(_0x4d0b('0x10'));var toCsv=require(_0x4d0b('0x11'));var querystring=require(_0x4d0b('0x12'));var Papa=require('papaparse');var Redis=require(_0x4d0b('0x13'));var authService=require(_0x4d0b('0x14'));var qs=require(_0x4d0b('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x4d0b('0x16'))(_0x4d0b('0x17'));var utils=require('../../config/utils');var config=require(_0x4d0b('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x4d0b('0x19'))['db'];function respondWithStatusCode(_0x29d93c,_0x4fa5e1){_0x4fa5e1=_0x4fa5e1||0xcc;return function(_0x3a33a1){if(_0x3a33a1){return _0x29d93c[_0x4d0b('0x1a')](_0x4fa5e1);}return _0x29d93c[_0x4d0b('0x1b')](_0x4fa5e1)['end']();};}function respondWithResult(_0x120f08,_0x1eaed0){_0x1eaed0=_0x1eaed0||0xc8;return function(_0x52a77b){if(_0x52a77b){return _0x120f08[_0x4d0b('0x1b')](_0x1eaed0)[_0x4d0b('0x1c')](_0x52a77b);}};}function respondWithFilteredResult(_0x18fd9a,_0x2d47fc){return function(_0x31af46){if(_0x31af46){var _0x1df13f=typeof _0x2d47fc['offset']===_0x4d0b('0x1d')&&typeof _0x2d47fc[_0x4d0b('0x1e')]==='undefined';var _0x188892=_0x31af46[_0x4d0b('0x1f')];var _0x2ae08f=_0x1df13f?0x0:_0x2d47fc['offset'];var _0x25d668=_0x1df13f?_0x31af46[_0x4d0b('0x1f')]:_0x2d47fc['offset']+_0x2d47fc[_0x4d0b('0x1e')];var _0x30ebe6;if(_0x25d668>=_0x188892){_0x25d668=_0x188892;_0x30ebe6=0xc8;}else{_0x30ebe6=0xce;}_0x18fd9a[_0x4d0b('0x1b')](_0x30ebe6);return _0x18fd9a[_0x4d0b('0x20')](_0x4d0b('0x21'),_0x2ae08f+'-'+_0x25d668+'/'+_0x188892)[_0x4d0b('0x1c')](_0x31af46);}return null;};}function patchUpdates(_0x2d0b15){return function(_0x31a50c){try{jsonpatch[_0x4d0b('0x22')](_0x31a50c,_0x2d0b15,!![]);}catch(_0x9734ce){return BPromise[_0x4d0b('0x23')](_0x9734ce);}return _0x31a50c['save']();};}function saveUpdates(_0x31d80e,_0x21142c){return function(_0x16fb3c){if(_0x16fb3c){return _0x16fb3c[_0x4d0b('0x24')](_0x31d80e)[_0x4d0b('0x25')](function(_0x109d52){return _0x109d52;});}return null;};}function removeEntity(_0x2eb948,_0x3bdb50){return function(_0x540de2){if(_0x540de2){return _0x540de2[_0x4d0b('0x26')]()[_0x4d0b('0x25')](function(){var _0xa658bf=_0x540de2[_0x4d0b('0x27')]({'plain':!![]});var _0x1e16f1=_0x4d0b('0x28');return db['UserProfileResource']['destroy']({'where':{'type':_0x1e16f1,'resourceId':_0xa658bf['id']}})['then'](function(){return _0x540de2;});})[_0x4d0b('0x25')](function(){_0x2eb948[_0x4d0b('0x1b')](0xcc)[_0x4d0b('0x29')]();});}};}function handleEntityNotFound(_0x1f1326,_0x328e7d){return function(_0x521725){if(!_0x521725){_0x1f1326['sendStatus'](0x194);}return _0x521725;};}function handleError(_0x1bb246,_0x3870bb){_0x3870bb=_0x3870bb||0x1f4;return function(_0xcb2327){logger['error'](_0xcb2327[_0x4d0b('0x2a')]);if(_0xcb2327['name']){delete _0xcb2327[_0x4d0b('0x2b')];}_0x1bb246[_0x4d0b('0x1b')](_0x3870bb)['send'](_0xcb2327);};}exports['index']=function(_0x5d3e80,_0x5c15fb){var _0x3a5f89={},_0x53c8a8={},_0x27618f={'count':0x0,'rows':[]};var _0x94da88=_[_0x4d0b('0x2c')](db['Sound'][_0x4d0b('0x2d')],function(_0x55e032){return{'name':_0x55e032['fieldName'],'type':_0x55e032[_0x4d0b('0x2e')][_0x4d0b('0x2f')]};});_0x53c8a8[_0x4d0b('0x30')]=_[_0x4d0b('0x2c')](_0x94da88,'name');_0x53c8a8[_0x4d0b('0x31')]=_[_0x4d0b('0x32')](_0x5d3e80['query']);_0x53c8a8[_0x4d0b('0x33')]=_[_0x4d0b('0x34')](_0x53c8a8[_0x4d0b('0x30')],_0x53c8a8[_0x4d0b('0x31')]);_0x3a5f89[_0x4d0b('0x35')]=_[_0x4d0b('0x34')](_0x53c8a8[_0x4d0b('0x30')],qs[_0x4d0b('0x36')](_0x5d3e80['query'][_0x4d0b('0x36')]));_0x3a5f89[_0x4d0b('0x35')]=_0x3a5f89['attributes'][_0x4d0b('0x37')]?_0x3a5f89[_0x4d0b('0x35')]:_0x53c8a8[_0x4d0b('0x30')];if(!_0x5d3e80[_0x4d0b('0x31')][_0x4d0b('0x38')](_0x4d0b('0x39'))){_0x3a5f89['limit']=qs['limit'](_0x5d3e80['query'][_0x4d0b('0x1e')]);_0x3a5f89[_0x4d0b('0x3a')]=qs[_0x4d0b('0x3a')](_0x5d3e80[_0x4d0b('0x31')][_0x4d0b('0x3a')]);}_0x3a5f89[_0x4d0b('0x3b')]=qs[_0x4d0b('0x3c')](_0x5d3e80[_0x4d0b('0x31')]['sort']);_0x3a5f89[_0x4d0b('0x3d')]=qs[_0x4d0b('0x33')](_[_0x4d0b('0x3e')](_0x5d3e80['query'],_0x53c8a8[_0x4d0b('0x33')]),_0x94da88);if(_0x5d3e80[_0x4d0b('0x31')][_0x4d0b('0x3f')]){_0x3a5f89[_0x4d0b('0x3d')]=_[_0x4d0b('0x40')](_0x3a5f89['where'],{'$or':_[_0x4d0b('0x2c')](_0x94da88,function(_0x4c848d){if(_0x4c848d[_0x4d0b('0x2e')]!=='VIRTUAL'){var _0xf6ab99={};_0xf6ab99[_0x4c848d[_0x4d0b('0x2b')]]={'$like':'%'+_0x5d3e80[_0x4d0b('0x31')][_0x4d0b('0x3f')]+'%'};return _0xf6ab99;}})});}_0x3a5f89=_[_0x4d0b('0x40')]({},_0x3a5f89,_0x5d3e80[_0x4d0b('0x41')]);var _0x49552e={'where':_0x3a5f89[_0x4d0b('0x3d')]};return db[_0x4d0b('0x42')][_0x4d0b('0x1f')](_0x49552e)[_0x4d0b('0x25')](function(_0x21caa2){_0x27618f[_0x4d0b('0x1f')]=_0x21caa2;if(_0x5d3e80['query']['includeAll']){_0x3a5f89[_0x4d0b('0x43')]=[{'all':!![]}];}return db['Sound'][_0x4d0b('0x44')](_0x3a5f89);})[_0x4d0b('0x25')](function(_0x102a81){_0x27618f[_0x4d0b('0x45')]=_0x102a81;return _0x27618f;})[_0x4d0b('0x25')](respondWithFilteredResult(_0x5c15fb,_0x3a5f89))[_0x4d0b('0x46')](handleError(_0x5c15fb,null));};exports[_0x4d0b('0x47')]=function(_0x54011e,_0x4e2737){var _0x31d79d={'raw':!![],'where':{'id':_0x54011e[_0x4d0b('0x48')]['id']}},_0x1ff460={};_0x1ff460['model']=_[_0x4d0b('0x32')](db[_0x4d0b('0x42')][_0x4d0b('0x2d')]);_0x1ff460[_0x4d0b('0x31')]=_[_0x4d0b('0x32')](_0x54011e[_0x4d0b('0x31')]);_0x1ff460[_0x4d0b('0x33')]=_[_0x4d0b('0x34')](_0x1ff460[_0x4d0b('0x30')],_0x1ff460[_0x4d0b('0x31')]);_0x31d79d[_0x4d0b('0x35')]=_[_0x4d0b('0x34')](_0x1ff460[_0x4d0b('0x30')],qs[_0x4d0b('0x36')](_0x54011e[_0x4d0b('0x31')][_0x4d0b('0x36')]));_0x31d79d[_0x4d0b('0x35')]=_0x31d79d['attributes']['length']?_0x31d79d[_0x4d0b('0x35')]:_0x1ff460[_0x4d0b('0x30')];if(_0x54011e[_0x4d0b('0x31')]['includeAll']){_0x31d79d[_0x4d0b('0x43')]=[{'all':!![]}];}_0x31d79d=_[_0x4d0b('0x40')]({},_0x31d79d,_0x54011e['options']);return db[_0x4d0b('0x42')][_0x4d0b('0x49')](_0x31d79d)['then'](handleEntityNotFound(_0x4e2737,null))[_0x4d0b('0x25')](respondWithResult(_0x4e2737,null))['catch'](handleError(_0x4e2737,null));};exports[_0x4d0b('0x4a')]=function(_0x63151a,_0x108482,_0x21c7f6){return db[_0x4d0b('0x42')]['find']({'where':{'id':_0x63151a[_0x4d0b('0x48')]['id']},'attributes':[_0x4d0b('0x2b'),_0x4d0b('0x4b'),_0x4d0b('0x4c')],'raw':!![]})[_0x4d0b('0x25')](handleEntityNotFound(_0x108482,null))[_0x4d0b('0x25')](function(_0x1dbc58){if(_0x1dbc58){if(!fs[_0x4d0b('0x4d')](path['join'](config['root'],_0x4d0b('0x4e'),_0x1dbc58['save_name']+'.'+_0x1dbc58[_0x4d0b('0x4c')]))){throw new db[(_0x4d0b('0x4f'))][(_0x4d0b('0x50'))](_0x4d0b('0x51'));}return _0x108482[_0x4d0b('0x4a')](path['join'](config[_0x4d0b('0x52')],'server/files/sounds/converted',util[_0x4d0b('0x53')](_0x4d0b('0x54'),_0x1dbc58['save_name'],_0x1dbc58['converted_format'])),util[_0x4d0b('0x53')](_0x4d0b('0x54'),_0x1dbc58[_0x4d0b('0x2b')],_0x1dbc58['converted_format']));}return null;})[_0x4d0b('0x46')](handleError(_0x108482,null));};exports[_0x4d0b('0x55')]=function(_0x36b7e9,_0x37c74b,_0x1c1c8f){var _0x1cc571={'name':path['basename'](_0x36b7e9[_0x4d0b('0x56')]['originalname'],path[_0x4d0b('0x57')](_0x36b7e9[_0x4d0b('0x56')][_0x4d0b('0x58')])),'save_name':path['basename'](_0x36b7e9['file']['filename'],path[_0x4d0b('0x57')](_0x36b7e9[_0x4d0b('0x56')][_0x4d0b('0x59')])),'original_format':path[_0x4d0b('0x57')](_0x36b7e9[_0x4d0b('0x56')][_0x4d0b('0x58')])[_0x4d0b('0x5a')](0x1),'converted_format':_0x4d0b('0x5b')};var _0xaa7abf=path[_0x4d0b('0x5c')](config[_0x4d0b('0x52')],'server/files/sounds/original',_0x36b7e9['file'][_0x4d0b('0x59')]);var _0x47e6a7=path[_0x4d0b('0x5c')](config[_0x4d0b('0x52')],'server/files/sounds/converted',util[_0x4d0b('0x53')](_0x4d0b('0x54'),path[_0x4d0b('0x5d')](_0x36b7e9[_0x4d0b('0x56')][_0x4d0b('0x59')],path[_0x4d0b('0x57')](_0x36b7e9[_0x4d0b('0x56')][_0x4d0b('0x59')])),_0x1cc571[_0x4d0b('0x4c')]));logger['info']('Sound\x20upload\x20filepath:\x20%s',_0xaa7abf);logger[_0x4d0b('0x5e')](_0x4d0b('0x5f'),_0x47e6a7);try{fs[_0x4d0b('0x60')](_0xaa7abf,parseInt(_0x4d0b('0x61'),0x8));var _0x8af9f=sox[_0x4d0b('0x62')](_0xaa7abf,_0x47e6a7,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x8af9f['on'](_0x4d0b('0x63'),function(_0x4fc170){fs[_0x4d0b('0x64')](_0xaa7abf);_0x37c74b[_0x4d0b('0x1b')](0x1f4)[_0x4d0b('0x65')](_0x4fc170);});_0x8af9f['on'](_0x4d0b('0x66'),function(_0x59bd91){_0x1cc571[_0x4d0b('0x67')]=isNaN(_0x59bd91[_0x4d0b('0x68')])?null:_0x59bd91[_0x4d0b('0x68')]*0x3e8;_0x1cc571['original_sampleCount']=isNaN(_0x59bd91['sampleCount'])?null:_0x59bd91[_0x4d0b('0x69')];_0x1cc571[_0x4d0b('0x6a')]=isNaN(_0x59bd91['channelCount'])?null:_0x59bd91[_0x4d0b('0x6b')];_0x1cc571['original_bitRate']=isNaN(_0x59bd91['bitRate'])?null:_0x59bd91[_0x4d0b('0x6c')];_0x1cc571[_0x4d0b('0x6d')]=isNaN(_0x59bd91[_0x4d0b('0x6e')])?null:_0x59bd91[_0x4d0b('0x6e')];});_0x8af9f['on'](_0x4d0b('0x6f'),function(_0x24b7c6){_0x1cc571[_0x4d0b('0x70')]=isNaN(_0x24b7c6[_0x4d0b('0x68')])?null:_0x24b7c6[_0x4d0b('0x68')]*0x3e8;_0x1cc571[_0x4d0b('0x71')]=isNaN(_0x24b7c6['sampleCount'])?null:_0x24b7c6['sampleCount'];_0x1cc571['converted_channelCount']=isNaN(_0x24b7c6[_0x4d0b('0x6b')])?null:_0x24b7c6['channelCount'];_0x1cc571['converted_bitRate']=isNaN(_0x24b7c6[_0x4d0b('0x6c')])?null:_0x24b7c6[_0x4d0b('0x6c')];_0x1cc571[_0x4d0b('0x72')]=isNaN(_0x24b7c6['sampleRate'])?null:_0x24b7c6['sampleRate'];});_0x8af9f['on'](_0x4d0b('0x29'),function(){fs[_0x4d0b('0x60')](_0x47e6a7,parseInt(_0x4d0b('0x61'),0x8));return db[_0x4d0b('0x42')][_0x4d0b('0x55')](_0x1cc571)[_0x4d0b('0x25')](function(_0x1c3bf0){var _0x34b934={'role':_0x36b7e9[_0x4d0b('0x73')]['role'],'userProfileId':_0x36b7e9[_0x4d0b('0x73')][_0x4d0b('0x74')]};if(!_0x34b934)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x34b934[_0x4d0b('0x75')]===_0x4d0b('0x76')){var _0x1bda69=_0x1c3bf0[_0x4d0b('0x27')]({'plain':!![]});return db['UserProfileSection'][_0x4d0b('0x49')]({'where':{'name':_0x4d0b('0x28'),'userProfileId':_0x34b934[_0x4d0b('0x74')]},'raw':!![]})['then'](function(_0x151c43){if(_0x151c43&&_0x151c43['autoAssociation']===0x0){return db[_0x4d0b('0x77')][_0x4d0b('0x55')]({'name':_0x1bda69[_0x4d0b('0x2b')],'resourceId':_0x1bda69['id'],'type':_0x151c43[_0x4d0b('0x2b')],'sectionId':_0x151c43['id']},{})[_0x4d0b('0x25')](function(){return _0x1c3bf0;});}else{return _0x1c3bf0;}})[_0x4d0b('0x46')](function(_0x5b8372){logger[_0x4d0b('0x63')](_0x4d0b('0x78'),_0x5b8372);throw _0x5b8372;});}return _0x1c3bf0;})[_0x4d0b('0x25')](respondWithResult(_0x37c74b,null))['catch'](handleError(_0x37c74b,null));});_0x8af9f[_0x4d0b('0x79')]();}catch(_0x297421){_0x37c74b[_0x4d0b('0x1b')](0x1f4)[_0x4d0b('0x65')](_0x297421);}};exports['update']=function(_0x3e5853,_0x3c88a1,_0x3491f6){return db[_0x4d0b('0x42')][_0x4d0b('0x49')]({'where':{'id':_0x3e5853[_0x4d0b('0x48')]['id']}})[_0x4d0b('0x25')](handleEntityNotFound(_0x3c88a1,null))[_0x4d0b('0x25')](saveUpdates(_[_0x4d0b('0x3e')](_0x3e5853[_0x4d0b('0x73')],[_0x4d0b('0x2b'),_0x4d0b('0x7a')]),null))[_0x4d0b('0x25')](respondWithResult(_0x3c88a1,null))[_0x4d0b('0x46')](handleError(_0x3c88a1,null));};exports['delete']=function(_0x582cb3,_0x440f37,_0x7fb4b6){return db['Sound'][_0x4d0b('0x49')]({'where':{'id':_0x582cb3[_0x4d0b('0x48')]['id']}})[_0x4d0b('0x25')](function(_0x37963c){if(_0x37963c){return _0x37963c['destroy']();}})['then'](function(_0x57fc7f){var _0x39579d=path['join'](config[_0x4d0b('0x52')],_0x4d0b('0x7b'),util[_0x4d0b('0x53')](_0x4d0b('0x54'),_0x57fc7f[_0x4d0b('0x4b')],_0x57fc7f[_0x4d0b('0x7c')]));var _0x2285a1=path[_0x4d0b('0x5c')](config[_0x4d0b('0x52')],_0x4d0b('0x4e'),util[_0x4d0b('0x53')]('%s.%s',_0x57fc7f[_0x4d0b('0x4b')],_0x57fc7f[_0x4d0b('0x4c')]));fs['unlinkSync'](_0x39579d);fs[_0x4d0b('0x64')](_0x2285a1);return _0x57fc7f;})[_0x4d0b('0x25')](function(_0x45ff20){if(_0x45ff20){return _0x440f37[_0x4d0b('0x1b')](0xcc)[_0x4d0b('0x29')]();}})['then'](handleEntityNotFound(_0x440f37,null))[_0x4d0b('0x46')](handleError(_0x440f37,null));};