Built motion from commit (unavailable).|2.5.21
[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 _0xcdfa=['params','save_name','converted_format','existsSync','join','root','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','download','format','%s.%s','create','file','originalname','filename','extname','substring','wav','basename','info','Sound\x20upload\x20filepath:\x20%s','chmodSync','0777','transcode','error','unlinkSync','send','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','converted_channelCount','converted_sampleRate','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','body','description','delete','server/files/sounds/original','original_format','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Sounds','UserProfileResource','stack','name','index','Sound','rawAttributes','fieldName','type','key','model','map','query','keys','filters','attributes','intersection','fields','length','order','sort','where','pick','merge','VIRTUAL','filter','options','count','includeAll','findAll','catch','show','find'];(function(_0x2b100c,_0x1da489){var _0x550694=function(_0x8bf9ba){while(--_0x8bf9ba){_0x2b100c['push'](_0x2b100c['shift']());}};_0x550694(++_0x1da489);}(_0xcdfa,0x1b4));var _0xacdf=function(_0x4d6858,_0xc24a90){_0x4d6858=_0x4d6858-0x0;var _0x27bfb4=_0xcdfa[_0x4d6858];return _0x27bfb4;};'use strict';var pdf=require(_0xacdf('0x0'));var emlformat=require(_0xacdf('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xacdf('0x2'));var jsonpatch=require(_0xacdf('0x3'));var rp=require(_0xacdf('0x4'));var moment=require('moment');var BPromise=require(_0xacdf('0x5'));var Mustache=require(_0xacdf('0x6'));var util=require(_0xacdf('0x7'));var path=require(_0xacdf('0x8'));var sox=require(_0xacdf('0x9'));var csv=require(_0xacdf('0xa'));var ejs=require(_0xacdf('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xacdf('0xc'));var crypto=require(_0xacdf('0xd'));var jsforce=require(_0xacdf('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xacdf('0xf'));var Papa=require(_0xacdf('0x10'));var Redis=require(_0xacdf('0x11'));var authService=require(_0xacdf('0x12'));var qs=require(_0xacdf('0x13'));var as=require(_0xacdf('0x14'));var hardwareService=require(_0xacdf('0x15'));var logger=require(_0xacdf('0x16'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xacdf('0x17'))['db'];function respondWithStatusCode(_0x9eb424,_0x1057a6){_0x1057a6=_0x1057a6||0xcc;return function(_0xb8cb7c){if(_0xb8cb7c){return _0x9eb424[_0xacdf('0x18')](_0x1057a6);}return _0x9eb424[_0xacdf('0x19')](_0x1057a6)[_0xacdf('0x1a')]();};}function respondWithResult(_0x575d07,_0x12a3ec){_0x12a3ec=_0x12a3ec||0xc8;return function(_0x3cc35a){if(_0x3cc35a){return _0x575d07[_0xacdf('0x19')](_0x12a3ec)[_0xacdf('0x1b')](_0x3cc35a);}};}function respondWithFilteredResult(_0x1779bb,_0x5475da){return function(_0x894860){if(_0x894860){var _0x3c1e10=_0x894860['count'],_0x6b260c=_0x5475da[_0xacdf('0x1c')],_0x53625a=_0x5475da[_0xacdf('0x1c')]+_0x5475da[_0xacdf('0x1d')],_0x54b909;if(_0x53625a>=_0x3c1e10){_0x53625a=_0x3c1e10;_0x54b909=0xc8;}else{_0x54b909=0xce;}_0x1779bb['status'](_0x54b909);return _0x1779bb[_0xacdf('0x1e')](_0xacdf('0x1f'),_0x6b260c+'-'+_0x53625a+'/'+_0x3c1e10)[_0xacdf('0x1b')](_0x894860);}return null;};}function patchUpdates(_0x991094){return function(_0x235611){try{jsonpatch[_0xacdf('0x20')](_0x235611,_0x991094,!![]);}catch(_0xe0bea8){return BPromise[_0xacdf('0x21')](_0xe0bea8);}return _0x235611[_0xacdf('0x22')]();};}function saveUpdates(_0x507dec,_0x237a42){return function(_0x2bf252){if(_0x2bf252){return _0x2bf252[_0xacdf('0x23')](_0x507dec)[_0xacdf('0x24')](function(_0x209425){return _0x209425;});}return null;};}function removeEntity(_0x463627,_0x3e1dad){return function(_0x5350e2){if(_0x5350e2){return _0x5350e2[_0xacdf('0x25')]()[_0xacdf('0x24')](function(){var _0x27fed5=_0x5350e2[_0xacdf('0x26')]({'plain':!![]});var _0x342217=_0xacdf('0x27');return db[_0xacdf('0x28')]['destroy']({'where':{'type':_0x342217,'resourceId':_0x27fed5['id']}})[_0xacdf('0x24')](function(){return _0x5350e2;});})['then'](function(){_0x463627[_0xacdf('0x19')](0xcc)[_0xacdf('0x1a')]();});}};}function handleEntityNotFound(_0x345064,_0x4a2402){return function(_0xc942cd){if(!_0xc942cd){_0x345064[_0xacdf('0x18')](0x194);}return _0xc942cd;};}function handleError(_0xf3e32c,_0x4560f1){_0x4560f1=_0x4560f1||0x1f4;return function(_0x5475de){logger['error'](_0x5475de[_0xacdf('0x29')]);if(_0x5475de['name']){delete _0x5475de[_0xacdf('0x2a')];}_0xf3e32c[_0xacdf('0x19')](_0x4560f1)['send'](_0x5475de);};}exports[_0xacdf('0x2b')]=function(_0x45c7f2,_0x54a00){var _0x368dc3={},_0x3771d1={},_0xb5482b={'count':0x0,'rows':[]};var _0x53017f=_['map'](db[_0xacdf('0x2c')][_0xacdf('0x2d')],function(_0x4c9dce){return{'name':_0x4c9dce[_0xacdf('0x2e')],'type':_0x4c9dce[_0xacdf('0x2f')][_0xacdf('0x30')]};});_0x3771d1[_0xacdf('0x31')]=_[_0xacdf('0x32')](_0x53017f,'name');_0x3771d1[_0xacdf('0x33')]=_[_0xacdf('0x34')](_0x45c7f2[_0xacdf('0x33')]);_0x3771d1[_0xacdf('0x35')]=_['intersection'](_0x3771d1[_0xacdf('0x31')],_0x3771d1['query']);_0x368dc3[_0xacdf('0x36')]=_[_0xacdf('0x37')](_0x3771d1[_0xacdf('0x31')],qs[_0xacdf('0x38')](_0x45c7f2[_0xacdf('0x33')]['fields']));_0x368dc3[_0xacdf('0x36')]=_0x368dc3[_0xacdf('0x36')][_0xacdf('0x39')]?_0x368dc3['attributes']:_0x3771d1[_0xacdf('0x31')];if(!_0x45c7f2[_0xacdf('0x33')]['hasOwnProperty']('nolimit')){_0x368dc3[_0xacdf('0x1d')]=qs[_0xacdf('0x1d')](_0x45c7f2[_0xacdf('0x33')]['limit']);_0x368dc3['offset']=qs[_0xacdf('0x1c')](_0x45c7f2[_0xacdf('0x33')][_0xacdf('0x1c')]);}_0x368dc3[_0xacdf('0x3a')]=qs[_0xacdf('0x3b')](_0x45c7f2[_0xacdf('0x33')][_0xacdf('0x3b')]);_0x368dc3[_0xacdf('0x3c')]=qs[_0xacdf('0x35')](_[_0xacdf('0x3d')](_0x45c7f2['query'],_0x3771d1[_0xacdf('0x35')]),_0x53017f);if(_0x45c7f2[_0xacdf('0x33')]['filter']){_0x368dc3['where']=_[_0xacdf('0x3e')](_0x368dc3[_0xacdf('0x3c')],{'$or':_[_0xacdf('0x32')](_0x53017f,function(_0x162203){if(_0x162203['type']!==_0xacdf('0x3f')){var _0x309a31={};_0x309a31[_0x162203['name']]={'$like':'%'+_0x45c7f2[_0xacdf('0x33')][_0xacdf('0x40')]+'%'};return _0x309a31;}})});}_0x368dc3=_['merge']({},_0x368dc3,_0x45c7f2[_0xacdf('0x41')]);var _0x18e45d={'where':_0x368dc3['where']};return db[_0xacdf('0x2c')][_0xacdf('0x42')](_0x18e45d)[_0xacdf('0x24')](function(_0x5cafec){_0xb5482b[_0xacdf('0x42')]=_0x5cafec;if(_0x45c7f2[_0xacdf('0x33')][_0xacdf('0x43')]){_0x368dc3['include']=[{'all':!![]}];}return db[_0xacdf('0x2c')][_0xacdf('0x44')](_0x368dc3);})[_0xacdf('0x24')](function(_0x1372fa){_0xb5482b['rows']=_0x1372fa;return _0xb5482b;})[_0xacdf('0x24')](respondWithFilteredResult(_0x54a00,_0x368dc3))[_0xacdf('0x45')](handleError(_0x54a00,null));};exports[_0xacdf('0x46')]=function(_0x127095,_0x4d6ff1){var _0x5240cc={'raw':!![],'where':{'id':_0x127095['params']['id']}},_0x1eed83={};_0x1eed83[_0xacdf('0x31')]=_['keys'](db[_0xacdf('0x2c')][_0xacdf('0x2d')]);_0x1eed83[_0xacdf('0x33')]=_[_0xacdf('0x34')](_0x127095['query']);_0x1eed83['filters']=_[_0xacdf('0x37')](_0x1eed83[_0xacdf('0x31')],_0x1eed83[_0xacdf('0x33')]);_0x5240cc[_0xacdf('0x36')]=_[_0xacdf('0x37')](_0x1eed83[_0xacdf('0x31')],qs['fields'](_0x127095['query'][_0xacdf('0x38')]));_0x5240cc['attributes']=_0x5240cc[_0xacdf('0x36')][_0xacdf('0x39')]?_0x5240cc[_0xacdf('0x36')]:_0x1eed83[_0xacdf('0x31')];if(_0x127095[_0xacdf('0x33')]['includeAll']){_0x5240cc['include']=[{'all':!![]}];}_0x5240cc=_[_0xacdf('0x3e')]({},_0x5240cc,_0x127095['options']);return db[_0xacdf('0x2c')][_0xacdf('0x47')](_0x5240cc)[_0xacdf('0x24')](handleEntityNotFound(_0x4d6ff1,null))['then'](respondWithResult(_0x4d6ff1,null))[_0xacdf('0x45')](handleError(_0x4d6ff1,null));};exports['download']=function(_0x31fe82,_0x32a376,_0x59154b){return db[_0xacdf('0x2c')][_0xacdf('0x47')]({'where':{'id':_0x31fe82[_0xacdf('0x48')]['id']},'attributes':[_0xacdf('0x2a'),_0xacdf('0x49'),_0xacdf('0x4a')],'raw':!![]})[_0xacdf('0x24')](handleEntityNotFound(_0x32a376,null))['then'](function(_0x5d2fa2){if(_0x5d2fa2){if(!fs[_0xacdf('0x4b')](path[_0xacdf('0x4c')](config[_0xacdf('0x4d')],_0xacdf('0x4e'),_0x5d2fa2[_0xacdf('0x49')]+'.'+_0x5d2fa2['converted_format']))){throw new db[(_0xacdf('0x4f'))][(_0xacdf('0x50'))](_0xacdf('0x51'));}return _0x32a376[_0xacdf('0x52')](path['join'](config[_0xacdf('0x4d')],_0xacdf('0x4e'),util[_0xacdf('0x53')](_0xacdf('0x54'),_0x5d2fa2[_0xacdf('0x49')],_0x5d2fa2['converted_format'])),util[_0xacdf('0x53')]('%s.%s',_0x5d2fa2[_0xacdf('0x2a')],_0x5d2fa2['converted_format']));}return null;})[_0xacdf('0x45')](handleError(_0x32a376,null));};exports[_0xacdf('0x55')]=function(_0x1ac260,_0x54dd8a,_0x13354b){var _0x5cb95a={'name':path['basename'](_0x1ac260[_0xacdf('0x56')][_0xacdf('0x57')],path['extname'](_0x1ac260[_0xacdf('0x56')][_0xacdf('0x57')])),'save_name':path['basename'](_0x1ac260[_0xacdf('0x56')][_0xacdf('0x58')],path[_0xacdf('0x59')](_0x1ac260['file']['filename'])),'original_format':path[_0xacdf('0x59')](_0x1ac260[_0xacdf('0x56')][_0xacdf('0x57')])[_0xacdf('0x5a')](0x1),'converted_format':_0xacdf('0x5b')};var _0x58a4c5=path['join'](config[_0xacdf('0x4d')],'server/files/sounds/original',_0x1ac260[_0xacdf('0x56')][_0xacdf('0x58')]);var _0x40eb3b=path['join'](config[_0xacdf('0x4d')],'server/files/sounds/converted',util[_0xacdf('0x53')](_0xacdf('0x54'),path[_0xacdf('0x5c')](_0x1ac260[_0xacdf('0x56')][_0xacdf('0x58')],path[_0xacdf('0x59')](_0x1ac260[_0xacdf('0x56')][_0xacdf('0x58')])),_0x5cb95a['converted_format']));logger[_0xacdf('0x5d')](_0xacdf('0x5e'),_0x58a4c5);logger['info']('Sound\x20upload\x20destination:\x20%s',_0x40eb3b);try{fs[_0xacdf('0x5f')](_0x58a4c5,parseInt(_0xacdf('0x60'),0x8));var _0x4c8e59=sox[_0xacdf('0x61')](_0x58a4c5,_0x40eb3b,{'sampleRate':0x1f40,'format':_0xacdf('0x5b'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4c8e59['on'](_0xacdf('0x62'),function(_0x11e8d2){fs[_0xacdf('0x63')](_0x58a4c5);_0x54dd8a[_0xacdf('0x19')](0x1f4)[_0xacdf('0x64')](_0x11e8d2);});_0x4c8e59['on'](_0xacdf('0x65'),function(_0x7af43){_0x5cb95a[_0xacdf('0x66')]=isNaN(_0x7af43[_0xacdf('0x67')])?null:_0x7af43[_0xacdf('0x67')]*0x3e8;_0x5cb95a[_0xacdf('0x68')]=isNaN(_0x7af43[_0xacdf('0x69')])?null:_0x7af43[_0xacdf('0x69')];_0x5cb95a[_0xacdf('0x6a')]=isNaN(_0x7af43[_0xacdf('0x6b')])?null:_0x7af43[_0xacdf('0x6b')];_0x5cb95a['original_bitRate']=isNaN(_0x7af43[_0xacdf('0x6c')])?null:_0x7af43['bitRate'];_0x5cb95a[_0xacdf('0x6d')]=isNaN(_0x7af43['sampleRate'])?null:_0x7af43[_0xacdf('0x6e')];});_0x4c8e59['on']('dest',function(_0x5a9992){_0x5cb95a[_0xacdf('0x6f')]=isNaN(_0x5a9992[_0xacdf('0x67')])?null:_0x5a9992[_0xacdf('0x67')]*0x3e8;_0x5cb95a[_0xacdf('0x70')]=isNaN(_0x5a9992[_0xacdf('0x69')])?null:_0x5a9992[_0xacdf('0x69')];_0x5cb95a[_0xacdf('0x71')]=isNaN(_0x5a9992[_0xacdf('0x6b')])?null:_0x5a9992['channelCount'];_0x5cb95a['converted_bitRate']=isNaN(_0x5a9992[_0xacdf('0x6c')])?null:_0x5a9992[_0xacdf('0x6c')];_0x5cb95a[_0xacdf('0x72')]=isNaN(_0x5a9992[_0xacdf('0x6e')])?null:_0x5a9992[_0xacdf('0x6e')];});_0x4c8e59['on'](_0xacdf('0x1a'),function(){fs[_0xacdf('0x5f')](_0x40eb3b,parseInt('0777',0x8));return db['Sound'][_0xacdf('0x55')](_0x5cb95a)[_0xacdf('0x24')](function(_0x5342fc){var _0x514ad0={'role':_0x1ac260['body'][_0xacdf('0x73')],'userProfileId':_0x1ac260['body'][_0xacdf('0x74')]};if(!_0x514ad0)throw new Error(_0xacdf('0x75'));if(_0x514ad0[_0xacdf('0x73')]===_0xacdf('0x76')){var _0x300e86=_0x5342fc['get']({'plain':!![]});return db['UserProfileSection'][_0xacdf('0x47')]({'where':{'name':_0xacdf('0x27'),'userProfileId':_0x514ad0['userProfileId']},'raw':!![]})[_0xacdf('0x24')](function(_0x1d164d){if(_0x1d164d&&_0x1d164d[_0xacdf('0x77')]===0x0){return db[_0xacdf('0x28')]['create']({'name':_0x300e86[_0xacdf('0x2a')],'resourceId':_0x300e86['id'],'type':_0x1d164d[_0xacdf('0x2a')],'sectionId':_0x1d164d['id']},{})[_0xacdf('0x24')](function(){return _0x5342fc;});}else{return _0x5342fc;}})[_0xacdf('0x45')](function(_0x115bf2){logger['error'](_0xacdf('0x78'),_0x115bf2);throw _0x115bf2;});}return _0x5342fc;})['then'](respondWithResult(_0x54dd8a,null))['catch'](handleError(_0x54dd8a,null));});_0x4c8e59[_0xacdf('0x79')]();}catch(_0x4cad85){_0x54dd8a[_0xacdf('0x19')](0x1f4)[_0xacdf('0x64')](_0x4cad85);}};exports[_0xacdf('0x23')]=function(_0x55558a,_0xe2e57b,_0x4bb272){return db['Sound'][_0xacdf('0x47')]({'where':{'id':_0x55558a[_0xacdf('0x48')]['id']}})[_0xacdf('0x24')](handleEntityNotFound(_0xe2e57b,null))[_0xacdf('0x24')](saveUpdates(_[_0xacdf('0x3d')](_0x55558a[_0xacdf('0x7a')],[_0xacdf('0x2a'),_0xacdf('0x7b')]),null))[_0xacdf('0x24')](respondWithResult(_0xe2e57b,null))['catch'](handleError(_0xe2e57b,null));};exports[_0xacdf('0x7c')]=function(_0x42e1e7,_0x1a1a01,_0xad277f){return db[_0xacdf('0x2c')]['find']({'where':{'id':_0x42e1e7['params']['id']}})[_0xacdf('0x24')](function(_0x439c9c){if(_0x439c9c){return _0x439c9c['destroy']();}})[_0xacdf('0x24')](function(_0x401184){var _0x54b11c=path['join'](config['root'],_0xacdf('0x7d'),util[_0xacdf('0x53')](_0xacdf('0x54'),_0x401184['save_name'],_0x401184[_0xacdf('0x7e')]));var _0x4424f0=path[_0xacdf('0x4c')](config[_0xacdf('0x4d')],_0xacdf('0x4e'),util[_0xacdf('0x53')]('%s.%s',_0x401184[_0xacdf('0x49')],_0x401184[_0xacdf('0x4a')]));fs[_0xacdf('0x63')](_0x54b11c);fs['unlinkSync'](_0x4424f0);return _0x401184;})['then'](function(_0x3225f6){if(_0x3225f6){return _0x1a1a01['status'](0xcc)['end']();}})[_0xacdf('0x24')](handleEntityNotFound(_0x1a1a01,null))['catch'](handleError(_0x1a1a01,null));};