Built motion from commit e38a297d.|2.6.18
[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 _0x3afc=['../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','update','then','get','Sounds','destroy','sendStatus','error','stack','name','send','index','Sound','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','rows','catch','show','keys','rawAttributes','include','find','params','save_name','converted_format','existsSync','join','root','Sequelize','ValidationError','download','format','%s.%s','basename','file','originalname','filename','extname','substring','wav','server/files/sounds/original','server/files/sounds/converted','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','UserProfileResource','start','description','delete','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','ioredis','../../components/auth/service'];(function(_0x2abeee,_0x1d7879){var _0x17929b=function(_0x3e54c9){while(--_0x3e54c9){_0x2abeee['push'](_0x2abeee['shift']());}};_0x17929b(++_0x1d7879);}(_0x3afc,0x1e2));var _0xc3af=function(_0x4c224c,_0x5675e4){_0x4c224c=_0x4c224c-0x0;var _0x525692=_0x3afc[_0x4c224c];return _0x525692;};'use strict';var emlformat=require(_0xc3af('0x0'));var rimraf=require(_0xc3af('0x1'));var zipdir=require(_0xc3af('0x2'));var jsonpatch=require(_0xc3af('0x3'));var rp=require(_0xc3af('0x4'));var moment=require(_0xc3af('0x5'));var BPromise=require(_0xc3af('0x6'));var Mustache=require(_0xc3af('0x7'));var util=require('util');var path=require(_0xc3af('0x8'));var sox=require(_0xc3af('0x9'));var csv=require('to-csv');var ejs=require(_0xc3af('0xa'));var fs=require('fs');var fs_extra=require(_0xc3af('0xb'));var _=require('lodash');var squel=require(_0xc3af('0xc'));var crypto=require(_0xc3af('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xc3af('0xe'));var toCsv=require(_0xc3af('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xc3af('0x10'));var authService=require(_0xc3af('0x11'));var qs=require(_0xc3af('0x12'));var as=require(_0xc3af('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc3af('0x14'));var utils=require('../../config/utils');var config=require(_0xc3af('0x15'));var licenseUtil=require(_0xc3af('0x16'));var db=require(_0xc3af('0x17'))['db'];function respondWithStatusCode(_0x114395,_0xddcd3){_0xddcd3=_0xddcd3||0xcc;return function(_0x211e7d){if(_0x211e7d){return _0x114395['sendStatus'](_0xddcd3);}return _0x114395[_0xc3af('0x18')](_0xddcd3)[_0xc3af('0x19')]();};}function respondWithResult(_0x44364f,_0x113a46){_0x113a46=_0x113a46||0xc8;return function(_0x70174f){if(_0x70174f){return _0x44364f[_0xc3af('0x18')](_0x113a46)[_0xc3af('0x1a')](_0x70174f);}};}function respondWithFilteredResult(_0x291aed,_0xa77fe7){return function(_0x3ba17e){if(_0x3ba17e){var _0x436ac4=typeof _0xa77fe7['offset']===_0xc3af('0x1b')&&typeof _0xa77fe7[_0xc3af('0x1c')]==='undefined';var _0x5c7ca1=_0x3ba17e[_0xc3af('0x1d')];var _0x4aba21=_0x436ac4?0x0:_0xa77fe7[_0xc3af('0x1e')];var _0x40783c=_0x436ac4?_0x3ba17e[_0xc3af('0x1d')]:_0xa77fe7['offset']+_0xa77fe7['limit'];var _0x3b2211;if(_0x40783c>=_0x5c7ca1){_0x40783c=_0x5c7ca1;_0x3b2211=0xc8;}else{_0x3b2211=0xce;}_0x291aed[_0xc3af('0x18')](_0x3b2211);return _0x291aed['set'](_0xc3af('0x1f'),_0x4aba21+'-'+_0x40783c+'/'+_0x5c7ca1)[_0xc3af('0x1a')](_0x3ba17e);}return null;};}function patchUpdates(_0x1ca825){return function(_0x137387){try{jsonpatch[_0xc3af('0x20')](_0x137387,_0x1ca825,!![]);}catch(_0x281bd9){return BPromise[_0xc3af('0x21')](_0x281bd9);}return _0x137387['save']();};}function saveUpdates(_0x3df1b8,_0x28c8e9){return function(_0x2b3c6a){if(_0x2b3c6a){return _0x2b3c6a[_0xc3af('0x22')](_0x3df1b8)[_0xc3af('0x23')](function(_0x4de5b5){return _0x4de5b5;});}return null;};}function removeEntity(_0x367209,_0x1369ee){return function(_0x38e4e5){if(_0x38e4e5){return _0x38e4e5['destroy']()[_0xc3af('0x23')](function(){var _0x2b88ed=_0x38e4e5[_0xc3af('0x24')]({'plain':!![]});var _0x143a70=_0xc3af('0x25');return db['UserProfileResource'][_0xc3af('0x26')]({'where':{'type':_0x143a70,'resourceId':_0x2b88ed['id']}})[_0xc3af('0x23')](function(){return _0x38e4e5;});})[_0xc3af('0x23')](function(){_0x367209[_0xc3af('0x18')](0xcc)[_0xc3af('0x19')]();});}};}function handleEntityNotFound(_0x28c91d,_0x2cc573){return function(_0x4b5d9a){if(!_0x4b5d9a){_0x28c91d[_0xc3af('0x27')](0x194);}return _0x4b5d9a;};}function handleError(_0x511e8b,_0x58c673){_0x58c673=_0x58c673||0x1f4;return function(_0x2e3527){logger[_0xc3af('0x28')](_0x2e3527[_0xc3af('0x29')]);if(_0x2e3527['name']){delete _0x2e3527[_0xc3af('0x2a')];}_0x511e8b[_0xc3af('0x18')](_0x58c673)[_0xc3af('0x2b')](_0x2e3527);};}exports[_0xc3af('0x2c')]=function(_0x50157f,_0x30c17a){var _0x1d39fb={},_0x5d629c={},_0x2de915={'count':0x0,'rows':[]};var _0x135ed5=_['map'](db[_0xc3af('0x2d')]['rawAttributes'],function(_0x1b10a4){return{'name':_0x1b10a4['fieldName'],'type':_0x1b10a4[_0xc3af('0x2e')][_0xc3af('0x2f')]};});_0x5d629c[_0xc3af('0x30')]=_[_0xc3af('0x31')](_0x135ed5,'name');_0x5d629c[_0xc3af('0x32')]=_['keys'](_0x50157f[_0xc3af('0x32')]);_0x5d629c[_0xc3af('0x33')]=_[_0xc3af('0x34')](_0x5d629c[_0xc3af('0x30')],_0x5d629c[_0xc3af('0x32')]);_0x1d39fb[_0xc3af('0x35')]=_[_0xc3af('0x34')](_0x5d629c['model'],qs[_0xc3af('0x36')](_0x50157f[_0xc3af('0x32')][_0xc3af('0x36')]));_0x1d39fb[_0xc3af('0x35')]=_0x1d39fb['attributes'][_0xc3af('0x37')]?_0x1d39fb[_0xc3af('0x35')]:_0x5d629c['model'];if(!_0x50157f['query'][_0xc3af('0x38')]('nolimit')){_0x1d39fb[_0xc3af('0x1c')]=qs[_0xc3af('0x1c')](_0x50157f['query'][_0xc3af('0x1c')]);_0x1d39fb[_0xc3af('0x1e')]=qs['offset'](_0x50157f[_0xc3af('0x32')][_0xc3af('0x1e')]);}_0x1d39fb[_0xc3af('0x39')]=qs[_0xc3af('0x3a')](_0x50157f[_0xc3af('0x32')][_0xc3af('0x3a')]);_0x1d39fb[_0xc3af('0x3b')]=qs['filters'](_[_0xc3af('0x3c')](_0x50157f[_0xc3af('0x32')],_0x5d629c['filters']),_0x135ed5);if(_0x50157f[_0xc3af('0x32')]['filter']){_0x1d39fb[_0xc3af('0x3b')]=_['merge'](_0x1d39fb['where'],{'$or':_[_0xc3af('0x31')](_0x135ed5,function(_0x195d08){if(_0x195d08[_0xc3af('0x2e')]!==_0xc3af('0x3d')){var _0x3e6457={};_0x3e6457[_0x195d08[_0xc3af('0x2a')]]={'$like':'%'+_0x50157f[_0xc3af('0x32')][_0xc3af('0x3e')]+'%'};return _0x3e6457;}})});}_0x1d39fb=_[_0xc3af('0x3f')]({},_0x1d39fb,_0x50157f[_0xc3af('0x40')]);var _0x26f590={'where':_0x1d39fb['where']};return db[_0xc3af('0x2d')][_0xc3af('0x1d')](_0x26f590)[_0xc3af('0x23')](function(_0x2a3477){_0x2de915[_0xc3af('0x1d')]=_0x2a3477;if(_0x50157f[_0xc3af('0x32')][_0xc3af('0x41')]){_0x1d39fb['include']=[{'all':!![]}];}return db[_0xc3af('0x2d')]['findAll'](_0x1d39fb);})[_0xc3af('0x23')](function(_0x236347){_0x2de915[_0xc3af('0x42')]=_0x236347;return _0x2de915;})[_0xc3af('0x23')](respondWithFilteredResult(_0x30c17a,_0x1d39fb))[_0xc3af('0x43')](handleError(_0x30c17a,null));};exports[_0xc3af('0x44')]=function(_0xdc639d,_0x27587e){var _0x1aa396={'raw':!![],'where':{'id':_0xdc639d['params']['id']}},_0x6ff255={};_0x6ff255['model']=_[_0xc3af('0x45')](db[_0xc3af('0x2d')][_0xc3af('0x46')]);_0x6ff255['query']=_[_0xc3af('0x45')](_0xdc639d['query']);_0x6ff255['filters']=_[_0xc3af('0x34')](_0x6ff255['model'],_0x6ff255[_0xc3af('0x32')]);_0x1aa396[_0xc3af('0x35')]=_[_0xc3af('0x34')](_0x6ff255[_0xc3af('0x30')],qs[_0xc3af('0x36')](_0xdc639d[_0xc3af('0x32')]['fields']));_0x1aa396[_0xc3af('0x35')]=_0x1aa396[_0xc3af('0x35')][_0xc3af('0x37')]?_0x1aa396['attributes']:_0x6ff255['model'];if(_0xdc639d[_0xc3af('0x32')]['includeAll']){_0x1aa396[_0xc3af('0x47')]=[{'all':!![]}];}_0x1aa396=_[_0xc3af('0x3f')]({},_0x1aa396,_0xdc639d['options']);return db[_0xc3af('0x2d')][_0xc3af('0x48')](_0x1aa396)[_0xc3af('0x23')](handleEntityNotFound(_0x27587e,null))['then'](respondWithResult(_0x27587e,null))[_0xc3af('0x43')](handleError(_0x27587e,null));};exports['download']=function(_0x5bd7ca,_0xa86964,_0x246fd9){return db[_0xc3af('0x2d')]['find']({'where':{'id':_0x5bd7ca[_0xc3af('0x49')]['id']},'attributes':[_0xc3af('0x2a'),_0xc3af('0x4a'),_0xc3af('0x4b')],'raw':!![]})['then'](handleEntityNotFound(_0xa86964,null))[_0xc3af('0x23')](function(_0x335ff1){if(_0x335ff1){if(!fs[_0xc3af('0x4c')](path[_0xc3af('0x4d')](config[_0xc3af('0x4e')],'server/files/sounds/converted',_0x335ff1[_0xc3af('0x4a')]+'.'+_0x335ff1[_0xc3af('0x4b')]))){throw new db[(_0xc3af('0x4f'))][(_0xc3af('0x50'))]('Sound\x20not\x20found');}return _0xa86964[_0xc3af('0x51')](path[_0xc3af('0x4d')](config[_0xc3af('0x4e')],'server/files/sounds/converted',util[_0xc3af('0x52')](_0xc3af('0x53'),_0x335ff1[_0xc3af('0x4a')],_0x335ff1[_0xc3af('0x4b')])),util[_0xc3af('0x52')]('%s.%s',_0x335ff1[_0xc3af('0x2a')],_0x335ff1[_0xc3af('0x4b')]));}return null;})['catch'](handleError(_0xa86964,null));};exports['create']=function(_0xaea1ce,_0x4a21ff,_0x19882e){var _0x541398={'name':path[_0xc3af('0x54')](_0xaea1ce['file']['originalname'],path['extname'](_0xaea1ce[_0xc3af('0x55')][_0xc3af('0x56')])),'save_name':path['basename'](_0xaea1ce[_0xc3af('0x55')][_0xc3af('0x57')],path[_0xc3af('0x58')](_0xaea1ce[_0xc3af('0x55')][_0xc3af('0x57')])),'original_format':path[_0xc3af('0x58')](_0xaea1ce[_0xc3af('0x55')]['originalname'])[_0xc3af('0x59')](0x1),'converted_format':_0xc3af('0x5a')};var _0x50b774=path['join'](config[_0xc3af('0x4e')],_0xc3af('0x5b'),_0xaea1ce[_0xc3af('0x55')][_0xc3af('0x57')]);var _0x4e72e6=path[_0xc3af('0x4d')](config[_0xc3af('0x4e')],_0xc3af('0x5c'),util[_0xc3af('0x52')](_0xc3af('0x53'),path[_0xc3af('0x54')](_0xaea1ce[_0xc3af('0x55')][_0xc3af('0x57')],path['extname'](_0xaea1ce[_0xc3af('0x55')][_0xc3af('0x57')])),_0x541398[_0xc3af('0x4b')]));logger[_0xc3af('0x5d')](_0xc3af('0x5e'),_0x50b774);logger[_0xc3af('0x5d')](_0xc3af('0x5f'),_0x4e72e6);try{fs[_0xc3af('0x60')](_0x50b774,parseInt(_0xc3af('0x61'),0x8));var _0x129d1c=sox['transcode'](_0x50b774,_0x4e72e6,{'sampleRate':0x1f40,'format':_0xc3af('0x5a'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x129d1c['on'](_0xc3af('0x28'),function(_0x2be806){fs[_0xc3af('0x62')](_0x50b774);_0x4a21ff[_0xc3af('0x18')](0x1f4)[_0xc3af('0x2b')](_0x2be806);});_0x129d1c['on'](_0xc3af('0x63'),function(_0x8f0b89){_0x541398[_0xc3af('0x64')]=isNaN(_0x8f0b89[_0xc3af('0x65')])?null:_0x8f0b89[_0xc3af('0x65')]*0x3e8;_0x541398[_0xc3af('0x66')]=isNaN(_0x8f0b89['sampleCount'])?null:_0x8f0b89[_0xc3af('0x67')];_0x541398['original_channelCount']=isNaN(_0x8f0b89[_0xc3af('0x68')])?null:_0x8f0b89[_0xc3af('0x68')];_0x541398[_0xc3af('0x69')]=isNaN(_0x8f0b89[_0xc3af('0x6a')])?null:_0x8f0b89[_0xc3af('0x6a')];_0x541398[_0xc3af('0x6b')]=isNaN(_0x8f0b89[_0xc3af('0x6c')])?null:_0x8f0b89[_0xc3af('0x6c')];});_0x129d1c['on'](_0xc3af('0x6d'),function(_0x219c6c){_0x541398[_0xc3af('0x6e')]=isNaN(_0x219c6c[_0xc3af('0x65')])?null:_0x219c6c[_0xc3af('0x65')]*0x3e8;_0x541398[_0xc3af('0x6f')]=isNaN(_0x219c6c[_0xc3af('0x67')])?null:_0x219c6c['sampleCount'];_0x541398['converted_channelCount']=isNaN(_0x219c6c['channelCount'])?null:_0x219c6c[_0xc3af('0x68')];_0x541398[_0xc3af('0x70')]=isNaN(_0x219c6c[_0xc3af('0x6a')])?null:_0x219c6c[_0xc3af('0x6a')];_0x541398[_0xc3af('0x71')]=isNaN(_0x219c6c[_0xc3af('0x6c')])?null:_0x219c6c[_0xc3af('0x6c')];});_0x129d1c['on'](_0xc3af('0x19'),function(){fs[_0xc3af('0x60')](_0x4e72e6,parseInt(_0xc3af('0x61'),0x8));return db[_0xc3af('0x2d')]['create'](_0x541398)[_0xc3af('0x23')](function(_0x5c1ccb){var _0xae878a={'role':_0xaea1ce[_0xc3af('0x72')]['role'],'userProfileId':_0xaea1ce[_0xc3af('0x72')][_0xc3af('0x73')]};if(!_0xae878a)throw new Error(_0xc3af('0x74'));if(_0xae878a[_0xc3af('0x75')]===_0xc3af('0x76')){var _0x453e58=_0x5c1ccb[_0xc3af('0x24')]({'plain':!![]});return db[_0xc3af('0x77')][_0xc3af('0x48')]({'where':{'name':_0xc3af('0x25'),'userProfileId':_0xae878a['userProfileId']},'raw':!![]})['then'](function(_0x43164e){if(_0x43164e&&_0x43164e[_0xc3af('0x78')]===0x0){return db[_0xc3af('0x79')]['create']({'name':_0x453e58[_0xc3af('0x2a')],'resourceId':_0x453e58['id'],'type':_0x43164e[_0xc3af('0x2a')],'sectionId':_0x43164e['id']},{})['then'](function(){return _0x5c1ccb;});}else{return _0x5c1ccb;}})[_0xc3af('0x43')](function(_0x5d0c2f){logger[_0xc3af('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5d0c2f);throw _0x5d0c2f;});}return _0x5c1ccb;})[_0xc3af('0x23')](respondWithResult(_0x4a21ff,null))['catch'](handleError(_0x4a21ff,null));});_0x129d1c[_0xc3af('0x7a')]();}catch(_0x4c7bab){_0x4a21ff[_0xc3af('0x18')](0x1f4)[_0xc3af('0x2b')](_0x4c7bab);}};exports[_0xc3af('0x22')]=function(_0x19b301,_0x7f6642,_0x327814){return db[_0xc3af('0x2d')][_0xc3af('0x48')]({'where':{'id':_0x19b301[_0xc3af('0x49')]['id']}})[_0xc3af('0x23')](handleEntityNotFound(_0x7f6642,null))[_0xc3af('0x23')](saveUpdates(_[_0xc3af('0x3c')](_0x19b301['body'],[_0xc3af('0x2a'),_0xc3af('0x7b')]),null))[_0xc3af('0x23')](respondWithResult(_0x7f6642,null))[_0xc3af('0x43')](handleError(_0x7f6642,null));};exports[_0xc3af('0x7c')]=function(_0x15278f,_0x226f0a,_0x26b3af){return db[_0xc3af('0x2d')][_0xc3af('0x48')]({'where':{'id':_0x15278f[_0xc3af('0x49')]['id']}})[_0xc3af('0x23')](function(_0x46db09){if(_0x46db09){return _0x46db09[_0xc3af('0x26')]();}})[_0xc3af('0x23')](function(_0x119195){var _0x590109=path[_0xc3af('0x4d')](config[_0xc3af('0x4e')],_0xc3af('0x5b'),util[_0xc3af('0x52')](_0xc3af('0x53'),_0x119195[_0xc3af('0x4a')],_0x119195['original_format']));var _0x1360ef=path[_0xc3af('0x4d')](config[_0xc3af('0x4e')],_0xc3af('0x5c'),util[_0xc3af('0x52')]('%s.%s',_0x119195[_0xc3af('0x4a')],_0x119195[_0xc3af('0x4b')]));fs[_0xc3af('0x62')](_0x590109);fs[_0xc3af('0x62')](_0x1360ef);return _0x119195;})[_0xc3af('0x23')](function(_0xdc7529){if(_0xdc7529){return _0x226f0a[_0xc3af('0x18')](0xcc)[_0xc3af('0x19')]();}})[_0xc3af('0x23')](handleEntityNotFound(_0x226f0a,null))[_0xc3af('0x43')](handleError(_0x226f0a,null));};