b779f1f7a9f9f6f654ff1041c5ad0c59ec7fbe80
[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 _0xa826=['duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','update','description','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','limit','offset','count','set','Content-Range','save','then','destroy','Sounds','error','stack','name','send','index','Sound','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','map','VIRTUAL','filter','includeAll','include','findAll','rows','show','rawAttributes','merge','catch','download','find','params','save_name','converted_format','join','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','root','format','%s.%s','create','basename','file','originalname','filename','extname','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','src','original_duration'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xa826,0x18b));var _0x6a82=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa826[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require(_0x6a82('0x0'));var rimraf=require(_0x6a82('0x1'));var zipdir=require(_0x6a82('0x2'));var jsonpatch=require(_0x6a82('0x3'));var rp=require(_0x6a82('0x4'));var moment=require(_0x6a82('0x5'));var BPromise=require(_0x6a82('0x6'));var Mustache=require('mustache');var util=require(_0x6a82('0x7'));var path=require(_0x6a82('0x8'));var sox=require(_0x6a82('0x9'));var csv=require('to-csv');var ejs=require(_0x6a82('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6a82('0xb'));var squel=require(_0x6a82('0xc'));var crypto=require('crypto');var jsforce=require(_0x6a82('0xd'));var deskjs=require(_0x6a82('0xe'));var toCsv=require(_0x6a82('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6a82('0x10'));var as=require(_0x6a82('0x11'));var hardwareService=require(_0x6a82('0x12'));var logger=require('../../config/logger')(_0x6a82('0x13'));var utils=require(_0x6a82('0x14'));var config=require(_0x6a82('0x15'));var licenseUtil=require(_0x6a82('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x26990d,_0xfd1b1a){_0xfd1b1a=_0xfd1b1a||0xcc;return function(_0x17dcc5){if(_0x17dcc5){return _0x26990d[_0x6a82('0x17')](_0xfd1b1a);}return _0x26990d[_0x6a82('0x18')](_0xfd1b1a)[_0x6a82('0x19')]();};}function respondWithResult(_0x50a67a,_0x22d757){_0x22d757=_0x22d757||0xc8;return function(_0x710e36){if(_0x710e36){return _0x50a67a['status'](_0x22d757)[_0x6a82('0x1a')](_0x710e36);}};}function respondWithFilteredResult(_0x287aa4,_0x2ec482){return function(_0x5aefd6){if(_0x5aefd6){var _0x2cc5ea=typeof _0x2ec482['offset']==='undefined'&&typeof _0x2ec482[_0x6a82('0x1b')]==='undefined';var _0x5ed3f9=_0x5aefd6['count'];var _0x2b3418=_0x2cc5ea?0x0:_0x2ec482[_0x6a82('0x1c')];var _0x2c7120=_0x2cc5ea?_0x5aefd6[_0x6a82('0x1d')]:_0x2ec482[_0x6a82('0x1c')]+_0x2ec482[_0x6a82('0x1b')];var _0x4a628b;if(_0x2c7120>=_0x5ed3f9){_0x2c7120=_0x5ed3f9;_0x4a628b=0xc8;}else{_0x4a628b=0xce;}_0x287aa4[_0x6a82('0x18')](_0x4a628b);return _0x287aa4[_0x6a82('0x1e')](_0x6a82('0x1f'),_0x2b3418+'-'+_0x2c7120+'/'+_0x5ed3f9)['json'](_0x5aefd6);}return null;};}function patchUpdates(_0x181164){return function(_0x3998e4){try{jsonpatch['apply'](_0x3998e4,_0x181164,!![]);}catch(_0x381eaf){return BPromise['reject'](_0x381eaf);}return _0x3998e4[_0x6a82('0x20')]();};}function saveUpdates(_0x36d659,_0x8ae956){return function(_0x9d1076){if(_0x9d1076){return _0x9d1076['update'](_0x36d659)[_0x6a82('0x21')](function(_0x15911e){return _0x15911e;});}return null;};}function removeEntity(_0x3c0240,_0x21169c){return function(_0x3852e5){if(_0x3852e5){return _0x3852e5[_0x6a82('0x22')]()['then'](function(){var _0x1b4b65=_0x3852e5['get']({'plain':!![]});var _0xa6b3e2=_0x6a82('0x23');return db['UserProfileResource'][_0x6a82('0x22')]({'where':{'type':_0xa6b3e2,'resourceId':_0x1b4b65['id']}})['then'](function(){return _0x3852e5;});})[_0x6a82('0x21')](function(){_0x3c0240['status'](0xcc)[_0x6a82('0x19')]();});}};}function handleEntityNotFound(_0xa65c6f,_0x150621){return function(_0x45bda0){if(!_0x45bda0){_0xa65c6f[_0x6a82('0x17')](0x194);}return _0x45bda0;};}function handleError(_0x5a8906,_0x1f174a){_0x1f174a=_0x1f174a||0x1f4;return function(_0x483cfd){logger[_0x6a82('0x24')](_0x483cfd[_0x6a82('0x25')]);if(_0x483cfd['name']){delete _0x483cfd[_0x6a82('0x26')];}_0x5a8906['status'](_0x1f174a)[_0x6a82('0x27')](_0x483cfd);};}exports[_0x6a82('0x28')]=function(_0x1f8a99,_0x1af0e3){var _0x437011={},_0x12e794={},_0x4acd7b={'count':0x0,'rows':[]};var _0x2778d3=_['map'](db[_0x6a82('0x29')]['rawAttributes'],function(_0x132527){return{'name':_0x132527[_0x6a82('0x2a')],'type':_0x132527[_0x6a82('0x2b')][_0x6a82('0x2c')]};});_0x12e794['model']=_['map'](_0x2778d3,_0x6a82('0x26'));_0x12e794[_0x6a82('0x2d')]=_[_0x6a82('0x2e')](_0x1f8a99['query']);_0x12e794[_0x6a82('0x2f')]=_[_0x6a82('0x30')](_0x12e794[_0x6a82('0x31')],_0x12e794['query']);_0x437011['attributes']=_[_0x6a82('0x30')](_0x12e794[_0x6a82('0x31')],qs[_0x6a82('0x32')](_0x1f8a99[_0x6a82('0x2d')][_0x6a82('0x32')]));_0x437011['attributes']=_0x437011[_0x6a82('0x33')][_0x6a82('0x34')]?_0x437011[_0x6a82('0x33')]:_0x12e794[_0x6a82('0x31')];if(!_0x1f8a99[_0x6a82('0x2d')][_0x6a82('0x35')](_0x6a82('0x36'))){_0x437011['limit']=qs['limit'](_0x1f8a99[_0x6a82('0x2d')][_0x6a82('0x1b')]);_0x437011[_0x6a82('0x1c')]=qs[_0x6a82('0x1c')](_0x1f8a99[_0x6a82('0x2d')][_0x6a82('0x1c')]);}_0x437011[_0x6a82('0x37')]=qs[_0x6a82('0x38')](_0x1f8a99['query'][_0x6a82('0x38')]);_0x437011[_0x6a82('0x39')]=qs['filters'](_[_0x6a82('0x3a')](_0x1f8a99[_0x6a82('0x2d')],_0x12e794[_0x6a82('0x2f')]),_0x2778d3);if(_0x1f8a99['query']['filter']){_0x437011[_0x6a82('0x39')]=_['merge'](_0x437011[_0x6a82('0x39')],{'$or':_[_0x6a82('0x3b')](_0x2778d3,function(_0x4e030a){if(_0x4e030a[_0x6a82('0x2b')]!==_0x6a82('0x3c')){var _0x32dddd={};_0x32dddd[_0x4e030a[_0x6a82('0x26')]]={'$like':'%'+_0x1f8a99[_0x6a82('0x2d')][_0x6a82('0x3d')]+'%'};return _0x32dddd;}})});}_0x437011=_['merge']({},_0x437011,_0x1f8a99['options']);var _0x3342ef={'where':_0x437011[_0x6a82('0x39')]};return db[_0x6a82('0x29')][_0x6a82('0x1d')](_0x3342ef)[_0x6a82('0x21')](function(_0x3e0293){_0x4acd7b[_0x6a82('0x1d')]=_0x3e0293;if(_0x1f8a99[_0x6a82('0x2d')][_0x6a82('0x3e')]){_0x437011[_0x6a82('0x3f')]=[{'all':!![]}];}return db[_0x6a82('0x29')][_0x6a82('0x40')](_0x437011);})[_0x6a82('0x21')](function(_0x523a6f){_0x4acd7b[_0x6a82('0x41')]=_0x523a6f;return _0x4acd7b;})[_0x6a82('0x21')](respondWithFilteredResult(_0x1af0e3,_0x437011))['catch'](handleError(_0x1af0e3,null));};exports[_0x6a82('0x42')]=function(_0x55f776,_0x75deff){var _0x588071={'raw':!![],'where':{'id':_0x55f776['params']['id']}},_0x5b9c6a={};_0x5b9c6a['model']=_['keys'](db[_0x6a82('0x29')][_0x6a82('0x43')]);_0x5b9c6a[_0x6a82('0x2d')]=_[_0x6a82('0x2e')](_0x55f776['query']);_0x5b9c6a[_0x6a82('0x2f')]=_[_0x6a82('0x30')](_0x5b9c6a[_0x6a82('0x31')],_0x5b9c6a[_0x6a82('0x2d')]);_0x588071[_0x6a82('0x33')]=_[_0x6a82('0x30')](_0x5b9c6a[_0x6a82('0x31')],qs['fields'](_0x55f776['query'][_0x6a82('0x32')]));_0x588071[_0x6a82('0x33')]=_0x588071[_0x6a82('0x33')]['length']?_0x588071[_0x6a82('0x33')]:_0x5b9c6a[_0x6a82('0x31')];if(_0x55f776[_0x6a82('0x2d')][_0x6a82('0x3e')]){_0x588071[_0x6a82('0x3f')]=[{'all':!![]}];}_0x588071=_[_0x6a82('0x44')]({},_0x588071,_0x55f776['options']);return db['Sound']['find'](_0x588071)[_0x6a82('0x21')](handleEntityNotFound(_0x75deff,null))['then'](respondWithResult(_0x75deff,null))[_0x6a82('0x45')](handleError(_0x75deff,null));};exports[_0x6a82('0x46')]=function(_0x1675ab,_0xb1fc76,_0x564ae9){return db[_0x6a82('0x29')][_0x6a82('0x47')]({'where':{'id':_0x1675ab[_0x6a82('0x48')]['id']},'attributes':[_0x6a82('0x26'),_0x6a82('0x49'),_0x6a82('0x4a')],'raw':!![]})['then'](handleEntityNotFound(_0xb1fc76,null))[_0x6a82('0x21')](function(_0x591512){if(_0x591512){if(!fs['existsSync'](path[_0x6a82('0x4b')](config['root'],_0x6a82('0x4c'),_0x591512[_0x6a82('0x49')]+'.'+_0x591512[_0x6a82('0x4a')]))){throw new db[(_0x6a82('0x4d'))][(_0x6a82('0x4e'))](_0x6a82('0x4f'));}return _0xb1fc76[_0x6a82('0x46')](path[_0x6a82('0x4b')](config[_0x6a82('0x50')],_0x6a82('0x4c'),util[_0x6a82('0x51')](_0x6a82('0x52'),_0x591512['save_name'],_0x591512['converted_format'])),util[_0x6a82('0x51')](_0x6a82('0x52'),_0x591512[_0x6a82('0x26')],_0x591512[_0x6a82('0x4a')]));}return null;})[_0x6a82('0x45')](handleError(_0xb1fc76,null));};exports[_0x6a82('0x53')]=function(_0x542feb,_0x10ccf7,_0x14437a){var _0x1739a1={'name':path[_0x6a82('0x54')](_0x542feb[_0x6a82('0x55')]['originalname'],path['extname'](_0x542feb[_0x6a82('0x55')][_0x6a82('0x56')])),'save_name':path[_0x6a82('0x54')](_0x542feb[_0x6a82('0x55')][_0x6a82('0x57')],path['extname'](_0x542feb['file']['filename'])),'original_format':path[_0x6a82('0x58')](_0x542feb[_0x6a82('0x55')][_0x6a82('0x56')])[_0x6a82('0x59')](0x1),'converted_format':_0x6a82('0x5a')};var _0x54820f=path[_0x6a82('0x4b')](config[_0x6a82('0x50')],_0x6a82('0x5b'),_0x542feb[_0x6a82('0x55')][_0x6a82('0x57')]);var _0x59cc16=path[_0x6a82('0x4b')](config[_0x6a82('0x50')],_0x6a82('0x4c'),util[_0x6a82('0x51')]('%s.%s',path[_0x6a82('0x54')](_0x542feb[_0x6a82('0x55')][_0x6a82('0x57')],path['extname'](_0x542feb[_0x6a82('0x55')][_0x6a82('0x57')])),_0x1739a1[_0x6a82('0x4a')]));logger[_0x6a82('0x5c')](_0x6a82('0x5d'),_0x54820f);logger['info'](_0x6a82('0x5e'),_0x59cc16);try{fs[_0x6a82('0x5f')](_0x54820f,parseInt(_0x6a82('0x60'),0x8));var _0x311007=sox[_0x6a82('0x61')](_0x54820f,_0x59cc16,{'sampleRate':0x1f40,'format':_0x6a82('0x5a'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x311007['on'](_0x6a82('0x24'),function(_0x34275a){fs[_0x6a82('0x62')](_0x54820f);_0x10ccf7[_0x6a82('0x18')](0x1f4)[_0x6a82('0x27')](_0x34275a);});_0x311007['on'](_0x6a82('0x63'),function(_0x51aaeb){_0x1739a1[_0x6a82('0x64')]=isNaN(_0x51aaeb[_0x6a82('0x65')])?null:_0x51aaeb['duration']*0x3e8;_0x1739a1[_0x6a82('0x66')]=isNaN(_0x51aaeb[_0x6a82('0x67')])?null:_0x51aaeb[_0x6a82('0x67')];_0x1739a1[_0x6a82('0x68')]=isNaN(_0x51aaeb[_0x6a82('0x69')])?null:_0x51aaeb[_0x6a82('0x69')];_0x1739a1[_0x6a82('0x6a')]=isNaN(_0x51aaeb['bitRate'])?null:_0x51aaeb[_0x6a82('0x6b')];_0x1739a1['original_sampleRate']=isNaN(_0x51aaeb[_0x6a82('0x6c')])?null:_0x51aaeb[_0x6a82('0x6c')];});_0x311007['on'](_0x6a82('0x6d'),function(_0x3b6e5a){_0x1739a1[_0x6a82('0x6e')]=isNaN(_0x3b6e5a['duration'])?null:_0x3b6e5a[_0x6a82('0x65')]*0x3e8;_0x1739a1[_0x6a82('0x6f')]=isNaN(_0x3b6e5a[_0x6a82('0x67')])?null:_0x3b6e5a[_0x6a82('0x67')];_0x1739a1['converted_channelCount']=isNaN(_0x3b6e5a[_0x6a82('0x69')])?null:_0x3b6e5a[_0x6a82('0x69')];_0x1739a1[_0x6a82('0x70')]=isNaN(_0x3b6e5a['bitRate'])?null:_0x3b6e5a[_0x6a82('0x6b')];_0x1739a1[_0x6a82('0x71')]=isNaN(_0x3b6e5a['sampleRate'])?null:_0x3b6e5a[_0x6a82('0x6c')];});_0x311007['on'](_0x6a82('0x19'),function(){fs[_0x6a82('0x5f')](_0x59cc16,parseInt('0777',0x8));return db[_0x6a82('0x29')]['create'](_0x1739a1)[_0x6a82('0x21')](function(_0x32c33e){var _0x20e5f7={'role':_0x542feb['body']['role'],'userProfileId':_0x542feb[_0x6a82('0x72')][_0x6a82('0x73')]};if(!_0x20e5f7)throw new Error(_0x6a82('0x74'));if(_0x20e5f7['role']===_0x6a82('0x75')){var _0x5df0ec=_0x32c33e[_0x6a82('0x76')]({'plain':!![]});return db['UserProfileSection'][_0x6a82('0x47')]({'where':{'name':_0x6a82('0x23'),'userProfileId':_0x20e5f7[_0x6a82('0x73')]},'raw':!![]})['then'](function(_0x5d7e8a){if(_0x5d7e8a&&_0x5d7e8a[_0x6a82('0x77')]===0x0){return db['UserProfileResource'][_0x6a82('0x53')]({'name':_0x5df0ec[_0x6a82('0x26')],'resourceId':_0x5df0ec['id'],'type':_0x5d7e8a[_0x6a82('0x26')],'sectionId':_0x5d7e8a['id']},{})[_0x6a82('0x21')](function(){return _0x32c33e;});}else{return _0x32c33e;}})[_0x6a82('0x45')](function(_0x4e87ff){logger[_0x6a82('0x24')](_0x6a82('0x78'),_0x4e87ff);throw _0x4e87ff;});}return _0x32c33e;})[_0x6a82('0x21')](respondWithResult(_0x10ccf7,null))[_0x6a82('0x45')](handleError(_0x10ccf7,null));});_0x311007[_0x6a82('0x79')]();}catch(_0x25f23f){_0x10ccf7[_0x6a82('0x18')](0x1f4)[_0x6a82('0x27')](_0x25f23f);}};exports[_0x6a82('0x7a')]=function(_0x5d9897,_0x33c8bd,_0x332433){return db['Sound'][_0x6a82('0x47')]({'where':{'id':_0x5d9897['params']['id']}})[_0x6a82('0x21')](handleEntityNotFound(_0x33c8bd,null))['then'](saveUpdates(_['pick'](_0x5d9897[_0x6a82('0x72')],[_0x6a82('0x26'),_0x6a82('0x7b')]),null))[_0x6a82('0x21')](respondWithResult(_0x33c8bd,null))['catch'](handleError(_0x33c8bd,null));};exports['delete']=function(_0x4f24a2,_0x438a93,_0x3d2f59){return db[_0x6a82('0x29')]['find']({'where':{'id':_0x4f24a2[_0x6a82('0x48')]['id']}})[_0x6a82('0x21')](function(_0x562ebc){if(_0x562ebc){return _0x562ebc[_0x6a82('0x22')]();}})[_0x6a82('0x21')](function(_0x142899){var _0x1c186a=path['join'](config['root'],'server/files/sounds/original',util['format'](_0x6a82('0x52'),_0x142899[_0x6a82('0x49')],_0x142899['original_format']));var _0x4fde1b=path[_0x6a82('0x4b')](config[_0x6a82('0x50')],_0x6a82('0x4c'),util[_0x6a82('0x51')](_0x6a82('0x52'),_0x142899[_0x6a82('0x49')],_0x142899[_0x6a82('0x4a')]));fs['unlinkSync'](_0x1c186a);fs[_0x6a82('0x62')](_0x4fde1b);return _0x142899;})[_0x6a82('0x21')](function(_0x104728){if(_0x104728){return _0x438a93[_0x6a82('0x18')](0xcc)['end']();}})[_0x6a82('0x21')](handleEntityNotFound(_0x438a93,null))[_0x6a82('0x45')](handleError(_0x438a93,null));};