66df814ab93997b89261869cdf60a55734df2520
[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 _0x9263=['name','send','index','map','Sound','rawAttributes','model','keys','query','filters','intersection','fields','attributes','length','order','sort','where','filter','merge','type','includeAll','findAll','rows','show','params','include','options','catch','find','save_name','converted_format','existsSync','server/files/sounds/converted','Sequelize','ValidationError','download','join','root','format','%s.%s','create','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','chmodSync','duration','original_sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','sampleCount','converted_channelCount','0777','body','role','user','UserProfileSection','Sounds','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','pick','description','unlinkSync','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','get','destroy','error'];(function(_0x3070dc,_0x40cf11){var _0x431489=function(_0x49bc2a){while(--_0x49bc2a){_0x3070dc['push'](_0x3070dc['shift']());}};_0x431489(++_0x40cf11);}(_0x9263,0xc2));var _0x3926=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x9263[_0x13d07a];return _0x5ee0ee;};'use strict';var pdf=require(_0x3926('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x3926('0x1'));var zipdir=require(_0x3926('0x2'));var jsonpatch=require(_0x3926('0x3'));var rp=require(_0x3926('0x4'));var moment=require(_0x3926('0x5'));var BPromise=require(_0x3926('0x6'));var Mustache=require(_0x3926('0x7'));var util=require(_0x3926('0x8'));var path=require(_0x3926('0x9'));var sox=require(_0x3926('0xa'));var csv=require('to-csv');var ejs=require(_0x3926('0xb'));var fs=require('fs');var _=require(_0x3926('0xc'));var squel=require(_0x3926('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3926('0xe'));var toCsv=require(_0x3926('0xf'));var querystring=require(_0x3926('0x10'));var Papa=require(_0x3926('0x11'));var Redis=require(_0x3926('0x12'));var authService=require(_0x3926('0x13'));var qs=require(_0x3926('0x14'));var as=require(_0x3926('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3926('0x16'))(_0x3926('0x17'));var utils=require('../../config/utils');var config=require(_0x3926('0x18'));var licenseUtil=require(_0x3926('0x19'));var db=require(_0x3926('0x1a'))['db'];function respondWithStatusCode(_0x102326,_0x249992){_0x249992=_0x249992||0xcc;return function(_0x1b5381){if(_0x1b5381){return _0x102326[_0x3926('0x1b')](_0x249992);}return _0x102326[_0x3926('0x1c')](_0x249992)[_0x3926('0x1d')]();};}function respondWithResult(_0x42aac1,_0x474e42){_0x474e42=_0x474e42||0xc8;return function(_0x2c86bf){if(_0x2c86bf){return _0x42aac1[_0x3926('0x1c')](_0x474e42)[_0x3926('0x1e')](_0x2c86bf);}};}function respondWithFilteredResult(_0x41ae84,_0x1d0bac){return function(_0x43ba87){if(_0x43ba87){var _0x4bfd5e=_0x43ba87[_0x3926('0x1f')],_0x132cf4=_0x1d0bac[_0x3926('0x20')],_0x49a39a=_0x1d0bac['offset']+_0x1d0bac[_0x3926('0x21')],_0x20df8b;if(_0x49a39a>=_0x4bfd5e){_0x49a39a=_0x4bfd5e;_0x20df8b=0xc8;}else{_0x20df8b=0xce;}_0x41ae84['status'](_0x20df8b);return _0x41ae84[_0x3926('0x22')](_0x3926('0x23'),_0x132cf4+'-'+_0x49a39a+'/'+_0x4bfd5e)[_0x3926('0x1e')](_0x43ba87);}return null;};}function patchUpdates(_0x53e957){return function(_0x4d7429){try{jsonpatch[_0x3926('0x24')](_0x4d7429,_0x53e957,!![]);}catch(_0x1b031c){return BPromise[_0x3926('0x25')](_0x1b031c);}return _0x4d7429[_0x3926('0x26')]();};}function saveUpdates(_0x513593,_0x1734b1){return function(_0x34164d){if(_0x34164d){return _0x34164d[_0x3926('0x27')](_0x513593)['then'](function(_0xff02df){return _0xff02df;});}return null;};}function removeEntity(_0xe17bc8,_0x1d27ad){return function(_0x4a5591){if(_0x4a5591){return _0x4a5591['destroy']()[_0x3926('0x28')](function(){var _0x286f28=_0x4a5591[_0x3926('0x29')]({'plain':!![]});var _0x120bc4='Sounds';return db['UserProfileResource'][_0x3926('0x2a')]({'where':{'type':_0x120bc4,'resourceId':_0x286f28['id']}})[_0x3926('0x28')](function(){return _0x4a5591;});})[_0x3926('0x28')](function(){_0xe17bc8[_0x3926('0x1c')](0xcc)[_0x3926('0x1d')]();});}};}function handleEntityNotFound(_0x3987b2,_0x413de6){return function(_0x40e1c2){if(!_0x40e1c2){_0x3987b2['sendStatus'](0x194);}return _0x40e1c2;};}function handleError(_0x32f82d,_0x5b65fb){_0x5b65fb=_0x5b65fb||0x1f4;return function(_0x4cec6e){logger[_0x3926('0x2b')](_0x4cec6e['stack']);if(_0x4cec6e[_0x3926('0x2c')]){delete _0x4cec6e[_0x3926('0x2c')];}_0x32f82d[_0x3926('0x1c')](_0x5b65fb)[_0x3926('0x2d')](_0x4cec6e);};}exports[_0x3926('0x2e')]=function(_0x5afad8,_0x39c1ec){var _0x5957ea={},_0x3d5806={},_0x2c746d={'count':0x0,'rows':[]};var _0x49471f=_[_0x3926('0x2f')](db[_0x3926('0x30')][_0x3926('0x31')],function(_0x4351a2){return{'name':_0x4351a2['fieldName'],'type':_0x4351a2['type']['key']};});_0x3d5806[_0x3926('0x32')]=_[_0x3926('0x2f')](_0x49471f,_0x3926('0x2c'));_0x3d5806['query']=_[_0x3926('0x33')](_0x5afad8[_0x3926('0x34')]);_0x3d5806[_0x3926('0x35')]=_['intersection'](_0x3d5806[_0x3926('0x32')],_0x3d5806[_0x3926('0x34')]);_0x5957ea['attributes']=_[_0x3926('0x36')](_0x3d5806['model'],qs[_0x3926('0x37')](_0x5afad8[_0x3926('0x34')][_0x3926('0x37')]));_0x5957ea['attributes']=_0x5957ea[_0x3926('0x38')][_0x3926('0x39')]?_0x5957ea['attributes']:_0x3d5806[_0x3926('0x32')];if(!_0x5afad8[_0x3926('0x34')]['hasOwnProperty']('nolimit')){_0x5957ea[_0x3926('0x21')]=qs[_0x3926('0x21')](_0x5afad8[_0x3926('0x34')]['limit']);_0x5957ea[_0x3926('0x20')]=qs[_0x3926('0x20')](_0x5afad8[_0x3926('0x34')][_0x3926('0x20')]);}_0x5957ea[_0x3926('0x3a')]=qs[_0x3926('0x3b')](_0x5afad8['query'][_0x3926('0x3b')]);_0x5957ea[_0x3926('0x3c')]=qs[_0x3926('0x35')](_['pick'](_0x5afad8[_0x3926('0x34')],_0x3d5806[_0x3926('0x35')]),_0x49471f);if(_0x5afad8[_0x3926('0x34')][_0x3926('0x3d')]){_0x5957ea[_0x3926('0x3c')]=_[_0x3926('0x3e')](_0x5957ea['where'],{'$or':_[_0x3926('0x2f')](_0x49471f,function(_0x5f58e3){if(_0x5f58e3[_0x3926('0x3f')]!=='VIRTUAL'){var _0x15fed9={};_0x15fed9[_0x5f58e3[_0x3926('0x2c')]]={'$like':'%'+_0x5afad8[_0x3926('0x34')][_0x3926('0x3d')]+'%'};return _0x15fed9;}})});}_0x5957ea=_['merge']({},_0x5957ea,_0x5afad8['options']);var _0x3e8955={'where':_0x5957ea[_0x3926('0x3c')]};return db[_0x3926('0x30')][_0x3926('0x1f')](_0x3e8955)['then'](function(_0x2a935d){_0x2c746d[_0x3926('0x1f')]=_0x2a935d;if(_0x5afad8['query'][_0x3926('0x40')]){_0x5957ea['include']=[{'all':!![]}];}return db[_0x3926('0x30')][_0x3926('0x41')](_0x5957ea);})[_0x3926('0x28')](function(_0x23b33a){_0x2c746d[_0x3926('0x42')]=_0x23b33a;return _0x2c746d;})[_0x3926('0x28')](respondWithFilteredResult(_0x39c1ec,_0x5957ea))['catch'](handleError(_0x39c1ec,null));};exports[_0x3926('0x43')]=function(_0x1f7164,_0x498228){var _0x477cbd={'raw':!![],'where':{'id':_0x1f7164[_0x3926('0x44')]['id']}},_0x20dfdf={};_0x20dfdf['model']=_[_0x3926('0x33')](db[_0x3926('0x30')]['rawAttributes']);_0x20dfdf[_0x3926('0x34')]=_[_0x3926('0x33')](_0x1f7164[_0x3926('0x34')]);_0x20dfdf[_0x3926('0x35')]=_[_0x3926('0x36')](_0x20dfdf[_0x3926('0x32')],_0x20dfdf['query']);_0x477cbd['attributes']=_[_0x3926('0x36')](_0x20dfdf['model'],qs['fields'](_0x1f7164[_0x3926('0x34')][_0x3926('0x37')]));_0x477cbd[_0x3926('0x38')]=_0x477cbd[_0x3926('0x38')][_0x3926('0x39')]?_0x477cbd[_0x3926('0x38')]:_0x20dfdf[_0x3926('0x32')];if(_0x1f7164[_0x3926('0x34')][_0x3926('0x40')]){_0x477cbd[_0x3926('0x45')]=[{'all':!![]}];}_0x477cbd=_['merge']({},_0x477cbd,_0x1f7164[_0x3926('0x46')]);return db[_0x3926('0x30')]['find'](_0x477cbd)[_0x3926('0x28')](handleEntityNotFound(_0x498228,null))[_0x3926('0x28')](respondWithResult(_0x498228,null))[_0x3926('0x47')](handleError(_0x498228,null));};exports['download']=function(_0xcad70a,_0x56456f,_0x146983){return db['Sound'][_0x3926('0x48')]({'where':{'id':_0xcad70a['params']['id']},'attributes':['name',_0x3926('0x49'),_0x3926('0x4a')],'raw':!![]})['then'](handleEntityNotFound(_0x56456f,null))[_0x3926('0x28')](function(_0x591e74){if(_0x591e74){if(!fs[_0x3926('0x4b')](path['join'](config['root'],_0x3926('0x4c'),_0x591e74[_0x3926('0x49')]+'.'+_0x591e74[_0x3926('0x4a')]))){throw new db[(_0x3926('0x4d'))][(_0x3926('0x4e'))]('Sound\x20not\x20found');}return _0x56456f[_0x3926('0x4f')](path[_0x3926('0x50')](config[_0x3926('0x51')],'server/files/sounds/converted',util['format']('%s.%s',_0x591e74[_0x3926('0x49')],_0x591e74[_0x3926('0x4a')])),util[_0x3926('0x52')](_0x3926('0x53'),_0x591e74[_0x3926('0x2c')],_0x591e74[_0x3926('0x4a')]));}return null;})[_0x3926('0x47')](handleError(_0x56456f,null));};exports[_0x3926('0x54')]=function(_0x23c2d7,_0x1e8627,_0x42b61f){var _0x2df815={'name':path[_0x3926('0x55')](_0x23c2d7[_0x3926('0x56')][_0x3926('0x57')],path[_0x3926('0x58')](_0x23c2d7[_0x3926('0x56')]['originalname'])),'save_name':path[_0x3926('0x55')](_0x23c2d7[_0x3926('0x56')][_0x3926('0x59')],path[_0x3926('0x58')](_0x23c2d7[_0x3926('0x56')][_0x3926('0x59')])),'original_format':path[_0x3926('0x58')](_0x23c2d7['file'][_0x3926('0x57')])[_0x3926('0x5a')](0x1),'converted_format':_0x3926('0x5b')};var _0xe37916=path[_0x3926('0x50')](config[_0x3926('0x51')],_0x3926('0x5c'),_0x23c2d7[_0x3926('0x56')][_0x3926('0x59')]);var _0xf30f25=path[_0x3926('0x50')](config[_0x3926('0x51')],'server/files/sounds/converted',util[_0x3926('0x52')](_0x3926('0x53'),path[_0x3926('0x55')](_0x23c2d7[_0x3926('0x56')][_0x3926('0x59')],path[_0x3926('0x58')](_0x23c2d7[_0x3926('0x56')][_0x3926('0x59')])),_0x2df815[_0x3926('0x4a')]));logger[_0x3926('0x5d')](_0x3926('0x5e'),_0xe37916);logger[_0x3926('0x5d')]('Sound\x20upload\x20destination:\x20%s',_0xf30f25);try{fs[_0x3926('0x5f')](_0xe37916,parseInt('0777',0x8));var _0x14a41c=sox['transcode'](_0xe37916,_0xf30f25,{'sampleRate':0x1f40,'format':_0x3926('0x5b'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x14a41c['on'](_0x3926('0x2b'),function(_0x39ddf9){fs['unlinkSync'](_0xe37916);_0x1e8627[_0x3926('0x1c')](0x1f4)[_0x3926('0x2d')](_0x39ddf9);});_0x14a41c['on']('src',function(_0x3fd17d){_0x2df815['original_duration']=isNaN(_0x3fd17d[_0x3926('0x60')])?null:_0x3fd17d[_0x3926('0x60')]*0x3e8;_0x2df815[_0x3926('0x61')]=isNaN(_0x3fd17d['sampleCount'])?null:_0x3fd17d['sampleCount'];_0x2df815[_0x3926('0x62')]=isNaN(_0x3fd17d[_0x3926('0x63')])?null:_0x3fd17d[_0x3926('0x63')];_0x2df815['original_bitRate']=isNaN(_0x3fd17d[_0x3926('0x64')])?null:_0x3fd17d[_0x3926('0x64')];_0x2df815[_0x3926('0x65')]=isNaN(_0x3fd17d[_0x3926('0x66')])?null:_0x3fd17d[_0x3926('0x66')];});_0x14a41c['on']('dest',function(_0x44c912){_0x2df815[_0x3926('0x67')]=isNaN(_0x44c912[_0x3926('0x60')])?null:_0x44c912[_0x3926('0x60')]*0x3e8;_0x2df815[_0x3926('0x68')]=isNaN(_0x44c912['sampleCount'])?null:_0x44c912[_0x3926('0x69')];_0x2df815[_0x3926('0x6a')]=isNaN(_0x44c912[_0x3926('0x63')])?null:_0x44c912[_0x3926('0x63')];_0x2df815['converted_bitRate']=isNaN(_0x44c912[_0x3926('0x64')])?null:_0x44c912[_0x3926('0x64')];_0x2df815['converted_sampleRate']=isNaN(_0x44c912[_0x3926('0x66')])?null:_0x44c912[_0x3926('0x66')];});_0x14a41c['on'](_0x3926('0x1d'),function(){fs[_0x3926('0x5f')](_0xf30f25,parseInt(_0x3926('0x6b'),0x8));return db[_0x3926('0x30')][_0x3926('0x54')](_0x2df815)[_0x3926('0x28')](function(_0x11f36d){var _0x115bae={'role':_0x23c2d7[_0x3926('0x6c')][_0x3926('0x6d')],'userProfileId':_0x23c2d7[_0x3926('0x6c')]['userProfileId']};if(!_0x115bae)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x115bae[_0x3926('0x6d')]===_0x3926('0x6e')){var _0xd28326=_0x11f36d[_0x3926('0x29')]({'plain':!![]});return db[_0x3926('0x6f')][_0x3926('0x48')]({'where':{'name':_0x3926('0x70'),'userProfileId':_0x115bae['userProfileId']},'raw':!![]})['then'](function(_0x4d3525){if(_0x4d3525&&_0x4d3525[_0x3926('0x71')]===0x0){return db['UserProfileResource'][_0x3926('0x54')]({'name':_0xd28326[_0x3926('0x2c')],'resourceId':_0xd28326['id'],'type':_0x4d3525['name'],'sectionId':_0x4d3525['id']},{})['then'](function(){return _0x11f36d;});}else{return _0x11f36d;}})[_0x3926('0x47')](function(_0x151de9){logger[_0x3926('0x2b')](_0x3926('0x72'),_0x151de9);throw _0x151de9;});}return _0x11f36d;})[_0x3926('0x28')](respondWithResult(_0x1e8627,null))[_0x3926('0x47')](handleError(_0x1e8627,null));});_0x14a41c[_0x3926('0x73')]();}catch(_0x100f52){_0x1e8627[_0x3926('0x1c')](0x1f4)[_0x3926('0x2d')](_0x100f52);}};exports['update']=function(_0x2dc245,_0x2e03cb,_0x53bf23){return db['Sound'][_0x3926('0x48')]({'where':{'id':_0x2dc245[_0x3926('0x44')]['id']}})['then'](handleEntityNotFound(_0x2e03cb,null))[_0x3926('0x28')](saveUpdates(_[_0x3926('0x74')](_0x2dc245['body'],[_0x3926('0x2c'),_0x3926('0x75')]),null))[_0x3926('0x28')](respondWithResult(_0x2e03cb,null))['catch'](handleError(_0x2e03cb,null));};exports['delete']=function(_0x360f7d,_0x17fc7a,_0x29ca60){return db[_0x3926('0x30')][_0x3926('0x48')]({'where':{'id':_0x360f7d[_0x3926('0x44')]['id']}})['then'](function(_0x9c94ef){if(_0x9c94ef){return _0x9c94ef[_0x3926('0x2a')]();}})[_0x3926('0x28')](function(_0x7686e9){var _0x62b6cc=path['join'](config[_0x3926('0x51')],_0x3926('0x5c'),util[_0x3926('0x52')](_0x3926('0x53'),_0x7686e9[_0x3926('0x49')],_0x7686e9['original_format']));var _0x49c346=path['join'](config[_0x3926('0x51')],_0x3926('0x4c'),util['format'](_0x3926('0x53'),_0x7686e9[_0x3926('0x49')],_0x7686e9['converted_format']));fs[_0x3926('0x76')](_0x62b6cc);fs[_0x3926('0x76')](_0x49c346);return _0x7686e9;})['then'](function(_0x18d5e9){if(_0x18d5e9){return _0x17fc7a['status'](0xcc)[_0x3926('0x1d')]();}})[_0x3926('0x28')](handleEntityNotFound(_0x17fc7a,null))[_0x3926('0x47')](handleError(_0x17fc7a,null));};