Built motion from commit a61a4a20.|2.5.46
[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 _0x408b=['description','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','undefined','count','offset','status','set','Content-Range','json','apply','reject','save','update','then','get','Sounds','UserProfileResource','destroy','stack','name','send','index','map','Sound','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','rows','catch','params','find','download','save_name','join','root','converted_format','ValidationError','server/files/sounds/converted','format','%s.%s','create','basename','file','extname','originalname','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','error','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','bitRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start'];(function(_0x828345,_0x39cf37){var _0x1d2fc7=function(_0x3c9369){while(--_0x3c9369){_0x828345['push'](_0x828345['shift']());}};_0x1d2fc7(++_0x39cf37);}(_0x408b,0x7e));var _0xb408=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x408b[_0x13d07a];return _0x5ee0ee;};'use strict';var emlformat=require(_0xb408('0x0'));var rimraf=require(_0xb408('0x1'));var zipdir=require(_0xb408('0x2'));var jsonpatch=require(_0xb408('0x3'));var rp=require(_0xb408('0x4'));var moment=require(_0xb408('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xb408('0x6'));var util=require(_0xb408('0x7'));var path=require(_0xb408('0x8'));var sox=require('sox');var csv=require(_0xb408('0x9'));var ejs=require(_0xb408('0xa'));var fs=require('fs');var fs_extra=require(_0xb408('0xb'));var _=require(_0xb408('0xc'));var squel=require('squel');var crypto=require(_0xb408('0xd'));var jsforce=require(_0xb408('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb408('0x9'));var querystring=require(_0xb408('0xf'));var Papa=require(_0xb408('0x10'));var Redis=require('ioredis');var authService=require(_0xb408('0x11'));var qs=require(_0xb408('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb408('0x13'));var logger=require(_0xb408('0x14'))(_0xb408('0x15'));var utils=require(_0xb408('0x16'));var config=require(_0xb408('0x17'));var licenseUtil=require(_0xb408('0x18'));var db=require(_0xb408('0x19'))['db'];function respondWithStatusCode(_0x4bdd63,_0x5967ce){_0x5967ce=_0x5967ce||0xcc;return function(_0x17e63f){if(_0x17e63f){return _0x4bdd63[_0xb408('0x1a')](_0x5967ce);}return _0x4bdd63['status'](_0x5967ce)[_0xb408('0x1b')]();};}function respondWithResult(_0x5b27a8,_0x588d0c){_0x588d0c=_0x588d0c||0xc8;return function(_0x166cf4){if(_0x166cf4){return _0x5b27a8['status'](_0x588d0c)['json'](_0x166cf4);}};}function respondWithFilteredResult(_0x56b9a8,_0x49b1b0){return function(_0xe05d83){if(_0xe05d83){var _0x52ced8=typeof _0x49b1b0['offset']==='undefined'&&typeof _0x49b1b0['limit']===_0xb408('0x1c');var _0x180d39=_0xe05d83[_0xb408('0x1d')];var _0x5a56da=_0x52ced8?0x0:_0x49b1b0['offset'];var _0x2b0aa8=_0x52ced8?_0xe05d83[_0xb408('0x1d')]:_0x49b1b0[_0xb408('0x1e')]+_0x49b1b0['limit'];var _0x1417b9;if(_0x2b0aa8>=_0x180d39){_0x2b0aa8=_0x180d39;_0x1417b9=0xc8;}else{_0x1417b9=0xce;}_0x56b9a8[_0xb408('0x1f')](_0x1417b9);return _0x56b9a8[_0xb408('0x20')](_0xb408('0x21'),_0x5a56da+'-'+_0x2b0aa8+'/'+_0x180d39)[_0xb408('0x22')](_0xe05d83);}return null;};}function patchUpdates(_0x3764ad){return function(_0x5d2b54){try{jsonpatch[_0xb408('0x23')](_0x5d2b54,_0x3764ad,!![]);}catch(_0x3e802b){return BPromise[_0xb408('0x24')](_0x3e802b);}return _0x5d2b54[_0xb408('0x25')]();};}function saveUpdates(_0x460d5d,_0x182cd6){return function(_0xbc078){if(_0xbc078){return _0xbc078[_0xb408('0x26')](_0x460d5d)[_0xb408('0x27')](function(_0x395f95){return _0x395f95;});}return null;};}function removeEntity(_0x1ac0c8,_0x3e8be0){return function(_0x14bf88){if(_0x14bf88){return _0x14bf88['destroy']()[_0xb408('0x27')](function(){var _0x4d551b=_0x14bf88[_0xb408('0x28')]({'plain':!![]});var _0xee1065=_0xb408('0x29');return db[_0xb408('0x2a')][_0xb408('0x2b')]({'where':{'type':_0xee1065,'resourceId':_0x4d551b['id']}})[_0xb408('0x27')](function(){return _0x14bf88;});})[_0xb408('0x27')](function(){_0x1ac0c8[_0xb408('0x1f')](0xcc)[_0xb408('0x1b')]();});}};}function handleEntityNotFound(_0x1ae049,_0x81d169){return function(_0x4f5a6b){if(!_0x4f5a6b){_0x1ae049[_0xb408('0x1a')](0x194);}return _0x4f5a6b;};}function handleError(_0x32b68e,_0x80a3a3){_0x80a3a3=_0x80a3a3||0x1f4;return function(_0x39fa9b){logger['error'](_0x39fa9b[_0xb408('0x2c')]);if(_0x39fa9b[_0xb408('0x2d')]){delete _0x39fa9b[_0xb408('0x2d')];}_0x32b68e['status'](_0x80a3a3)[_0xb408('0x2e')](_0x39fa9b);};}exports[_0xb408('0x2f')]=function(_0x57aed7,_0x29ff13){var _0x18d41a={},_0x41a3e6={},_0x1803b3={'count':0x0,'rows':[]};var _0x2ccabe=_[_0xb408('0x30')](db[_0xb408('0x31')]['rawAttributes'],function(_0x178be3){return{'name':_0x178be3[_0xb408('0x32')],'type':_0x178be3['type'][_0xb408('0x33')]};});_0x41a3e6[_0xb408('0x34')]=_[_0xb408('0x30')](_0x2ccabe,'name');_0x41a3e6[_0xb408('0x35')]=_[_0xb408('0x36')](_0x57aed7[_0xb408('0x35')]);_0x41a3e6[_0xb408('0x37')]=_[_0xb408('0x38')](_0x41a3e6[_0xb408('0x34')],_0x41a3e6[_0xb408('0x35')]);_0x18d41a[_0xb408('0x39')]=_[_0xb408('0x38')](_0x41a3e6['model'],qs[_0xb408('0x3a')](_0x57aed7[_0xb408('0x35')]['fields']));_0x18d41a['attributes']=_0x18d41a['attributes'][_0xb408('0x3b')]?_0x18d41a[_0xb408('0x39')]:_0x41a3e6[_0xb408('0x34')];if(!_0x57aed7[_0xb408('0x35')][_0xb408('0x3c')](_0xb408('0x3d'))){_0x18d41a[_0xb408('0x3e')]=qs[_0xb408('0x3e')](_0x57aed7['query'][_0xb408('0x3e')]);_0x18d41a['offset']=qs[_0xb408('0x1e')](_0x57aed7[_0xb408('0x35')][_0xb408('0x1e')]);}_0x18d41a[_0xb408('0x3f')]=qs[_0xb408('0x40')](_0x57aed7['query'][_0xb408('0x40')]);_0x18d41a[_0xb408('0x41')]=qs[_0xb408('0x37')](_[_0xb408('0x42')](_0x57aed7[_0xb408('0x35')],_0x41a3e6['filters']),_0x2ccabe);if(_0x57aed7[_0xb408('0x35')][_0xb408('0x43')]){_0x18d41a['where']=_[_0xb408('0x44')](_0x18d41a[_0xb408('0x41')],{'$or':_['map'](_0x2ccabe,function(_0x410498){if(_0x410498[_0xb408('0x45')]!=='VIRTUAL'){var _0x4e8655={};_0x4e8655[_0x410498[_0xb408('0x2d')]]={'$like':'%'+_0x57aed7['query'][_0xb408('0x43')]+'%'};return _0x4e8655;}})});}_0x18d41a=_[_0xb408('0x44')]({},_0x18d41a,_0x57aed7[_0xb408('0x46')]);var _0x314ec1={'where':_0x18d41a[_0xb408('0x41')]};return db[_0xb408('0x31')][_0xb408('0x1d')](_0x314ec1)[_0xb408('0x27')](function(_0x28786f){_0x1803b3[_0xb408('0x1d')]=_0x28786f;if(_0x57aed7[_0xb408('0x35')][_0xb408('0x47')]){_0x18d41a[_0xb408('0x48')]=[{'all':!![]}];}return db[_0xb408('0x31')][_0xb408('0x49')](_0x18d41a);})[_0xb408('0x27')](function(_0x438107){_0x1803b3[_0xb408('0x4a')]=_0x438107;return _0x1803b3;})[_0xb408('0x27')](respondWithFilteredResult(_0x29ff13,_0x18d41a))[_0xb408('0x4b')](handleError(_0x29ff13,null));};exports['show']=function(_0x326b2b,_0x8818fd){var _0x342e50={'raw':!![],'where':{'id':_0x326b2b[_0xb408('0x4c')]['id']}},_0x527a5e={};_0x527a5e[_0xb408('0x34')]=_[_0xb408('0x36')](db[_0xb408('0x31')]['rawAttributes']);_0x527a5e['query']=_[_0xb408('0x36')](_0x326b2b['query']);_0x527a5e[_0xb408('0x37')]=_['intersection'](_0x527a5e[_0xb408('0x34')],_0x527a5e[_0xb408('0x35')]);_0x342e50[_0xb408('0x39')]=_[_0xb408('0x38')](_0x527a5e[_0xb408('0x34')],qs[_0xb408('0x3a')](_0x326b2b[_0xb408('0x35')][_0xb408('0x3a')]));_0x342e50['attributes']=_0x342e50[_0xb408('0x39')][_0xb408('0x3b')]?_0x342e50[_0xb408('0x39')]:_0x527a5e[_0xb408('0x34')];if(_0x326b2b[_0xb408('0x35')]['includeAll']){_0x342e50[_0xb408('0x48')]=[{'all':!![]}];}_0x342e50=_[_0xb408('0x44')]({},_0x342e50,_0x326b2b[_0xb408('0x46')]);return db[_0xb408('0x31')][_0xb408('0x4d')](_0x342e50)[_0xb408('0x27')](handleEntityNotFound(_0x8818fd,null))[_0xb408('0x27')](respondWithResult(_0x8818fd,null))[_0xb408('0x4b')](handleError(_0x8818fd,null));};exports[_0xb408('0x4e')]=function(_0x49c721,_0x228f92,_0x4149f0){return db['Sound'][_0xb408('0x4d')]({'where':{'id':_0x49c721['params']['id']},'attributes':[_0xb408('0x2d'),_0xb408('0x4f'),'converted_format'],'raw':!![]})[_0xb408('0x27')](handleEntityNotFound(_0x228f92,null))[_0xb408('0x27')](function(_0x105332){if(_0x105332){if(!fs['existsSync'](path[_0xb408('0x50')](config[_0xb408('0x51')],'server/files/sounds/converted',_0x105332[_0xb408('0x4f')]+'.'+_0x105332[_0xb408('0x52')]))){throw new db['Sequelize'][(_0xb408('0x53'))]('Sound\x20not\x20found');}return _0x228f92[_0xb408('0x4e')](path[_0xb408('0x50')](config[_0xb408('0x51')],_0xb408('0x54'),util[_0xb408('0x55')](_0xb408('0x56'),_0x105332[_0xb408('0x4f')],_0x105332[_0xb408('0x52')])),util[_0xb408('0x55')]('%s.%s',_0x105332['name'],_0x105332['converted_format']));}return null;})[_0xb408('0x4b')](handleError(_0x228f92,null));};exports[_0xb408('0x57')]=function(_0x2ff752,_0x5595a0,_0x3550a0){var _0x4ae06f={'name':path[_0xb408('0x58')](_0x2ff752[_0xb408('0x59')]['originalname'],path[_0xb408('0x5a')](_0x2ff752[_0xb408('0x59')][_0xb408('0x5b')])),'save_name':path[_0xb408('0x58')](_0x2ff752['file'][_0xb408('0x5c')],path['extname'](_0x2ff752[_0xb408('0x59')][_0xb408('0x5c')])),'original_format':path[_0xb408('0x5a')](_0x2ff752[_0xb408('0x59')]['originalname'])[_0xb408('0x5d')](0x1),'converted_format':_0xb408('0x5e')};var _0x2eea83=path['join'](config[_0xb408('0x51')],_0xb408('0x5f'),_0x2ff752[_0xb408('0x59')][_0xb408('0x5c')]);var _0x5741c6=path['join'](config[_0xb408('0x51')],_0xb408('0x54'),util[_0xb408('0x55')](_0xb408('0x56'),path['basename'](_0x2ff752['file'][_0xb408('0x5c')],path['extname'](_0x2ff752[_0xb408('0x59')][_0xb408('0x5c')])),_0x4ae06f[_0xb408('0x52')]));logger[_0xb408('0x60')]('Sound\x20upload\x20filepath:\x20%s',_0x2eea83);logger[_0xb408('0x60')](_0xb408('0x61'),_0x5741c6);try{fs[_0xb408('0x62')](_0x2eea83,parseInt(_0xb408('0x63'),0x8));var _0x1dd713=sox['transcode'](_0x2eea83,_0x5741c6,{'sampleRate':0x1f40,'format':_0xb408('0x5e'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1dd713['on'](_0xb408('0x64'),function(_0x3fda93){fs[_0xb408('0x65')](_0x2eea83);_0x5595a0[_0xb408('0x1f')](0x1f4)['send'](_0x3fda93);});_0x1dd713['on'](_0xb408('0x66'),function(_0x2da7d0){_0x4ae06f[_0xb408('0x67')]=isNaN(_0x2da7d0['duration'])?null:_0x2da7d0[_0xb408('0x68')]*0x3e8;_0x4ae06f[_0xb408('0x69')]=isNaN(_0x2da7d0[_0xb408('0x6a')])?null:_0x2da7d0['sampleCount'];_0x4ae06f['original_channelCount']=isNaN(_0x2da7d0['channelCount'])?null:_0x2da7d0[_0xb408('0x6b')];_0x4ae06f[_0xb408('0x6c')]=isNaN(_0x2da7d0[_0xb408('0x6d')])?null:_0x2da7d0[_0xb408('0x6d')];_0x4ae06f['original_sampleRate']=isNaN(_0x2da7d0[_0xb408('0x6e')])?null:_0x2da7d0['sampleRate'];});_0x1dd713['on'](_0xb408('0x6f'),function(_0x1a6b1b){_0x4ae06f[_0xb408('0x70')]=isNaN(_0x1a6b1b[_0xb408('0x68')])?null:_0x1a6b1b[_0xb408('0x68')]*0x3e8;_0x4ae06f[_0xb408('0x71')]=isNaN(_0x1a6b1b[_0xb408('0x6a')])?null:_0x1a6b1b[_0xb408('0x6a')];_0x4ae06f['converted_channelCount']=isNaN(_0x1a6b1b[_0xb408('0x6b')])?null:_0x1a6b1b[_0xb408('0x6b')];_0x4ae06f[_0xb408('0x72')]=isNaN(_0x1a6b1b[_0xb408('0x6d')])?null:_0x1a6b1b[_0xb408('0x6d')];_0x4ae06f['converted_sampleRate']=isNaN(_0x1a6b1b['sampleRate'])?null:_0x1a6b1b[_0xb408('0x6e')];});_0x1dd713['on'](_0xb408('0x1b'),function(){fs['chmodSync'](_0x5741c6,parseInt(_0xb408('0x63'),0x8));return db[_0xb408('0x31')]['create'](_0x4ae06f)[_0xb408('0x27')](function(_0x19b594){var _0x654141={'role':_0x2ff752[_0xb408('0x73')][_0xb408('0x74')],'userProfileId':_0x2ff752[_0xb408('0x73')][_0xb408('0x75')]};if(!_0x654141)throw new Error(_0xb408('0x76'));if(_0x654141[_0xb408('0x74')]===_0xb408('0x77')){var _0xe819e5=_0x19b594[_0xb408('0x28')]({'plain':!![]});return db[_0xb408('0x78')][_0xb408('0x4d')]({'where':{'name':'Sounds','userProfileId':_0x654141['userProfileId']},'raw':!![]})[_0xb408('0x27')](function(_0x1cb4bf){if(_0x1cb4bf&&_0x1cb4bf[_0xb408('0x79')]===0x0){return db[_0xb408('0x2a')][_0xb408('0x57')]({'name':_0xe819e5['name'],'resourceId':_0xe819e5['id'],'type':_0x1cb4bf[_0xb408('0x2d')],'sectionId':_0x1cb4bf['id']},{})['then'](function(){return _0x19b594;});}else{return _0x19b594;}})[_0xb408('0x4b')](function(_0x1dad11){logger[_0xb408('0x64')](_0xb408('0x7a'),_0x1dad11);throw _0x1dad11;});}return _0x19b594;})[_0xb408('0x27')](respondWithResult(_0x5595a0,null))[_0xb408('0x4b')](handleError(_0x5595a0,null));});_0x1dd713[_0xb408('0x7b')]();}catch(_0x1936d5){_0x5595a0[_0xb408('0x1f')](0x1f4)[_0xb408('0x2e')](_0x1936d5);}};exports['update']=function(_0x580708,_0x26cfc7,_0x665be2){return db[_0xb408('0x31')]['find']({'where':{'id':_0x580708['params']['id']}})[_0xb408('0x27')](handleEntityNotFound(_0x26cfc7,null))[_0xb408('0x27')](saveUpdates(_[_0xb408('0x42')](_0x580708[_0xb408('0x73')],[_0xb408('0x2d'),_0xb408('0x7c')]),null))[_0xb408('0x27')](respondWithResult(_0x26cfc7,null))[_0xb408('0x4b')](handleError(_0x26cfc7,null));};exports['delete']=function(_0x5b14f2,_0x4ca305,_0x2f5e16){return db['Sound'][_0xb408('0x4d')]({'where':{'id':_0x5b14f2[_0xb408('0x4c')]['id']}})['then'](function(_0x38628f){if(_0x38628f){return _0x38628f[_0xb408('0x2b')]();}})['then'](function(_0x53cb3b){var _0x1d275f=path[_0xb408('0x50')](config[_0xb408('0x51')],_0xb408('0x5f'),util[_0xb408('0x55')]('%s.%s',_0x53cb3b[_0xb408('0x4f')],_0x53cb3b['original_format']));var _0x3a7a1f=path[_0xb408('0x50')](config['root'],'server/files/sounds/converted',util['format'](_0xb408('0x56'),_0x53cb3b[_0xb408('0x4f')],_0x53cb3b[_0xb408('0x52')]));fs[_0xb408('0x65')](_0x1d275f);fs[_0xb408('0x65')](_0x3a7a1f);return _0x53cb3b;})['then'](function(_0x5a8ec7){if(_0x5a8ec7){return _0x4ca305['status'](0xcc)[_0xb408('0x1b')]();}})[_0xb408('0x27')](handleEntityNotFound(_0x4ca305,null))['catch'](handleError(_0x4ca305,null));};