Built motion from commit 14588770.|2.5.38
[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 _0xd5b2=['mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../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','save','destroy','then','get','Sounds','UserProfileResource','end','error','stack','name','index','Sound','fieldName','type','key','model','map','query','intersection','attributes','fields','hasOwnProperty','order','sort','where','filters','filter','merge','options','includeAll','include','findAll','catch','keys','rawAttributes','length','find','download','params','save_name','converted_format','existsSync','root','server/files/sounds/converted','ValidationError','join','format','%s.%s','basename','file','originalname','extname','filename','substring','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','wav','unlinkSync','send','original_duration','duration','sampleCount','original_channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','channelCount','converted_bitRate','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','pick','description','server/files/sounds/original','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird'];(function(_0x58e767,_0x530936){var _0x169942=function(_0x2e787e){while(--_0x2e787e){_0x58e767['push'](_0x58e767['shift']());}};_0x169942(++_0x530936);}(_0xd5b2,0x7a));var _0x2d5b=function(_0x24237f,_0x4cf32c){_0x24237f=_0x24237f-0x0;var _0x48298e=_0xd5b2[_0x24237f];return _0x48298e;};'use strict';var emlformat=require(_0x2d5b('0x0'));var rimraf=require(_0x2d5b('0x1'));var zipdir=require(_0x2d5b('0x2'));var jsonpatch=require(_0x2d5b('0x3'));var rp=require(_0x2d5b('0x4'));var moment=require('moment');var BPromise=require(_0x2d5b('0x5'));var Mustache=require(_0x2d5b('0x6'));var util=require(_0x2d5b('0x7'));var path=require(_0x2d5b('0x8'));var sox=require(_0x2d5b('0x9'));var csv=require(_0x2d5b('0xa'));var ejs=require(_0x2d5b('0xb'));var fs=require('fs');var fs_extra=require(_0x2d5b('0xc'));var _=require(_0x2d5b('0xd'));var squel=require(_0x2d5b('0xe'));var crypto=require(_0x2d5b('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x2d5b('0x10'));var toCsv=require(_0x2d5b('0xa'));var querystring=require(_0x2d5b('0x11'));var Papa=require(_0x2d5b('0x12'));var Redis=require(_0x2d5b('0x13'));var authService=require(_0x2d5b('0x14'));var qs=require(_0x2d5b('0x15'));var as=require(_0x2d5b('0x16'));var hardwareService=require(_0x2d5b('0x17'));var logger=require('../../config/logger')(_0x2d5b('0x18'));var utils=require(_0x2d5b('0x19'));var config=require(_0x2d5b('0x1a'));var licenseUtil=require(_0x2d5b('0x1b'));var db=require(_0x2d5b('0x1c'))['db'];function respondWithStatusCode(_0x411203,_0x3567ae){_0x3567ae=_0x3567ae||0xcc;return function(_0x184078){if(_0x184078){return _0x411203[_0x2d5b('0x1d')](_0x3567ae);}return _0x411203[_0x2d5b('0x1e')](_0x3567ae)['end']();};}function respondWithResult(_0x22e6c2,_0x5c646c){_0x5c646c=_0x5c646c||0xc8;return function(_0x53e630){if(_0x53e630){return _0x22e6c2[_0x2d5b('0x1e')](_0x5c646c)[_0x2d5b('0x1f')](_0x53e630);}};}function respondWithFilteredResult(_0x500005,_0xbb5f84){return function(_0x259a0f){if(_0x259a0f){var _0x4e585c=typeof _0xbb5f84['offset']===_0x2d5b('0x20')&&typeof _0xbb5f84[_0x2d5b('0x21')]===_0x2d5b('0x20');var _0x1cea46=_0x259a0f[_0x2d5b('0x22')];var _0x33ac0e=_0x4e585c?0x0:_0xbb5f84[_0x2d5b('0x23')];var _0x25e30a=_0x4e585c?_0x259a0f[_0x2d5b('0x22')]:_0xbb5f84[_0x2d5b('0x23')]+_0xbb5f84['limit'];var _0x3dc9b9;if(_0x25e30a>=_0x1cea46){_0x25e30a=_0x1cea46;_0x3dc9b9=0xc8;}else{_0x3dc9b9=0xce;}_0x500005['status'](_0x3dc9b9);return _0x500005[_0x2d5b('0x24')](_0x2d5b('0x25'),_0x33ac0e+'-'+_0x25e30a+'/'+_0x1cea46)['json'](_0x259a0f);}return null;};}function patchUpdates(_0x376717){return function(_0x2518f1){try{jsonpatch[_0x2d5b('0x26')](_0x2518f1,_0x376717,!![]);}catch(_0x450886){return BPromise[_0x2d5b('0x27')](_0x450886);}return _0x2518f1[_0x2d5b('0x28')]();};}function saveUpdates(_0x2a35bc,_0x5b6c8c){return function(_0x2d3775){if(_0x2d3775){return _0x2d3775['update'](_0x2a35bc)['then'](function(_0xd298f2){return _0xd298f2;});}return null;};}function removeEntity(_0x48f196,_0x9343a3){return function(_0x42e492){if(_0x42e492){return _0x42e492[_0x2d5b('0x29')]()[_0x2d5b('0x2a')](function(){var _0x19c63c=_0x42e492[_0x2d5b('0x2b')]({'plain':!![]});var _0x493cd4=_0x2d5b('0x2c');return db[_0x2d5b('0x2d')][_0x2d5b('0x29')]({'where':{'type':_0x493cd4,'resourceId':_0x19c63c['id']}})[_0x2d5b('0x2a')](function(){return _0x42e492;});})[_0x2d5b('0x2a')](function(){_0x48f196[_0x2d5b('0x1e')](0xcc)[_0x2d5b('0x2e')]();});}};}function handleEntityNotFound(_0x3ad5a2,_0x370106){return function(_0x3c0a13){if(!_0x3c0a13){_0x3ad5a2[_0x2d5b('0x1d')](0x194);}return _0x3c0a13;};}function handleError(_0x544742,_0x109965){_0x109965=_0x109965||0x1f4;return function(_0x4d988d){logger[_0x2d5b('0x2f')](_0x4d988d[_0x2d5b('0x30')]);if(_0x4d988d['name']){delete _0x4d988d[_0x2d5b('0x31')];}_0x544742['status'](_0x109965)['send'](_0x4d988d);};}exports[_0x2d5b('0x32')]=function(_0x320cd4,_0x4ae98c){var _0x2fbbbb={},_0x26b29b={},_0x2f7fa3={'count':0x0,'rows':[]};var _0x487909=_['map'](db[_0x2d5b('0x33')]['rawAttributes'],function(_0x178e6f){return{'name':_0x178e6f[_0x2d5b('0x34')],'type':_0x178e6f[_0x2d5b('0x35')][_0x2d5b('0x36')]};});_0x26b29b[_0x2d5b('0x37')]=_[_0x2d5b('0x38')](_0x487909,_0x2d5b('0x31'));_0x26b29b[_0x2d5b('0x39')]=_['keys'](_0x320cd4['query']);_0x26b29b['filters']=_[_0x2d5b('0x3a')](_0x26b29b[_0x2d5b('0x37')],_0x26b29b[_0x2d5b('0x39')]);_0x2fbbbb[_0x2d5b('0x3b')]=_[_0x2d5b('0x3a')](_0x26b29b[_0x2d5b('0x37')],qs[_0x2d5b('0x3c')](_0x320cd4[_0x2d5b('0x39')]['fields']));_0x2fbbbb[_0x2d5b('0x3b')]=_0x2fbbbb['attributes']['length']?_0x2fbbbb[_0x2d5b('0x3b')]:_0x26b29b['model'];if(!_0x320cd4[_0x2d5b('0x39')][_0x2d5b('0x3d')]('nolimit')){_0x2fbbbb[_0x2d5b('0x21')]=qs['limit'](_0x320cd4[_0x2d5b('0x39')][_0x2d5b('0x21')]);_0x2fbbbb[_0x2d5b('0x23')]=qs[_0x2d5b('0x23')](_0x320cd4[_0x2d5b('0x39')][_0x2d5b('0x23')]);}_0x2fbbbb[_0x2d5b('0x3e')]=qs[_0x2d5b('0x3f')](_0x320cd4[_0x2d5b('0x39')][_0x2d5b('0x3f')]);_0x2fbbbb[_0x2d5b('0x40')]=qs[_0x2d5b('0x41')](_['pick'](_0x320cd4[_0x2d5b('0x39')],_0x26b29b[_0x2d5b('0x41')]),_0x487909);if(_0x320cd4[_0x2d5b('0x39')][_0x2d5b('0x42')]){_0x2fbbbb[_0x2d5b('0x40')]=_['merge'](_0x2fbbbb[_0x2d5b('0x40')],{'$or':_[_0x2d5b('0x38')](_0x487909,function(_0x67d73){if(_0x67d73[_0x2d5b('0x35')]!=='VIRTUAL'){var _0xd1029b={};_0xd1029b[_0x67d73[_0x2d5b('0x31')]]={'$like':'%'+_0x320cd4['query'][_0x2d5b('0x42')]+'%'};return _0xd1029b;}})});}_0x2fbbbb=_[_0x2d5b('0x43')]({},_0x2fbbbb,_0x320cd4[_0x2d5b('0x44')]);var _0x5baf23={'where':_0x2fbbbb['where']};return db[_0x2d5b('0x33')][_0x2d5b('0x22')](_0x5baf23)[_0x2d5b('0x2a')](function(_0x44bf5b){_0x2f7fa3['count']=_0x44bf5b;if(_0x320cd4[_0x2d5b('0x39')][_0x2d5b('0x45')]){_0x2fbbbb[_0x2d5b('0x46')]=[{'all':!![]}];}return db[_0x2d5b('0x33')][_0x2d5b('0x47')](_0x2fbbbb);})[_0x2d5b('0x2a')](function(_0x58c3e7){_0x2f7fa3['rows']=_0x58c3e7;return _0x2f7fa3;})[_0x2d5b('0x2a')](respondWithFilteredResult(_0x4ae98c,_0x2fbbbb))[_0x2d5b('0x48')](handleError(_0x4ae98c,null));};exports['show']=function(_0x5e4b22,_0x2b6e4e){var _0x2fd4ee={'raw':!![],'where':{'id':_0x5e4b22['params']['id']}},_0x409d0f={};_0x409d0f['model']=_[_0x2d5b('0x49')](db[_0x2d5b('0x33')][_0x2d5b('0x4a')]);_0x409d0f[_0x2d5b('0x39')]=_['keys'](_0x5e4b22[_0x2d5b('0x39')]);_0x409d0f[_0x2d5b('0x41')]=_[_0x2d5b('0x3a')](_0x409d0f[_0x2d5b('0x37')],_0x409d0f['query']);_0x2fd4ee[_0x2d5b('0x3b')]=_[_0x2d5b('0x3a')](_0x409d0f[_0x2d5b('0x37')],qs[_0x2d5b('0x3c')](_0x5e4b22[_0x2d5b('0x39')]['fields']));_0x2fd4ee[_0x2d5b('0x3b')]=_0x2fd4ee[_0x2d5b('0x3b')][_0x2d5b('0x4b')]?_0x2fd4ee['attributes']:_0x409d0f['model'];if(_0x5e4b22[_0x2d5b('0x39')][_0x2d5b('0x45')]){_0x2fd4ee[_0x2d5b('0x46')]=[{'all':!![]}];}_0x2fd4ee=_[_0x2d5b('0x43')]({},_0x2fd4ee,_0x5e4b22[_0x2d5b('0x44')]);return db[_0x2d5b('0x33')][_0x2d5b('0x4c')](_0x2fd4ee)['then'](handleEntityNotFound(_0x2b6e4e,null))[_0x2d5b('0x2a')](respondWithResult(_0x2b6e4e,null))[_0x2d5b('0x48')](handleError(_0x2b6e4e,null));};exports[_0x2d5b('0x4d')]=function(_0xac154c,_0x572fef,_0x52f819){return db[_0x2d5b('0x33')][_0x2d5b('0x4c')]({'where':{'id':_0xac154c[_0x2d5b('0x4e')]['id']},'attributes':[_0x2d5b('0x31'),_0x2d5b('0x4f'),_0x2d5b('0x50')],'raw':!![]})[_0x2d5b('0x2a')](handleEntityNotFound(_0x572fef,null))[_0x2d5b('0x2a')](function(_0x2fa875){if(_0x2fa875){if(!fs[_0x2d5b('0x51')](path['join'](config[_0x2d5b('0x52')],_0x2d5b('0x53'),_0x2fa875['save_name']+'.'+_0x2fa875['converted_format']))){throw new db['Sequelize'][(_0x2d5b('0x54'))]('Sound\x20not\x20found');}return _0x572fef[_0x2d5b('0x4d')](path[_0x2d5b('0x55')](config['root'],_0x2d5b('0x53'),util[_0x2d5b('0x56')](_0x2d5b('0x57'),_0x2fa875[_0x2d5b('0x4f')],_0x2fa875[_0x2d5b('0x50')])),util['format'](_0x2d5b('0x57'),_0x2fa875[_0x2d5b('0x31')],_0x2fa875[_0x2d5b('0x50')]));}return null;})[_0x2d5b('0x48')](handleError(_0x572fef,null));};exports['create']=function(_0x98e244,_0x296db1,_0x3e51b9){var _0x2a3cdb={'name':path[_0x2d5b('0x58')](_0x98e244[_0x2d5b('0x59')][_0x2d5b('0x5a')],path[_0x2d5b('0x5b')](_0x98e244[_0x2d5b('0x59')][_0x2d5b('0x5a')])),'save_name':path[_0x2d5b('0x58')](_0x98e244[_0x2d5b('0x59')]['filename'],path[_0x2d5b('0x5b')](_0x98e244[_0x2d5b('0x59')][_0x2d5b('0x5c')])),'original_format':path[_0x2d5b('0x5b')](_0x98e244[_0x2d5b('0x59')][_0x2d5b('0x5a')])[_0x2d5b('0x5d')](0x1),'converted_format':'wav'};var _0x5cdb54=path[_0x2d5b('0x55')](config[_0x2d5b('0x52')],'server/files/sounds/original',_0x98e244[_0x2d5b('0x59')]['filename']);var _0x3f4f07=path[_0x2d5b('0x55')](config[_0x2d5b('0x52')],'server/files/sounds/converted',util['format'](_0x2d5b('0x57'),path[_0x2d5b('0x58')](_0x98e244[_0x2d5b('0x59')][_0x2d5b('0x5c')],path[_0x2d5b('0x5b')](_0x98e244[_0x2d5b('0x59')][_0x2d5b('0x5c')])),_0x2a3cdb[_0x2d5b('0x50')]));logger[_0x2d5b('0x5e')]('Sound\x20upload\x20filepath:\x20%s',_0x5cdb54);logger[_0x2d5b('0x5e')](_0x2d5b('0x5f'),_0x3f4f07);try{fs[_0x2d5b('0x60')](_0x5cdb54,parseInt(_0x2d5b('0x61'),0x8));var _0x400026=sox[_0x2d5b('0x62')](_0x5cdb54,_0x3f4f07,{'sampleRate':0x1f40,'format':_0x2d5b('0x63'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x400026['on'](_0x2d5b('0x2f'),function(_0x28a3ba){fs[_0x2d5b('0x64')](_0x5cdb54);_0x296db1[_0x2d5b('0x1e')](0x1f4)[_0x2d5b('0x65')](_0x28a3ba);});_0x400026['on']('src',function(_0x73976a){_0x2a3cdb[_0x2d5b('0x66')]=isNaN(_0x73976a[_0x2d5b('0x67')])?null:_0x73976a[_0x2d5b('0x67')]*0x3e8;_0x2a3cdb['original_sampleCount']=isNaN(_0x73976a[_0x2d5b('0x68')])?null:_0x73976a[_0x2d5b('0x68')];_0x2a3cdb[_0x2d5b('0x69')]=isNaN(_0x73976a['channelCount'])?null:_0x73976a['channelCount'];_0x2a3cdb[_0x2d5b('0x6a')]=isNaN(_0x73976a[_0x2d5b('0x6b')])?null:_0x73976a[_0x2d5b('0x6b')];_0x2a3cdb[_0x2d5b('0x6c')]=isNaN(_0x73976a[_0x2d5b('0x6d')])?null:_0x73976a[_0x2d5b('0x6d')];});_0x400026['on'](_0x2d5b('0x6e'),function(_0x18c189){_0x2a3cdb[_0x2d5b('0x6f')]=isNaN(_0x18c189[_0x2d5b('0x67')])?null:_0x18c189[_0x2d5b('0x67')]*0x3e8;_0x2a3cdb[_0x2d5b('0x70')]=isNaN(_0x18c189[_0x2d5b('0x68')])?null:_0x18c189[_0x2d5b('0x68')];_0x2a3cdb[_0x2d5b('0x71')]=isNaN(_0x18c189[_0x2d5b('0x72')])?null:_0x18c189[_0x2d5b('0x72')];_0x2a3cdb[_0x2d5b('0x73')]=isNaN(_0x18c189['bitRate'])?null:_0x18c189[_0x2d5b('0x6b')];_0x2a3cdb['converted_sampleRate']=isNaN(_0x18c189['sampleRate'])?null:_0x18c189[_0x2d5b('0x6d')];});_0x400026['on'](_0x2d5b('0x2e'),function(){fs[_0x2d5b('0x60')](_0x3f4f07,parseInt('0777',0x8));return db[_0x2d5b('0x33')]['create'](_0x2a3cdb)['then'](function(_0x33a453){var _0x3e36b3={'role':_0x98e244['body']['role'],'userProfileId':_0x98e244[_0x2d5b('0x74')][_0x2d5b('0x75')]};if(!_0x3e36b3)throw new Error(_0x2d5b('0x76'));if(_0x3e36b3[_0x2d5b('0x77')]===_0x2d5b('0x78')){var _0x3fd59a=_0x33a453[_0x2d5b('0x2b')]({'plain':!![]});return db[_0x2d5b('0x79')][_0x2d5b('0x4c')]({'where':{'name':_0x2d5b('0x2c'),'userProfileId':_0x3e36b3['userProfileId']},'raw':!![]})[_0x2d5b('0x2a')](function(_0xbeb64e){if(_0xbeb64e&&_0xbeb64e['autoAssociation']===0x0){return db['UserProfileResource'][_0x2d5b('0x7a')]({'name':_0x3fd59a[_0x2d5b('0x31')],'resourceId':_0x3fd59a['id'],'type':_0xbeb64e[_0x2d5b('0x31')],'sectionId':_0xbeb64e['id']},{})[_0x2d5b('0x2a')](function(){return _0x33a453;});}else{return _0x33a453;}})[_0x2d5b('0x48')](function(_0x558491){logger[_0x2d5b('0x2f')](_0x2d5b('0x7b'),_0x558491);throw _0x558491;});}return _0x33a453;})[_0x2d5b('0x2a')](respondWithResult(_0x296db1,null))['catch'](handleError(_0x296db1,null));});_0x400026['start']();}catch(_0x320f60){_0x296db1[_0x2d5b('0x1e')](0x1f4)[_0x2d5b('0x65')](_0x320f60);}};exports['update']=function(_0x5a71dc,_0x5b6274,_0x4bbb56){return db[_0x2d5b('0x33')][_0x2d5b('0x4c')]({'where':{'id':_0x5a71dc['params']['id']}})[_0x2d5b('0x2a')](handleEntityNotFound(_0x5b6274,null))[_0x2d5b('0x2a')](saveUpdates(_[_0x2d5b('0x7c')](_0x5a71dc['body'],[_0x2d5b('0x31'),_0x2d5b('0x7d')]),null))['then'](respondWithResult(_0x5b6274,null))[_0x2d5b('0x48')](handleError(_0x5b6274,null));};exports['delete']=function(_0x466089,_0x30cf62,_0x5ad0db){return db[_0x2d5b('0x33')][_0x2d5b('0x4c')]({'where':{'id':_0x466089[_0x2d5b('0x4e')]['id']}})[_0x2d5b('0x2a')](function(_0x2b0fa5){if(_0x2b0fa5){return _0x2b0fa5[_0x2d5b('0x29')]();}})[_0x2d5b('0x2a')](function(_0x2eb4a1){var _0x90921c=path[_0x2d5b('0x55')](config['root'],_0x2d5b('0x7e'),util[_0x2d5b('0x56')](_0x2d5b('0x57'),_0x2eb4a1['save_name'],_0x2eb4a1[_0x2d5b('0x7f')]));var _0x439a0b=path[_0x2d5b('0x55')](config[_0x2d5b('0x52')],'server/files/sounds/converted',util[_0x2d5b('0x56')](_0x2d5b('0x57'),_0x2eb4a1[_0x2d5b('0x4f')],_0x2eb4a1['converted_format']));fs['unlinkSync'](_0x90921c);fs[_0x2d5b('0x64')](_0x439a0b);return _0x2eb4a1;})[_0x2d5b('0x2a')](function(_0x1cd167){if(_0x1cd167){return _0x30cf62[_0x2d5b('0x1e')](0xcc)[_0x2d5b('0x2e')]();}})[_0x2d5b('0x2a')](handleEntityNotFound(_0x30cf62,null))[_0x2d5b('0x48')](handleError(_0x30cf62,null));};