Built motion from commit 616d3211.|2.6.4
[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 _0xf5e0=['../../config/license/util','../../mysqldb','sendStatus','status','undefined','limit','offset','Content-Range','json','apply','reject','save','update','then','get','Sounds','UserProfileResource','destroy','end','stack','name','send','map','Sound','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','options','includeAll','include','rows','catch','show','params','keys','merge','find','download','converted_format','existsSync','join','root','server/files/sounds/converted','save_name','Sequelize','ValidationError','format','create','basename','file','originalname','extname','filename','wav','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','transcode','error','unlinkSync','src','original_duration','duration','sampleCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','server/files/sounds/original','%s.%s','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x49b207,_0x408ade){var _0x2dc8fa=function(_0x150975){while(--_0x150975){_0x49b207['push'](_0x49b207['shift']());}};_0x2dc8fa(++_0x408ade);}(_0xf5e0,0xe4));var _0x0f5e=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0xf5e0[_0x178e48];return _0x440d7e;};'use strict';var emlformat=require(_0x0f5e('0x0'));var rimraf=require(_0x0f5e('0x1'));var zipdir=require(_0x0f5e('0x2'));var jsonpatch=require(_0x0f5e('0x3'));var rp=require(_0x0f5e('0x4'));var moment=require('moment');var BPromise=require(_0x0f5e('0x5'));var Mustache=require('mustache');var util=require(_0x0f5e('0x6'));var path=require(_0x0f5e('0x7'));var sox=require(_0x0f5e('0x8'));var csv=require(_0x0f5e('0x9'));var ejs=require(_0x0f5e('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x0f5e('0xb'));var jsforce=require(_0x0f5e('0xc'));var deskjs=require(_0x0f5e('0xd'));var toCsv=require('to-csv');var querystring=require(_0x0f5e('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x0f5e('0xf'));var as=require(_0x0f5e('0x10'));var hardwareService=require(_0x0f5e('0x11'));var logger=require(_0x0f5e('0x12'))(_0x0f5e('0x13'));var utils=require(_0x0f5e('0x14'));var config=require(_0x0f5e('0x15'));var licenseUtil=require(_0x0f5e('0x16'));var db=require(_0x0f5e('0x17'))['db'];function respondWithStatusCode(_0x3c27fb,_0x191ea2){_0x191ea2=_0x191ea2||0xcc;return function(_0x49702f){if(_0x49702f){return _0x3c27fb[_0x0f5e('0x18')](_0x191ea2);}return _0x3c27fb[_0x0f5e('0x19')](_0x191ea2)['end']();};}function respondWithResult(_0x492d1f,_0x27fa64){_0x27fa64=_0x27fa64||0xc8;return function(_0x29589e){if(_0x29589e){return _0x492d1f[_0x0f5e('0x19')](_0x27fa64)['json'](_0x29589e);}};}function respondWithFilteredResult(_0x583fac,_0x5136eb){return function(_0x11729f){if(_0x11729f){var _0x297c73=typeof _0x5136eb['offset']===_0x0f5e('0x1a')&&typeof _0x5136eb[_0x0f5e('0x1b')]==='undefined';var _0x1c2dfb=_0x11729f['count'];var _0x587885=_0x297c73?0x0:_0x5136eb[_0x0f5e('0x1c')];var _0x5b1ee3=_0x297c73?_0x11729f['count']:_0x5136eb[_0x0f5e('0x1c')]+_0x5136eb[_0x0f5e('0x1b')];var _0x59364a;if(_0x5b1ee3>=_0x1c2dfb){_0x5b1ee3=_0x1c2dfb;_0x59364a=0xc8;}else{_0x59364a=0xce;}_0x583fac[_0x0f5e('0x19')](_0x59364a);return _0x583fac['set'](_0x0f5e('0x1d'),_0x587885+'-'+_0x5b1ee3+'/'+_0x1c2dfb)[_0x0f5e('0x1e')](_0x11729f);}return null;};}function patchUpdates(_0x4bc013){return function(_0x3c2227){try{jsonpatch[_0x0f5e('0x1f')](_0x3c2227,_0x4bc013,!![]);}catch(_0x16e2af){return BPromise[_0x0f5e('0x20')](_0x16e2af);}return _0x3c2227[_0x0f5e('0x21')]();};}function saveUpdates(_0x3fd101,_0x5160bc){return function(_0x52cb8a){if(_0x52cb8a){return _0x52cb8a[_0x0f5e('0x22')](_0x3fd101)[_0x0f5e('0x23')](function(_0x4d7eae){return _0x4d7eae;});}return null;};}function removeEntity(_0x40b0c9,_0x427630){return function(_0x2c3155){if(_0x2c3155){return _0x2c3155['destroy']()[_0x0f5e('0x23')](function(){var _0x1f82a0=_0x2c3155[_0x0f5e('0x24')]({'plain':!![]});var _0x53197e=_0x0f5e('0x25');return db[_0x0f5e('0x26')][_0x0f5e('0x27')]({'where':{'type':_0x53197e,'resourceId':_0x1f82a0['id']}})[_0x0f5e('0x23')](function(){return _0x2c3155;});})['then'](function(){_0x40b0c9['status'](0xcc)[_0x0f5e('0x28')]();});}};}function handleEntityNotFound(_0x55ff83,_0x168b59){return function(_0x524e35){if(!_0x524e35){_0x55ff83['sendStatus'](0x194);}return _0x524e35;};}function handleError(_0x2e1276,_0x2a07f6){_0x2a07f6=_0x2a07f6||0x1f4;return function(_0x334711){logger['error'](_0x334711[_0x0f5e('0x29')]);if(_0x334711[_0x0f5e('0x2a')]){delete _0x334711[_0x0f5e('0x2a')];}_0x2e1276[_0x0f5e('0x19')](_0x2a07f6)[_0x0f5e('0x2b')](_0x334711);};}exports['index']=function(_0x5c7f03,_0x481fa6){var _0x40cf4e={},_0x3e0eba={},_0x598c17={'count':0x0,'rows':[]};var _0x4d7fc2=_[_0x0f5e('0x2c')](db[_0x0f5e('0x2d')][_0x0f5e('0x2e')],function(_0x12d566){return{'name':_0x12d566[_0x0f5e('0x2f')],'type':_0x12d566[_0x0f5e('0x30')][_0x0f5e('0x31')]};});_0x3e0eba[_0x0f5e('0x32')]=_[_0x0f5e('0x2c')](_0x4d7fc2,_0x0f5e('0x2a'));_0x3e0eba[_0x0f5e('0x33')]=_['keys'](_0x5c7f03[_0x0f5e('0x33')]);_0x3e0eba[_0x0f5e('0x34')]=_[_0x0f5e('0x35')](_0x3e0eba['model'],_0x3e0eba[_0x0f5e('0x33')]);_0x40cf4e[_0x0f5e('0x36')]=_[_0x0f5e('0x35')](_0x3e0eba[_0x0f5e('0x32')],qs[_0x0f5e('0x37')](_0x5c7f03['query'][_0x0f5e('0x37')]));_0x40cf4e[_0x0f5e('0x36')]=_0x40cf4e['attributes'][_0x0f5e('0x38')]?_0x40cf4e[_0x0f5e('0x36')]:_0x3e0eba[_0x0f5e('0x32')];if(!_0x5c7f03[_0x0f5e('0x33')][_0x0f5e('0x39')](_0x0f5e('0x3a'))){_0x40cf4e[_0x0f5e('0x1b')]=qs[_0x0f5e('0x1b')](_0x5c7f03['query']['limit']);_0x40cf4e[_0x0f5e('0x1c')]=qs[_0x0f5e('0x1c')](_0x5c7f03[_0x0f5e('0x33')][_0x0f5e('0x1c')]);}_0x40cf4e[_0x0f5e('0x3b')]=qs[_0x0f5e('0x3c')](_0x5c7f03[_0x0f5e('0x33')][_0x0f5e('0x3c')]);_0x40cf4e[_0x0f5e('0x3d')]=qs['filters'](_[_0x0f5e('0x3e')](_0x5c7f03[_0x0f5e('0x33')],_0x3e0eba[_0x0f5e('0x34')]),_0x4d7fc2);if(_0x5c7f03[_0x0f5e('0x33')][_0x0f5e('0x3f')]){_0x40cf4e[_0x0f5e('0x3d')]=_['merge'](_0x40cf4e[_0x0f5e('0x3d')],{'$or':_[_0x0f5e('0x2c')](_0x4d7fc2,function(_0x42195e){if(_0x42195e[_0x0f5e('0x30')]!=='VIRTUAL'){var _0x55b0dd={};_0x55b0dd[_0x42195e[_0x0f5e('0x2a')]]={'$like':'%'+_0x5c7f03[_0x0f5e('0x33')][_0x0f5e('0x3f')]+'%'};return _0x55b0dd;}})});}_0x40cf4e=_['merge']({},_0x40cf4e,_0x5c7f03[_0x0f5e('0x40')]);var _0x31323e={'where':_0x40cf4e[_0x0f5e('0x3d')]};return db[_0x0f5e('0x2d')]['count'](_0x31323e)[_0x0f5e('0x23')](function(_0x1a106c){_0x598c17['count']=_0x1a106c;if(_0x5c7f03[_0x0f5e('0x33')][_0x0f5e('0x41')]){_0x40cf4e[_0x0f5e('0x42')]=[{'all':!![]}];}return db['Sound']['findAll'](_0x40cf4e);})[_0x0f5e('0x23')](function(_0x1ffce3){_0x598c17[_0x0f5e('0x43')]=_0x1ffce3;return _0x598c17;})[_0x0f5e('0x23')](respondWithFilteredResult(_0x481fa6,_0x40cf4e))[_0x0f5e('0x44')](handleError(_0x481fa6,null));};exports[_0x0f5e('0x45')]=function(_0x2f76d3,_0x275f69){var _0x4ec64a={'raw':!![],'where':{'id':_0x2f76d3[_0x0f5e('0x46')]['id']}},_0x30e386={};_0x30e386['model']=_[_0x0f5e('0x47')](db[_0x0f5e('0x2d')][_0x0f5e('0x2e')]);_0x30e386[_0x0f5e('0x33')]=_[_0x0f5e('0x47')](_0x2f76d3[_0x0f5e('0x33')]);_0x30e386[_0x0f5e('0x34')]=_[_0x0f5e('0x35')](_0x30e386[_0x0f5e('0x32')],_0x30e386[_0x0f5e('0x33')]);_0x4ec64a['attributes']=_[_0x0f5e('0x35')](_0x30e386[_0x0f5e('0x32')],qs[_0x0f5e('0x37')](_0x2f76d3[_0x0f5e('0x33')][_0x0f5e('0x37')]));_0x4ec64a[_0x0f5e('0x36')]=_0x4ec64a[_0x0f5e('0x36')][_0x0f5e('0x38')]?_0x4ec64a[_0x0f5e('0x36')]:_0x30e386[_0x0f5e('0x32')];if(_0x2f76d3[_0x0f5e('0x33')][_0x0f5e('0x41')]){_0x4ec64a['include']=[{'all':!![]}];}_0x4ec64a=_[_0x0f5e('0x48')]({},_0x4ec64a,_0x2f76d3[_0x0f5e('0x40')]);return db[_0x0f5e('0x2d')][_0x0f5e('0x49')](_0x4ec64a)['then'](handleEntityNotFound(_0x275f69,null))['then'](respondWithResult(_0x275f69,null))[_0x0f5e('0x44')](handleError(_0x275f69,null));};exports[_0x0f5e('0x4a')]=function(_0x4319c0,_0x5d0a96,_0x19d42c){return db[_0x0f5e('0x2d')][_0x0f5e('0x49')]({'where':{'id':_0x4319c0['params']['id']},'attributes':['name','save_name',_0x0f5e('0x4b')],'raw':!![]})[_0x0f5e('0x23')](handleEntityNotFound(_0x5d0a96,null))[_0x0f5e('0x23')](function(_0x599ef2){if(_0x599ef2){if(!fs[_0x0f5e('0x4c')](path[_0x0f5e('0x4d')](config[_0x0f5e('0x4e')],_0x0f5e('0x4f'),_0x599ef2[_0x0f5e('0x50')]+'.'+_0x599ef2[_0x0f5e('0x4b')]))){throw new db[(_0x0f5e('0x51'))][(_0x0f5e('0x52'))]('Sound\x20not\x20found');}return _0x5d0a96[_0x0f5e('0x4a')](path[_0x0f5e('0x4d')](config['root'],_0x0f5e('0x4f'),util[_0x0f5e('0x53')]('%s.%s',_0x599ef2[_0x0f5e('0x50')],_0x599ef2[_0x0f5e('0x4b')])),util[_0x0f5e('0x53')]('%s.%s',_0x599ef2[_0x0f5e('0x2a')],_0x599ef2[_0x0f5e('0x4b')]));}return null;})[_0x0f5e('0x44')](handleError(_0x5d0a96,null));};exports[_0x0f5e('0x54')]=function(_0x5b9b03,_0x572def,_0x140bc3){var _0x2ac4ad={'name':path[_0x0f5e('0x55')](_0x5b9b03[_0x0f5e('0x56')][_0x0f5e('0x57')],path['extname'](_0x5b9b03[_0x0f5e('0x56')][_0x0f5e('0x57')])),'save_name':path[_0x0f5e('0x55')](_0x5b9b03[_0x0f5e('0x56')]['filename'],path[_0x0f5e('0x58')](_0x5b9b03['file'][_0x0f5e('0x59')])),'original_format':path[_0x0f5e('0x58')](_0x5b9b03[_0x0f5e('0x56')][_0x0f5e('0x57')])['substring'](0x1),'converted_format':_0x0f5e('0x5a')};var _0x47e453=path['join'](config[_0x0f5e('0x4e')],'server/files/sounds/original',_0x5b9b03[_0x0f5e('0x56')][_0x0f5e('0x59')]);var _0x350c2a=path['join'](config[_0x0f5e('0x4e')],_0x0f5e('0x4f'),util[_0x0f5e('0x53')]('%s.%s',path[_0x0f5e('0x55')](_0x5b9b03[_0x0f5e('0x56')][_0x0f5e('0x59')],path[_0x0f5e('0x58')](_0x5b9b03[_0x0f5e('0x56')][_0x0f5e('0x59')])),_0x2ac4ad[_0x0f5e('0x4b')]));logger['info'](_0x0f5e('0x5b'),_0x47e453);logger['info'](_0x0f5e('0x5c'),_0x350c2a);try{fs['chmodSync'](_0x47e453,parseInt(_0x0f5e('0x5d'),0x8));var _0x32d4fd=sox[_0x0f5e('0x5e')](_0x47e453,_0x350c2a,{'sampleRate':0x1f40,'format':_0x0f5e('0x5a'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x32d4fd['on'](_0x0f5e('0x5f'),function(_0x232369){fs[_0x0f5e('0x60')](_0x47e453);_0x572def[_0x0f5e('0x19')](0x1f4)[_0x0f5e('0x2b')](_0x232369);});_0x32d4fd['on'](_0x0f5e('0x61'),function(_0x449b74){_0x2ac4ad[_0x0f5e('0x62')]=isNaN(_0x449b74[_0x0f5e('0x63')])?null:_0x449b74['duration']*0x3e8;_0x2ac4ad['original_sampleCount']=isNaN(_0x449b74[_0x0f5e('0x64')])?null:_0x449b74[_0x0f5e('0x64')];_0x2ac4ad['original_channelCount']=isNaN(_0x449b74[_0x0f5e('0x65')])?null:_0x449b74[_0x0f5e('0x65')];_0x2ac4ad[_0x0f5e('0x66')]=isNaN(_0x449b74[_0x0f5e('0x67')])?null:_0x449b74[_0x0f5e('0x67')];_0x2ac4ad[_0x0f5e('0x68')]=isNaN(_0x449b74[_0x0f5e('0x69')])?null:_0x449b74[_0x0f5e('0x69')];});_0x32d4fd['on'](_0x0f5e('0x6a'),function(_0x2decbf){_0x2ac4ad['converted_duration']=isNaN(_0x2decbf[_0x0f5e('0x63')])?null:_0x2decbf['duration']*0x3e8;_0x2ac4ad[_0x0f5e('0x6b')]=isNaN(_0x2decbf[_0x0f5e('0x64')])?null:_0x2decbf['sampleCount'];_0x2ac4ad[_0x0f5e('0x6c')]=isNaN(_0x2decbf[_0x0f5e('0x65')])?null:_0x2decbf[_0x0f5e('0x65')];_0x2ac4ad[_0x0f5e('0x6d')]=isNaN(_0x2decbf[_0x0f5e('0x67')])?null:_0x2decbf[_0x0f5e('0x67')];_0x2ac4ad[_0x0f5e('0x6e')]=isNaN(_0x2decbf[_0x0f5e('0x69')])?null:_0x2decbf[_0x0f5e('0x69')];});_0x32d4fd['on'](_0x0f5e('0x28'),function(){fs['chmodSync'](_0x350c2a,parseInt(_0x0f5e('0x5d'),0x8));return db[_0x0f5e('0x2d')][_0x0f5e('0x54')](_0x2ac4ad)['then'](function(_0x176a9c){var _0x4eb919={'role':_0x5b9b03[_0x0f5e('0x6f')][_0x0f5e('0x70')],'userProfileId':_0x5b9b03[_0x0f5e('0x6f')][_0x0f5e('0x71')]};if(!_0x4eb919)throw new Error(_0x0f5e('0x72'));if(_0x4eb919['role']===_0x0f5e('0x73')){var _0x35792a=_0x176a9c[_0x0f5e('0x24')]({'plain':!![]});return db[_0x0f5e('0x74')]['find']({'where':{'name':_0x0f5e('0x25'),'userProfileId':_0x4eb919['userProfileId']},'raw':!![]})[_0x0f5e('0x23')](function(_0x23ccf9){if(_0x23ccf9&&_0x23ccf9[_0x0f5e('0x75')]===0x0){return db[_0x0f5e('0x26')][_0x0f5e('0x54')]({'name':_0x35792a[_0x0f5e('0x2a')],'resourceId':_0x35792a['id'],'type':_0x23ccf9[_0x0f5e('0x2a')],'sectionId':_0x23ccf9['id']},{})[_0x0f5e('0x23')](function(){return _0x176a9c;});}else{return _0x176a9c;}})['catch'](function(_0x3e407c){logger[_0x0f5e('0x5f')](_0x0f5e('0x76'),_0x3e407c);throw _0x3e407c;});}return _0x176a9c;})[_0x0f5e('0x23')](respondWithResult(_0x572def,null))['catch'](handleError(_0x572def,null));});_0x32d4fd[_0x0f5e('0x77')]();}catch(_0x117d13){_0x572def[_0x0f5e('0x19')](0x1f4)[_0x0f5e('0x2b')](_0x117d13);}};exports['update']=function(_0x1757db,_0x189d9a,_0x2ecfba){return db[_0x0f5e('0x2d')][_0x0f5e('0x49')]({'where':{'id':_0x1757db[_0x0f5e('0x46')]['id']}})[_0x0f5e('0x23')](handleEntityNotFound(_0x189d9a,null))[_0x0f5e('0x23')](saveUpdates(_['pick'](_0x1757db[_0x0f5e('0x6f')],['name',_0x0f5e('0x78')]),null))[_0x0f5e('0x23')](respondWithResult(_0x189d9a,null))['catch'](handleError(_0x189d9a,null));};exports[_0x0f5e('0x79')]=function(_0xbceedf,_0x382327,_0x33c019){return db[_0x0f5e('0x2d')][_0x0f5e('0x49')]({'where':{'id':_0xbceedf[_0x0f5e('0x46')]['id']}})[_0x0f5e('0x23')](function(_0x410acf){if(_0x410acf){return _0x410acf[_0x0f5e('0x27')]();}})[_0x0f5e('0x23')](function(_0x2af33f){var _0x3e5536=path['join'](config[_0x0f5e('0x4e')],_0x0f5e('0x7a'),util[_0x0f5e('0x53')](_0x0f5e('0x7b'),_0x2af33f['save_name'],_0x2af33f[_0x0f5e('0x7c')]));var _0x1219a0=path['join'](config[_0x0f5e('0x4e')],'server/files/sounds/converted',util[_0x0f5e('0x53')]('%s.%s',_0x2af33f[_0x0f5e('0x50')],_0x2af33f['converted_format']));fs[_0x0f5e('0x60')](_0x3e5536);fs[_0x0f5e('0x60')](_0x1219a0);return _0x2af33f;})[_0x0f5e('0x23')](function(_0x1d49d7){if(_0x1d49d7){return _0x382327['status'](0xcc)['end']();}})[_0x0f5e('0x23')](handleEntityNotFound(_0x382327,null))[_0x0f5e('0x44')](handleError(_0x382327,null));};