066eb92292f935c1b92a6cbf94b5c4660a169d46
[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 _0x7fe3=['json','offset','undefined','limit','Content-Range','reject','save','update','then','destroy','Sounds','UserProfileResource','error','stack','name','send','index','map','Sound','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','sort','pick','filter','where','merge','count','includeAll','include','findAll','rows','catch','show','params','length','find','download','save_name','converted_format','join','root','server/files/sounds/converted','Sequelize','format','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','%s.%s','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','original_duration','duration','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','end','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','autoAssociation','description','delete','original_format','unlinkSync','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x3ff085,_0x27c92e){var _0x2b68c3=function(_0x37811e){while(--_0x37811e){_0x3ff085['push'](_0x3ff085['shift']());}};_0x2b68c3(++_0x27c92e);}(_0x7fe3,0xd7));var _0x37fe=function(_0x211f76,_0x29b220){_0x211f76=_0x211f76-0x0;var _0x58b1fe=_0x7fe3[_0x211f76];return _0x58b1fe;};'use strict';var emlformat=require(_0x37fe('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x37fe('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x37fe('0x2'));var moment=require(_0x37fe('0x3'));var BPromise=require(_0x37fe('0x4'));var Mustache=require(_0x37fe('0x5'));var util=require(_0x37fe('0x6'));var path=require(_0x37fe('0x7'));var sox=require(_0x37fe('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x37fe('0x9'));var crypto=require(_0x37fe('0xa'));var jsforce=require(_0x37fe('0xb'));var deskjs=require(_0x37fe('0xc'));var toCsv=require(_0x37fe('0xd'));var querystring=require(_0x37fe('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x37fe('0xf'));var qs=require(_0x37fe('0x10'));var as=require(_0x37fe('0x11'));var hardwareService=require(_0x37fe('0x12'));var logger=require(_0x37fe('0x13'))(_0x37fe('0x14'));var utils=require(_0x37fe('0x15'));var config=require(_0x37fe('0x16'));var licenseUtil=require(_0x37fe('0x17'));var db=require(_0x37fe('0x18'))['db'];function respondWithStatusCode(_0x5be45f,_0x50bfb7){_0x50bfb7=_0x50bfb7||0xcc;return function(_0xa77072){if(_0xa77072){return _0x5be45f[_0x37fe('0x19')](_0x50bfb7);}return _0x5be45f[_0x37fe('0x1a')](_0x50bfb7)['end']();};}function respondWithResult(_0x587b0f,_0x4c2795){_0x4c2795=_0x4c2795||0xc8;return function(_0x33ca49){if(_0x33ca49){return _0x587b0f[_0x37fe('0x1a')](_0x4c2795)[_0x37fe('0x1b')](_0x33ca49);}};}function respondWithFilteredResult(_0x409e8d,_0x460f3f){return function(_0x51fd3e){if(_0x51fd3e){var _0x15e060=typeof _0x460f3f[_0x37fe('0x1c')]===_0x37fe('0x1d')&&typeof _0x460f3f[_0x37fe('0x1e')]===_0x37fe('0x1d');var _0x4a1ff7=_0x51fd3e['count'];var _0x469e2e=_0x15e060?0x0:_0x460f3f[_0x37fe('0x1c')];var _0x3ae26c=_0x15e060?_0x51fd3e['count']:_0x460f3f[_0x37fe('0x1c')]+_0x460f3f['limit'];var _0x575c8d;if(_0x3ae26c>=_0x4a1ff7){_0x3ae26c=_0x4a1ff7;_0x575c8d=0xc8;}else{_0x575c8d=0xce;}_0x409e8d[_0x37fe('0x1a')](_0x575c8d);return _0x409e8d['set'](_0x37fe('0x1f'),_0x469e2e+'-'+_0x3ae26c+'/'+_0x4a1ff7)['json'](_0x51fd3e);}return null;};}function patchUpdates(_0x4f7e70){return function(_0x5a98d0){try{jsonpatch['apply'](_0x5a98d0,_0x4f7e70,!![]);}catch(_0x9cee6f){return BPromise[_0x37fe('0x20')](_0x9cee6f);}return _0x5a98d0[_0x37fe('0x21')]();};}function saveUpdates(_0x435fc6,_0x5e1429){return function(_0x2c4890){if(_0x2c4890){return _0x2c4890[_0x37fe('0x22')](_0x435fc6)[_0x37fe('0x23')](function(_0x2d3561){return _0x2d3561;});}return null;};}function removeEntity(_0x545fe4,_0x29e745){return function(_0x2bc6b6){if(_0x2bc6b6){return _0x2bc6b6[_0x37fe('0x24')]()[_0x37fe('0x23')](function(){var _0x4027fb=_0x2bc6b6['get']({'plain':!![]});var _0x234ef2=_0x37fe('0x25');return db[_0x37fe('0x26')][_0x37fe('0x24')]({'where':{'type':_0x234ef2,'resourceId':_0x4027fb['id']}})['then'](function(){return _0x2bc6b6;});})[_0x37fe('0x23')](function(){_0x545fe4[_0x37fe('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3b411f,_0x11509f){return function(_0x2619be){if(!_0x2619be){_0x3b411f[_0x37fe('0x19')](0x194);}return _0x2619be;};}function handleError(_0x9429f,_0xd11dca){_0xd11dca=_0xd11dca||0x1f4;return function(_0x35bb3d){logger[_0x37fe('0x27')](_0x35bb3d[_0x37fe('0x28')]);if(_0x35bb3d[_0x37fe('0x29')]){delete _0x35bb3d[_0x37fe('0x29')];}_0x9429f[_0x37fe('0x1a')](_0xd11dca)[_0x37fe('0x2a')](_0x35bb3d);};}exports[_0x37fe('0x2b')]=function(_0x5a34e8,_0x5d5270){var _0x43574e={},_0x4011a1={},_0x39a3a3={'count':0x0,'rows':[]};var _0x4dc594=_[_0x37fe('0x2c')](db[_0x37fe('0x2d')][_0x37fe('0x2e')],function(_0x26c1a9){return{'name':_0x26c1a9[_0x37fe('0x2f')],'type':_0x26c1a9[_0x37fe('0x30')][_0x37fe('0x31')]};});_0x4011a1['model']=_['map'](_0x4dc594,'name');_0x4011a1['query']=_[_0x37fe('0x32')](_0x5a34e8[_0x37fe('0x33')]);_0x4011a1[_0x37fe('0x34')]=_[_0x37fe('0x35')](_0x4011a1[_0x37fe('0x36')],_0x4011a1[_0x37fe('0x33')]);_0x43574e[_0x37fe('0x37')]=_[_0x37fe('0x35')](_0x4011a1[_0x37fe('0x36')],qs[_0x37fe('0x38')](_0x5a34e8[_0x37fe('0x33')][_0x37fe('0x38')]));_0x43574e['attributes']=_0x43574e[_0x37fe('0x37')]['length']?_0x43574e['attributes']:_0x4011a1['model'];if(!_0x5a34e8[_0x37fe('0x33')]['hasOwnProperty']('nolimit')){_0x43574e[_0x37fe('0x1e')]=qs['limit'](_0x5a34e8[_0x37fe('0x33')][_0x37fe('0x1e')]);_0x43574e['offset']=qs[_0x37fe('0x1c')](_0x5a34e8[_0x37fe('0x33')][_0x37fe('0x1c')]);}_0x43574e['order']=qs[_0x37fe('0x39')](_0x5a34e8[_0x37fe('0x33')][_0x37fe('0x39')]);_0x43574e['where']=qs[_0x37fe('0x34')](_[_0x37fe('0x3a')](_0x5a34e8[_0x37fe('0x33')],_0x4011a1[_0x37fe('0x34')]),_0x4dc594);if(_0x5a34e8[_0x37fe('0x33')][_0x37fe('0x3b')]){_0x43574e[_0x37fe('0x3c')]=_[_0x37fe('0x3d')](_0x43574e[_0x37fe('0x3c')],{'$or':_['map'](_0x4dc594,function(_0x3672aa){if(_0x3672aa[_0x37fe('0x30')]!=='VIRTUAL'){var _0x5f2d88={};_0x5f2d88[_0x3672aa[_0x37fe('0x29')]]={'$like':'%'+_0x5a34e8[_0x37fe('0x33')]['filter']+'%'};return _0x5f2d88;}})});}_0x43574e=_['merge']({},_0x43574e,_0x5a34e8['options']);var _0x289e90={'where':_0x43574e[_0x37fe('0x3c')]};return db[_0x37fe('0x2d')][_0x37fe('0x3e')](_0x289e90)['then'](function(_0x98edf1){_0x39a3a3[_0x37fe('0x3e')]=_0x98edf1;if(_0x5a34e8['query'][_0x37fe('0x3f')]){_0x43574e[_0x37fe('0x40')]=[{'all':!![]}];}return db['Sound'][_0x37fe('0x41')](_0x43574e);})[_0x37fe('0x23')](function(_0x1cb8f7){_0x39a3a3[_0x37fe('0x42')]=_0x1cb8f7;return _0x39a3a3;})['then'](respondWithFilteredResult(_0x5d5270,_0x43574e))[_0x37fe('0x43')](handleError(_0x5d5270,null));};exports[_0x37fe('0x44')]=function(_0x10024f,_0x1479c7){var _0x11967b={'raw':!![],'where':{'id':_0x10024f[_0x37fe('0x45')]['id']}},_0x29e9e2={};_0x29e9e2[_0x37fe('0x36')]=_['keys'](db[_0x37fe('0x2d')]['rawAttributes']);_0x29e9e2[_0x37fe('0x33')]=_[_0x37fe('0x32')](_0x10024f[_0x37fe('0x33')]);_0x29e9e2['filters']=_[_0x37fe('0x35')](_0x29e9e2[_0x37fe('0x36')],_0x29e9e2['query']);_0x11967b['attributes']=_['intersection'](_0x29e9e2[_0x37fe('0x36')],qs[_0x37fe('0x38')](_0x10024f[_0x37fe('0x33')][_0x37fe('0x38')]));_0x11967b[_0x37fe('0x37')]=_0x11967b[_0x37fe('0x37')][_0x37fe('0x46')]?_0x11967b[_0x37fe('0x37')]:_0x29e9e2[_0x37fe('0x36')];if(_0x10024f[_0x37fe('0x33')][_0x37fe('0x3f')]){_0x11967b[_0x37fe('0x40')]=[{'all':!![]}];}_0x11967b=_['merge']({},_0x11967b,_0x10024f['options']);return db[_0x37fe('0x2d')][_0x37fe('0x47')](_0x11967b)[_0x37fe('0x23')](handleEntityNotFound(_0x1479c7,null))['then'](respondWithResult(_0x1479c7,null))[_0x37fe('0x43')](handleError(_0x1479c7,null));};exports[_0x37fe('0x48')]=function(_0x243197,_0x3d7c63,_0x2a0582){return db['Sound'][_0x37fe('0x47')]({'where':{'id':_0x243197[_0x37fe('0x45')]['id']},'attributes':[_0x37fe('0x29'),_0x37fe('0x49'),_0x37fe('0x4a')],'raw':!![]})['then'](handleEntityNotFound(_0x3d7c63,null))[_0x37fe('0x23')](function(_0x33ac26){if(_0x33ac26){if(!fs['existsSync'](path[_0x37fe('0x4b')](config[_0x37fe('0x4c')],_0x37fe('0x4d'),_0x33ac26[_0x37fe('0x49')]+'.'+_0x33ac26[_0x37fe('0x4a')]))){throw new db[(_0x37fe('0x4e'))]['ValidationError']('Sound\x20not\x20found');}return _0x3d7c63[_0x37fe('0x48')](path[_0x37fe('0x4b')](config['root'],_0x37fe('0x4d'),util['format']('%s.%s',_0x33ac26[_0x37fe('0x49')],_0x33ac26['converted_format'])),util[_0x37fe('0x4f')]('%s.%s',_0x33ac26[_0x37fe('0x29')],_0x33ac26[_0x37fe('0x4a')]));}return null;})[_0x37fe('0x43')](handleError(_0x3d7c63,null));};exports['create']=function(_0x3c8a1b,_0x1ca3f5,_0x286927){var _0x38afe6={'name':path[_0x37fe('0x50')](_0x3c8a1b[_0x37fe('0x51')][_0x37fe('0x52')],path[_0x37fe('0x53')](_0x3c8a1b['file'][_0x37fe('0x52')])),'save_name':path[_0x37fe('0x50')](_0x3c8a1b['file'][_0x37fe('0x54')],path[_0x37fe('0x53')](_0x3c8a1b['file'][_0x37fe('0x54')])),'original_format':path[_0x37fe('0x53')](_0x3c8a1b['file'][_0x37fe('0x52')])[_0x37fe('0x55')](0x1),'converted_format':_0x37fe('0x56')};var _0x140dc8=path['join'](config['root'],_0x37fe('0x57'),_0x3c8a1b[_0x37fe('0x51')][_0x37fe('0x54')]);var _0x2e397a=path[_0x37fe('0x4b')](config[_0x37fe('0x4c')],'server/files/sounds/converted',util[_0x37fe('0x4f')](_0x37fe('0x58'),path[_0x37fe('0x50')](_0x3c8a1b[_0x37fe('0x51')][_0x37fe('0x54')],path[_0x37fe('0x53')](_0x3c8a1b[_0x37fe('0x51')]['filename'])),_0x38afe6[_0x37fe('0x4a')]));logger[_0x37fe('0x59')](_0x37fe('0x5a'),_0x140dc8);logger[_0x37fe('0x59')](_0x37fe('0x5b'),_0x2e397a);try{fs[_0x37fe('0x5c')](_0x140dc8,parseInt(_0x37fe('0x5d'),0x8));var _0x56e18c=sox[_0x37fe('0x5e')](_0x140dc8,_0x2e397a,{'sampleRate':0x1f40,'format':_0x37fe('0x56'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x56e18c['on'](_0x37fe('0x27'),function(_0x30d7bb){fs['unlinkSync'](_0x140dc8);_0x1ca3f5[_0x37fe('0x1a')](0x1f4)[_0x37fe('0x2a')](_0x30d7bb);});_0x56e18c['on']('src',function(_0x12c9e1){_0x38afe6[_0x37fe('0x5f')]=isNaN(_0x12c9e1[_0x37fe('0x60')])?null:_0x12c9e1[_0x37fe('0x60')]*0x3e8;_0x38afe6['original_sampleCount']=isNaN(_0x12c9e1[_0x37fe('0x61')])?null:_0x12c9e1[_0x37fe('0x61')];_0x38afe6[_0x37fe('0x62')]=isNaN(_0x12c9e1[_0x37fe('0x63')])?null:_0x12c9e1[_0x37fe('0x63')];_0x38afe6[_0x37fe('0x64')]=isNaN(_0x12c9e1['bitRate'])?null:_0x12c9e1[_0x37fe('0x65')];_0x38afe6[_0x37fe('0x66')]=isNaN(_0x12c9e1[_0x37fe('0x67')])?null:_0x12c9e1[_0x37fe('0x67')];});_0x56e18c['on']('dest',function(_0x43db0c){_0x38afe6[_0x37fe('0x68')]=isNaN(_0x43db0c[_0x37fe('0x60')])?null:_0x43db0c['duration']*0x3e8;_0x38afe6[_0x37fe('0x69')]=isNaN(_0x43db0c['sampleCount'])?null:_0x43db0c['sampleCount'];_0x38afe6['converted_channelCount']=isNaN(_0x43db0c[_0x37fe('0x63')])?null:_0x43db0c['channelCount'];_0x38afe6[_0x37fe('0x6a')]=isNaN(_0x43db0c[_0x37fe('0x65')])?null:_0x43db0c[_0x37fe('0x65')];_0x38afe6[_0x37fe('0x6b')]=isNaN(_0x43db0c['sampleRate'])?null:_0x43db0c[_0x37fe('0x67')];});_0x56e18c['on'](_0x37fe('0x6c'),function(){fs['chmodSync'](_0x2e397a,parseInt(_0x37fe('0x5d'),0x8));return db['Sound'][_0x37fe('0x6d')](_0x38afe6)[_0x37fe('0x23')](function(_0x20481b){var _0x54f6a4={'role':_0x3c8a1b[_0x37fe('0x6e')][_0x37fe('0x6f')],'userProfileId':_0x3c8a1b[_0x37fe('0x6e')][_0x37fe('0x70')]};if(!_0x54f6a4)throw new Error(_0x37fe('0x71'));if(_0x54f6a4[_0x37fe('0x6f')]==='user'){var _0x51ebad=_0x20481b[_0x37fe('0x72')]({'plain':!![]});return db[_0x37fe('0x73')][_0x37fe('0x47')]({'where':{'name':_0x37fe('0x25'),'userProfileId':_0x54f6a4[_0x37fe('0x70')]},'raw':!![]})['then'](function(_0x5e9075){if(_0x5e9075&&_0x5e9075[_0x37fe('0x74')]===0x0){return db[_0x37fe('0x26')][_0x37fe('0x6d')]({'name':_0x51ebad[_0x37fe('0x29')],'resourceId':_0x51ebad['id'],'type':_0x5e9075[_0x37fe('0x29')],'sectionId':_0x5e9075['id']},{})['then'](function(){return _0x20481b;});}else{return _0x20481b;}})[_0x37fe('0x43')](function(_0xb9f7b3){logger[_0x37fe('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xb9f7b3);throw _0xb9f7b3;});}return _0x20481b;})[_0x37fe('0x23')](respondWithResult(_0x1ca3f5,null))[_0x37fe('0x43')](handleError(_0x1ca3f5,null));});_0x56e18c['start']();}catch(_0x5ca50f){_0x1ca3f5[_0x37fe('0x1a')](0x1f4)[_0x37fe('0x2a')](_0x5ca50f);}};exports[_0x37fe('0x22')]=function(_0x53c7e1,_0x5bb8da,_0xfdd59a){return db[_0x37fe('0x2d')][_0x37fe('0x47')]({'where':{'id':_0x53c7e1[_0x37fe('0x45')]['id']}})[_0x37fe('0x23')](handleEntityNotFound(_0x5bb8da,null))[_0x37fe('0x23')](saveUpdates(_[_0x37fe('0x3a')](_0x53c7e1[_0x37fe('0x6e')],[_0x37fe('0x29'),_0x37fe('0x75')]),null))[_0x37fe('0x23')](respondWithResult(_0x5bb8da,null))[_0x37fe('0x43')](handleError(_0x5bb8da,null));};exports[_0x37fe('0x76')]=function(_0x5d1123,_0x34f26f,_0x48e77a){return db[_0x37fe('0x2d')][_0x37fe('0x47')]({'where':{'id':_0x5d1123['params']['id']}})['then'](function(_0x2478d0){if(_0x2478d0){return _0x2478d0[_0x37fe('0x24')]();}})[_0x37fe('0x23')](function(_0x51ba4d){var _0x5727e1=path[_0x37fe('0x4b')](config[_0x37fe('0x4c')],_0x37fe('0x57'),util[_0x37fe('0x4f')](_0x37fe('0x58'),_0x51ba4d['save_name'],_0x51ba4d[_0x37fe('0x77')]));var _0x354826=path[_0x37fe('0x4b')](config[_0x37fe('0x4c')],_0x37fe('0x4d'),util[_0x37fe('0x4f')](_0x37fe('0x58'),_0x51ba4d[_0x37fe('0x49')],_0x51ba4d[_0x37fe('0x4a')]));fs[_0x37fe('0x78')](_0x5727e1);fs['unlinkSync'](_0x354826);return _0x51ba4d;})['then'](function(_0x1143ff){if(_0x1143ff){return _0x34f26f[_0x37fe('0x1a')](0xcc)['end']();}})[_0x37fe('0x23')](handleEntityNotFound(_0x34f26f,null))[_0x37fe('0x43')](handleError(_0x34f26f,null));};