70686516e8df49a2e17f77f7d14c61159297602e
[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 _0x2e5f=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','limit','undefined','count','Content-Range','json','apply','reject','save','update','destroy','get','Sounds','UserProfileResource','then','error','name','map','Sound','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','rawAttributes','include','options','find','download','save_name','existsSync','join','root','server/files/sounds/converted','converted_format','Sequelize','ValidationError','Sound\x20not\x20found','%s.%s','format','create','basename','file','originalname','extname','filename','wav','server/files/sounds/original','info','chmodSync','0777','transcode','unlinkSync','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','send','description','eml-format'];(function(_0x1c4b30,_0x21d23b){var _0x536864=function(_0x5e7768){while(--_0x5e7768){_0x1c4b30['push'](_0x1c4b30['shift']());}};_0x536864(++_0x21d23b);}(_0x2e5f,0x107));var _0xf2e5=function(_0x296b65,_0x24b072){_0x296b65=_0x296b65-0x0;var _0x1e822b=_0x2e5f[_0x296b65];return _0x1e822b;};'use strict';var emlformat=require(_0xf2e5('0x0'));var rimraf=require(_0xf2e5('0x1'));var zipdir=require(_0xf2e5('0x2'));var jsonpatch=require(_0xf2e5('0x3'));var rp=require(_0xf2e5('0x4'));var moment=require(_0xf2e5('0x5'));var BPromise=require(_0xf2e5('0x6'));var Mustache=require(_0xf2e5('0x7'));var util=require(_0xf2e5('0x8'));var path=require(_0xf2e5('0x9'));var sox=require(_0xf2e5('0xa'));var csv=require('to-csv');var ejs=require(_0xf2e5('0xb'));var fs=require('fs');var fs_extra=require(_0xf2e5('0xc'));var _=require('lodash');var squel=require(_0xf2e5('0xd'));var crypto=require(_0xf2e5('0xe'));var jsforce=require(_0xf2e5('0xf'));var deskjs=require(_0xf2e5('0x10'));var toCsv=require(_0xf2e5('0x11'));var querystring=require(_0xf2e5('0x12'));var Papa=require(_0xf2e5('0x13'));var Redis=require(_0xf2e5('0x14'));var authService=require(_0xf2e5('0x15'));var qs=require(_0xf2e5('0x16'));var as=require(_0xf2e5('0x17'));var hardwareService=require(_0xf2e5('0x18'));var logger=require(_0xf2e5('0x19'))(_0xf2e5('0x1a'));var utils=require(_0xf2e5('0x1b'));var config=require(_0xf2e5('0x1c'));var licenseUtil=require(_0xf2e5('0x1d'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x28de90,_0x39d408){_0x39d408=_0x39d408||0xcc;return function(_0x182a72){if(_0x182a72){return _0x28de90[_0xf2e5('0x1e')](_0x39d408);}return _0x28de90[_0xf2e5('0x1f')](_0x39d408)[_0xf2e5('0x20')]();};}function respondWithResult(_0xff3192,_0x15905c){_0x15905c=_0x15905c||0xc8;return function(_0x4bc234){if(_0x4bc234){return _0xff3192[_0xf2e5('0x1f')](_0x15905c)['json'](_0x4bc234);}};}function respondWithFilteredResult(_0x4153a8,_0x1d7ee8){return function(_0x3cea7b){if(_0x3cea7b){var _0x2a330b=typeof _0x1d7ee8[_0xf2e5('0x21')]==='undefined'&&typeof _0x1d7ee8[_0xf2e5('0x22')]===_0xf2e5('0x23');var _0x47b73e=_0x3cea7b[_0xf2e5('0x24')];var _0x3c91b3=_0x2a330b?0x0:_0x1d7ee8[_0xf2e5('0x21')];var _0x4fcc05=_0x2a330b?_0x3cea7b[_0xf2e5('0x24')]:_0x1d7ee8['offset']+_0x1d7ee8[_0xf2e5('0x22')];var _0x4f7029;if(_0x4fcc05>=_0x47b73e){_0x4fcc05=_0x47b73e;_0x4f7029=0xc8;}else{_0x4f7029=0xce;}_0x4153a8['status'](_0x4f7029);return _0x4153a8['set'](_0xf2e5('0x25'),_0x3c91b3+'-'+_0x4fcc05+'/'+_0x47b73e)[_0xf2e5('0x26')](_0x3cea7b);}return null;};}function patchUpdates(_0x5e7955){return function(_0x4ebdc2){try{jsonpatch[_0xf2e5('0x27')](_0x4ebdc2,_0x5e7955,!![]);}catch(_0x1c524f){return BPromise[_0xf2e5('0x28')](_0x1c524f);}return _0x4ebdc2[_0xf2e5('0x29')]();};}function saveUpdates(_0x279773,_0x249329){return function(_0x1f5c96){if(_0x1f5c96){return _0x1f5c96[_0xf2e5('0x2a')](_0x279773)['then'](function(_0x37759e){return _0x37759e;});}return null;};}function removeEntity(_0x5becfd,_0x10d96d){return function(_0x12a02e){if(_0x12a02e){return _0x12a02e[_0xf2e5('0x2b')]()['then'](function(){var _0x4614d8=_0x12a02e[_0xf2e5('0x2c')]({'plain':!![]});var _0x2bb661=_0xf2e5('0x2d');return db[_0xf2e5('0x2e')][_0xf2e5('0x2b')]({'where':{'type':_0x2bb661,'resourceId':_0x4614d8['id']}})['then'](function(){return _0x12a02e;});})[_0xf2e5('0x2f')](function(){_0x5becfd['status'](0xcc)[_0xf2e5('0x20')]();});}};}function handleEntityNotFound(_0x4f375c,_0x25398b){return function(_0x3756cd){if(!_0x3756cd){_0x4f375c[_0xf2e5('0x1e')](0x194);}return _0x3756cd;};}function handleError(_0x297244,_0x5ebdc9){_0x5ebdc9=_0x5ebdc9||0x1f4;return function(_0x57107a){logger[_0xf2e5('0x30')](_0x57107a['stack']);if(_0x57107a['name']){delete _0x57107a[_0xf2e5('0x31')];}_0x297244[_0xf2e5('0x1f')](_0x5ebdc9)['send'](_0x57107a);};}exports['index']=function(_0x160594,_0x14bfe7){var _0x26e1fa={},_0x3aca67={},_0x41ff58={'count':0x0,'rows':[]};var _0xf5e80d=_[_0xf2e5('0x32')](db[_0xf2e5('0x33')]['rawAttributes'],function(_0x4a191f){return{'name':_0x4a191f[_0xf2e5('0x34')],'type':_0x4a191f[_0xf2e5('0x35')][_0xf2e5('0x36')]};});_0x3aca67[_0xf2e5('0x37')]=_[_0xf2e5('0x32')](_0xf5e80d,'name');_0x3aca67[_0xf2e5('0x38')]=_[_0xf2e5('0x39')](_0x160594[_0xf2e5('0x38')]);_0x3aca67[_0xf2e5('0x3a')]=_[_0xf2e5('0x3b')](_0x3aca67[_0xf2e5('0x37')],_0x3aca67[_0xf2e5('0x38')]);_0x26e1fa[_0xf2e5('0x3c')]=_[_0xf2e5('0x3b')](_0x3aca67[_0xf2e5('0x37')],qs[_0xf2e5('0x3d')](_0x160594['query'][_0xf2e5('0x3d')]));_0x26e1fa[_0xf2e5('0x3c')]=_0x26e1fa['attributes'][_0xf2e5('0x3e')]?_0x26e1fa[_0xf2e5('0x3c')]:_0x3aca67[_0xf2e5('0x37')];if(!_0x160594[_0xf2e5('0x38')][_0xf2e5('0x3f')](_0xf2e5('0x40'))){_0x26e1fa['limit']=qs[_0xf2e5('0x22')](_0x160594[_0xf2e5('0x38')][_0xf2e5('0x22')]);_0x26e1fa[_0xf2e5('0x21')]=qs[_0xf2e5('0x21')](_0x160594[_0xf2e5('0x38')]['offset']);}_0x26e1fa[_0xf2e5('0x41')]=qs[_0xf2e5('0x42')](_0x160594[_0xf2e5('0x38')][_0xf2e5('0x42')]);_0x26e1fa[_0xf2e5('0x43')]=qs[_0xf2e5('0x3a')](_[_0xf2e5('0x44')](_0x160594[_0xf2e5('0x38')],_0x3aca67[_0xf2e5('0x3a')]),_0xf5e80d);if(_0x160594[_0xf2e5('0x38')][_0xf2e5('0x45')]){_0x26e1fa[_0xf2e5('0x43')]=_[_0xf2e5('0x46')](_0x26e1fa[_0xf2e5('0x43')],{'$or':_[_0xf2e5('0x32')](_0xf5e80d,function(_0x287c56){if(_0x287c56['type']!==_0xf2e5('0x47')){var _0x487bfd={};_0x487bfd[_0x287c56[_0xf2e5('0x31')]]={'$like':'%'+_0x160594[_0xf2e5('0x38')][_0xf2e5('0x45')]+'%'};return _0x487bfd;}})});}_0x26e1fa=_[_0xf2e5('0x46')]({},_0x26e1fa,_0x160594['options']);var _0x4cc0ba={'where':_0x26e1fa[_0xf2e5('0x43')]};return db['Sound'][_0xf2e5('0x24')](_0x4cc0ba)[_0xf2e5('0x2f')](function(_0x594b69){_0x41ff58['count']=_0x594b69;if(_0x160594[_0xf2e5('0x38')][_0xf2e5('0x48')]){_0x26e1fa['include']=[{'all':!![]}];}return db[_0xf2e5('0x33')][_0xf2e5('0x49')](_0x26e1fa);})[_0xf2e5('0x2f')](function(_0x10c44a){_0x41ff58[_0xf2e5('0x4a')]=_0x10c44a;return _0x41ff58;})[_0xf2e5('0x2f')](respondWithFilteredResult(_0x14bfe7,_0x26e1fa))[_0xf2e5('0x4b')](handleError(_0x14bfe7,null));};exports[_0xf2e5('0x4c')]=function(_0x8e87d2,_0x38868d){var _0x4184f2={'raw':!![],'where':{'id':_0x8e87d2[_0xf2e5('0x4d')]['id']}},_0x302484={};_0x302484[_0xf2e5('0x37')]=_[_0xf2e5('0x39')](db[_0xf2e5('0x33')][_0xf2e5('0x4e')]);_0x302484[_0xf2e5('0x38')]=_[_0xf2e5('0x39')](_0x8e87d2[_0xf2e5('0x38')]);_0x302484[_0xf2e5('0x3a')]=_[_0xf2e5('0x3b')](_0x302484['model'],_0x302484[_0xf2e5('0x38')]);_0x4184f2[_0xf2e5('0x3c')]=_[_0xf2e5('0x3b')](_0x302484[_0xf2e5('0x37')],qs[_0xf2e5('0x3d')](_0x8e87d2[_0xf2e5('0x38')]['fields']));_0x4184f2[_0xf2e5('0x3c')]=_0x4184f2[_0xf2e5('0x3c')][_0xf2e5('0x3e')]?_0x4184f2[_0xf2e5('0x3c')]:_0x302484[_0xf2e5('0x37')];if(_0x8e87d2[_0xf2e5('0x38')]['includeAll']){_0x4184f2[_0xf2e5('0x4f')]=[{'all':!![]}];}_0x4184f2=_[_0xf2e5('0x46')]({},_0x4184f2,_0x8e87d2[_0xf2e5('0x50')]);return db[_0xf2e5('0x33')][_0xf2e5('0x51')](_0x4184f2)[_0xf2e5('0x2f')](handleEntityNotFound(_0x38868d,null))[_0xf2e5('0x2f')](respondWithResult(_0x38868d,null))['catch'](handleError(_0x38868d,null));};exports[_0xf2e5('0x52')]=function(_0x361a2d,_0x58cd93,_0x5232f6){return db[_0xf2e5('0x33')][_0xf2e5('0x51')]({'where':{'id':_0x361a2d['params']['id']},'attributes':[_0xf2e5('0x31'),_0xf2e5('0x53'),'converted_format'],'raw':!![]})['then'](handleEntityNotFound(_0x58cd93,null))[_0xf2e5('0x2f')](function(_0x3f16b9){if(_0x3f16b9){if(!fs[_0xf2e5('0x54')](path[_0xf2e5('0x55')](config[_0xf2e5('0x56')],_0xf2e5('0x57'),_0x3f16b9['save_name']+'.'+_0x3f16b9[_0xf2e5('0x58')]))){throw new db[(_0xf2e5('0x59'))][(_0xf2e5('0x5a'))](_0xf2e5('0x5b'));}return _0x58cd93[_0xf2e5('0x52')](path[_0xf2e5('0x55')](config['root'],_0xf2e5('0x57'),util['format'](_0xf2e5('0x5c'),_0x3f16b9[_0xf2e5('0x53')],_0x3f16b9[_0xf2e5('0x58')])),util[_0xf2e5('0x5d')](_0xf2e5('0x5c'),_0x3f16b9[_0xf2e5('0x31')],_0x3f16b9[_0xf2e5('0x58')]));}return null;})['catch'](handleError(_0x58cd93,null));};exports[_0xf2e5('0x5e')]=function(_0x5ceb14,_0x56d5ff,_0x352edc){var _0x2c9ada={'name':path[_0xf2e5('0x5f')](_0x5ceb14[_0xf2e5('0x60')][_0xf2e5('0x61')],path[_0xf2e5('0x62')](_0x5ceb14[_0xf2e5('0x60')][_0xf2e5('0x61')])),'save_name':path['basename'](_0x5ceb14[_0xf2e5('0x60')][_0xf2e5('0x63')],path[_0xf2e5('0x62')](_0x5ceb14[_0xf2e5('0x60')][_0xf2e5('0x63')])),'original_format':path[_0xf2e5('0x62')](_0x5ceb14[_0xf2e5('0x60')]['originalname'])['substring'](0x1),'converted_format':_0xf2e5('0x64')};var _0x3c6c7a=path[_0xf2e5('0x55')](config[_0xf2e5('0x56')],_0xf2e5('0x65'),_0x5ceb14[_0xf2e5('0x60')]['filename']);var _0x45ac31=path[_0xf2e5('0x55')](config[_0xf2e5('0x56')],_0xf2e5('0x57'),util[_0xf2e5('0x5d')](_0xf2e5('0x5c'),path[_0xf2e5('0x5f')](_0x5ceb14[_0xf2e5('0x60')][_0xf2e5('0x63')],path['extname'](_0x5ceb14[_0xf2e5('0x60')][_0xf2e5('0x63')])),_0x2c9ada[_0xf2e5('0x58')]));logger['info']('Sound\x20upload\x20filepath:\x20%s',_0x3c6c7a);logger[_0xf2e5('0x66')]('Sound\x20upload\x20destination:\x20%s',_0x45ac31);try{fs[_0xf2e5('0x67')](_0x3c6c7a,parseInt(_0xf2e5('0x68'),0x8));var _0x4351fb=sox[_0xf2e5('0x69')](_0x3c6c7a,_0x45ac31,{'sampleRate':0x1f40,'format':_0xf2e5('0x64'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4351fb['on']('error',function(_0x15b51b){fs[_0xf2e5('0x6a')](_0x3c6c7a);_0x56d5ff[_0xf2e5('0x1f')](0x1f4)['send'](_0x15b51b);});_0x4351fb['on']('src',function(_0x17b8cc){_0x2c9ada[_0xf2e5('0x6b')]=isNaN(_0x17b8cc[_0xf2e5('0x6c')])?null:_0x17b8cc[_0xf2e5('0x6c')]*0x3e8;_0x2c9ada[_0xf2e5('0x6d')]=isNaN(_0x17b8cc[_0xf2e5('0x6e')])?null:_0x17b8cc[_0xf2e5('0x6e')];_0x2c9ada[_0xf2e5('0x6f')]=isNaN(_0x17b8cc[_0xf2e5('0x70')])?null:_0x17b8cc[_0xf2e5('0x70')];_0x2c9ada[_0xf2e5('0x71')]=isNaN(_0x17b8cc['bitRate'])?null:_0x17b8cc[_0xf2e5('0x72')];_0x2c9ada[_0xf2e5('0x73')]=isNaN(_0x17b8cc[_0xf2e5('0x74')])?null:_0x17b8cc[_0xf2e5('0x74')];});_0x4351fb['on'](_0xf2e5('0x75'),function(_0x4f3227){_0x2c9ada[_0xf2e5('0x76')]=isNaN(_0x4f3227[_0xf2e5('0x6c')])?null:_0x4f3227[_0xf2e5('0x6c')]*0x3e8;_0x2c9ada[_0xf2e5('0x77')]=isNaN(_0x4f3227['sampleCount'])?null:_0x4f3227[_0xf2e5('0x6e')];_0x2c9ada['converted_channelCount']=isNaN(_0x4f3227[_0xf2e5('0x70')])?null:_0x4f3227['channelCount'];_0x2c9ada[_0xf2e5('0x78')]=isNaN(_0x4f3227[_0xf2e5('0x72')])?null:_0x4f3227['bitRate'];_0x2c9ada[_0xf2e5('0x79')]=isNaN(_0x4f3227[_0xf2e5('0x74')])?null:_0x4f3227[_0xf2e5('0x74')];});_0x4351fb['on'](_0xf2e5('0x20'),function(){fs[_0xf2e5('0x67')](_0x45ac31,parseInt(_0xf2e5('0x68'),0x8));return db[_0xf2e5('0x33')][_0xf2e5('0x5e')](_0x2c9ada)[_0xf2e5('0x2f')](function(_0x51764c){var _0x39bee6={'role':_0x5ceb14[_0xf2e5('0x7a')][_0xf2e5('0x7b')],'userProfileId':_0x5ceb14[_0xf2e5('0x7a')][_0xf2e5('0x7c')]};if(!_0x39bee6)throw new Error(_0xf2e5('0x7d'));if(_0x39bee6[_0xf2e5('0x7b')]==='user'){var _0x774133=_0x51764c[_0xf2e5('0x2c')]({'plain':!![]});return db[_0xf2e5('0x7e')][_0xf2e5('0x51')]({'where':{'name':_0xf2e5('0x2d'),'userProfileId':_0x39bee6['userProfileId']},'raw':!![]})[_0xf2e5('0x2f')](function(_0x1a29b4){if(_0x1a29b4&&_0x1a29b4[_0xf2e5('0x7f')]===0x0){return db['UserProfileResource'][_0xf2e5('0x5e')]({'name':_0x774133[_0xf2e5('0x31')],'resourceId':_0x774133['id'],'type':_0x1a29b4[_0xf2e5('0x31')],'sectionId':_0x1a29b4['id']},{})['then'](function(){return _0x51764c;});}else{return _0x51764c;}})[_0xf2e5('0x4b')](function(_0x197e2f){logger[_0xf2e5('0x30')](_0xf2e5('0x80'),_0x197e2f);throw _0x197e2f;});}return _0x51764c;})[_0xf2e5('0x2f')](respondWithResult(_0x56d5ff,null))['catch'](handleError(_0x56d5ff,null));});_0x4351fb[_0xf2e5('0x81')]();}catch(_0x223ba3){_0x56d5ff['status'](0x1f4)[_0xf2e5('0x82')](_0x223ba3);}};exports['update']=function(_0x43d2d8,_0x969384,_0x59036f){return db['Sound'][_0xf2e5('0x51')]({'where':{'id':_0x43d2d8[_0xf2e5('0x4d')]['id']}})['then'](handleEntityNotFound(_0x969384,null))[_0xf2e5('0x2f')](saveUpdates(_[_0xf2e5('0x44')](_0x43d2d8['body'],[_0xf2e5('0x31'),_0xf2e5('0x83')]),null))[_0xf2e5('0x2f')](respondWithResult(_0x969384,null))[_0xf2e5('0x4b')](handleError(_0x969384,null));};exports['delete']=function(_0x295033,_0x2f3b5a,_0x53230c){return db[_0xf2e5('0x33')]['find']({'where':{'id':_0x295033['params']['id']}})[_0xf2e5('0x2f')](function(_0x2d7a7e){if(_0x2d7a7e){return _0x2d7a7e[_0xf2e5('0x2b')]();}})[_0xf2e5('0x2f')](function(_0x20138f){var _0x17b295=path[_0xf2e5('0x55')](config['root'],'server/files/sounds/original',util[_0xf2e5('0x5d')](_0xf2e5('0x5c'),_0x20138f[_0xf2e5('0x53')],_0x20138f['original_format']));var _0x1151ba=path['join'](config[_0xf2e5('0x56')],'server/files/sounds/converted',util['format'](_0xf2e5('0x5c'),_0x20138f[_0xf2e5('0x53')],_0x20138f[_0xf2e5('0x58')]));fs['unlinkSync'](_0x17b295);fs[_0xf2e5('0x6a')](_0x1151ba);return _0x20138f;})['then'](function(_0x15a3de){if(_0x15a3de){return _0x2f3b5a[_0xf2e5('0x1f')](0xcc)['end']();}})['then'](handleEntityNotFound(_0x2f3b5a,null))[_0xf2e5('0x4b')](handleError(_0x2f3b5a,null));};