d5d7dd18451a651d8f9c2c122627329d990cac2a
[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 _0x52e3=['original_sampleCount','channelCount','bitRate','original_sampleRate','sampleRate','dest','sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','chmodSync','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','delete','original_format','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','Sounds','UserProfileResource','destroy','sendStatus','error','stack','name','map','Sound','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','include','findAll','rows','catch','length','find','download','params','save_name','converted_format','existsSync','join','root','server/files/sounds/converted','ValidationError','Sound\x20not\x20found','format','%s.%s','basename','originalname','file','filename','extname','substring','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','transcode','wav','send','src','original_duration','duration'];(function(_0x2ec461,_0x5f588a){var _0x28603d=function(_0x21114b){while(--_0x21114b){_0x2ec461['push'](_0x2ec461['shift']());}};_0x28603d(++_0x5f588a);}(_0x52e3,0x193));var _0x352e=function(_0x56034a,_0xc135b0){_0x56034a=_0x56034a-0x0;var _0xb2b60f=_0x52e3[_0x56034a];return _0xb2b60f;};'use strict';var emlformat=require(_0x352e('0x0'));var rimraf=require(_0x352e('0x1'));var zipdir=require(_0x352e('0x2'));var jsonpatch=require(_0x352e('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x352e('0x4'));var util=require(_0x352e('0x5'));var path=require(_0x352e('0x6'));var sox=require(_0x352e('0x7'));var csv=require(_0x352e('0x8'));var ejs=require(_0x352e('0x9'));var fs=require('fs');var fs_extra=require(_0x352e('0xa'));var _=require(_0x352e('0xb'));var squel=require(_0x352e('0xc'));var crypto=require('crypto');var jsforce=require(_0x352e('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x352e('0xe'));var Redis=require(_0x352e('0xf'));var authService=require(_0x352e('0x10'));var qs=require(_0x352e('0x11'));var as=require(_0x352e('0x12'));var hardwareService=require(_0x352e('0x13'));var logger=require(_0x352e('0x14'))('api');var utils=require(_0x352e('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x352e('0x16'));var db=require(_0x352e('0x17'))['db'];function respondWithStatusCode(_0x412b39,_0x13c5bd){_0x13c5bd=_0x13c5bd||0xcc;return function(_0x543ab2){if(_0x543ab2){return _0x412b39['sendStatus'](_0x13c5bd);}return _0x412b39[_0x352e('0x18')](_0x13c5bd)[_0x352e('0x19')]();};}function respondWithResult(_0x2fed0f,_0x1421ad){_0x1421ad=_0x1421ad||0xc8;return function(_0x5e1b83){if(_0x5e1b83){return _0x2fed0f[_0x352e('0x18')](_0x1421ad)[_0x352e('0x1a')](_0x5e1b83);}};}function respondWithFilteredResult(_0x57a087,_0x38eab6){return function(_0x29e30d){if(_0x29e30d){var _0x1d829e=typeof _0x38eab6[_0x352e('0x1b')]===_0x352e('0x1c')&&typeof _0x38eab6[_0x352e('0x1d')]==='undefined';var _0x430670=_0x29e30d[_0x352e('0x1e')];var _0x11a324=_0x1d829e?0x0:_0x38eab6[_0x352e('0x1b')];var _0x1d4de8=_0x1d829e?_0x29e30d['count']:_0x38eab6[_0x352e('0x1b')]+_0x38eab6[_0x352e('0x1d')];var _0x36c0c8;if(_0x1d4de8>=_0x430670){_0x1d4de8=_0x430670;_0x36c0c8=0xc8;}else{_0x36c0c8=0xce;}_0x57a087[_0x352e('0x18')](_0x36c0c8);return _0x57a087[_0x352e('0x1f')](_0x352e('0x20'),_0x11a324+'-'+_0x1d4de8+'/'+_0x430670)[_0x352e('0x1a')](_0x29e30d);}return null;};}function patchUpdates(_0x26dfd5){return function(_0x26e295){try{jsonpatch[_0x352e('0x21')](_0x26e295,_0x26dfd5,!![]);}catch(_0x3bb987){return BPromise[_0x352e('0x22')](_0x3bb987);}return _0x26e295[_0x352e('0x23')]();};}function saveUpdates(_0x25c2f4,_0x3ba892){return function(_0x5d51ff){if(_0x5d51ff){return _0x5d51ff[_0x352e('0x24')](_0x25c2f4)[_0x352e('0x25')](function(_0x211ede){return _0x211ede;});}return null;};}function removeEntity(_0x1ab578,_0x6faf2f){return function(_0x81253f){if(_0x81253f){return _0x81253f['destroy']()[_0x352e('0x25')](function(){var _0x24186e=_0x81253f['get']({'plain':!![]});var _0x4bc81f=_0x352e('0x26');return db[_0x352e('0x27')][_0x352e('0x28')]({'where':{'type':_0x4bc81f,'resourceId':_0x24186e['id']}})[_0x352e('0x25')](function(){return _0x81253f;});})[_0x352e('0x25')](function(){_0x1ab578[_0x352e('0x18')](0xcc)[_0x352e('0x19')]();});}};}function handleEntityNotFound(_0x3f67fc,_0x3851f8){return function(_0x143723){if(!_0x143723){_0x3f67fc[_0x352e('0x29')](0x194);}return _0x143723;};}function handleError(_0x53979f,_0x94c101){_0x94c101=_0x94c101||0x1f4;return function(_0x4c70c2){logger[_0x352e('0x2a')](_0x4c70c2[_0x352e('0x2b')]);if(_0x4c70c2[_0x352e('0x2c')]){delete _0x4c70c2['name'];}_0x53979f[_0x352e('0x18')](_0x94c101)['send'](_0x4c70c2);};}exports['index']=function(_0x418d0b,_0x195767){var _0xc44a13={},_0x879cb0={},_0x4e319e={'count':0x0,'rows':[]};var _0xa48031=_[_0x352e('0x2d')](db[_0x352e('0x2e')][_0x352e('0x2f')],function(_0x274160){return{'name':_0x274160[_0x352e('0x30')],'type':_0x274160[_0x352e('0x31')][_0x352e('0x32')]};});_0x879cb0[_0x352e('0x33')]=_[_0x352e('0x2d')](_0xa48031,_0x352e('0x2c'));_0x879cb0[_0x352e('0x34')]=_[_0x352e('0x35')](_0x418d0b[_0x352e('0x34')]);_0x879cb0[_0x352e('0x36')]=_[_0x352e('0x37')](_0x879cb0[_0x352e('0x33')],_0x879cb0[_0x352e('0x34')]);_0xc44a13[_0x352e('0x38')]=_['intersection'](_0x879cb0[_0x352e('0x33')],qs[_0x352e('0x39')](_0x418d0b[_0x352e('0x34')][_0x352e('0x39')]));_0xc44a13[_0x352e('0x38')]=_0xc44a13[_0x352e('0x38')]['length']?_0xc44a13['attributes']:_0x879cb0[_0x352e('0x33')];if(!_0x418d0b[_0x352e('0x34')][_0x352e('0x3a')](_0x352e('0x3b'))){_0xc44a13[_0x352e('0x1d')]=qs['limit'](_0x418d0b[_0x352e('0x34')][_0x352e('0x1d')]);_0xc44a13['offset']=qs[_0x352e('0x1b')](_0x418d0b[_0x352e('0x34')][_0x352e('0x1b')]);}_0xc44a13[_0x352e('0x3c')]=qs[_0x352e('0x3d')](_0x418d0b['query']['sort']);_0xc44a13[_0x352e('0x3e')]=qs['filters'](_['pick'](_0x418d0b[_0x352e('0x34')],_0x879cb0[_0x352e('0x36')]),_0xa48031);if(_0x418d0b[_0x352e('0x34')][_0x352e('0x3f')]){_0xc44a13[_0x352e('0x3e')]=_[_0x352e('0x40')](_0xc44a13[_0x352e('0x3e')],{'$or':_[_0x352e('0x2d')](_0xa48031,function(_0x5d0cc5){if(_0x5d0cc5[_0x352e('0x31')]!==_0x352e('0x41')){var _0x3cb2ac={};_0x3cb2ac[_0x5d0cc5['name']]={'$like':'%'+_0x418d0b[_0x352e('0x34')][_0x352e('0x3f')]+'%'};return _0x3cb2ac;}})});}_0xc44a13=_[_0x352e('0x40')]({},_0xc44a13,_0x418d0b['options']);var _0xcdf063={'where':_0xc44a13['where']};return db[_0x352e('0x2e')][_0x352e('0x1e')](_0xcdf063)[_0x352e('0x25')](function(_0x4a1292){_0x4e319e[_0x352e('0x1e')]=_0x4a1292;if(_0x418d0b[_0x352e('0x34')]['includeAll']){_0xc44a13[_0x352e('0x42')]=[{'all':!![]}];}return db[_0x352e('0x2e')][_0x352e('0x43')](_0xc44a13);})[_0x352e('0x25')](function(_0x183ca4){_0x4e319e[_0x352e('0x44')]=_0x183ca4;return _0x4e319e;})['then'](respondWithFilteredResult(_0x195767,_0xc44a13))[_0x352e('0x45')](handleError(_0x195767,null));};exports['show']=function(_0x8e5ffc,_0x2220d8){var _0x218ddd={'raw':!![],'where':{'id':_0x8e5ffc['params']['id']}},_0x361bd7={};_0x361bd7[_0x352e('0x33')]=_[_0x352e('0x35')](db[_0x352e('0x2e')][_0x352e('0x2f')]);_0x361bd7[_0x352e('0x34')]=_['keys'](_0x8e5ffc[_0x352e('0x34')]);_0x361bd7['filters']=_[_0x352e('0x37')](_0x361bd7[_0x352e('0x33')],_0x361bd7[_0x352e('0x34')]);_0x218ddd[_0x352e('0x38')]=_[_0x352e('0x37')](_0x361bd7[_0x352e('0x33')],qs['fields'](_0x8e5ffc[_0x352e('0x34')][_0x352e('0x39')]));_0x218ddd[_0x352e('0x38')]=_0x218ddd[_0x352e('0x38')][_0x352e('0x46')]?_0x218ddd[_0x352e('0x38')]:_0x361bd7[_0x352e('0x33')];if(_0x8e5ffc['query']['includeAll']){_0x218ddd['include']=[{'all':!![]}];}_0x218ddd=_[_0x352e('0x40')]({},_0x218ddd,_0x8e5ffc['options']);return db[_0x352e('0x2e')][_0x352e('0x47')](_0x218ddd)[_0x352e('0x25')](handleEntityNotFound(_0x2220d8,null))[_0x352e('0x25')](respondWithResult(_0x2220d8,null))[_0x352e('0x45')](handleError(_0x2220d8,null));};exports[_0x352e('0x48')]=function(_0x2132f0,_0x2c3261,_0x378ce0){return db[_0x352e('0x2e')][_0x352e('0x47')]({'where':{'id':_0x2132f0[_0x352e('0x49')]['id']},'attributes':[_0x352e('0x2c'),_0x352e('0x4a'),_0x352e('0x4b')],'raw':!![]})[_0x352e('0x25')](handleEntityNotFound(_0x2c3261,null))['then'](function(_0xd269be){if(_0xd269be){if(!fs[_0x352e('0x4c')](path[_0x352e('0x4d')](config[_0x352e('0x4e')],_0x352e('0x4f'),_0xd269be[_0x352e('0x4a')]+'.'+_0xd269be[_0x352e('0x4b')]))){throw new db['Sequelize'][(_0x352e('0x50'))](_0x352e('0x51'));}return _0x2c3261['download'](path[_0x352e('0x4d')](config[_0x352e('0x4e')],_0x352e('0x4f'),util[_0x352e('0x52')](_0x352e('0x53'),_0xd269be[_0x352e('0x4a')],_0xd269be[_0x352e('0x4b')])),util[_0x352e('0x52')](_0x352e('0x53'),_0xd269be[_0x352e('0x2c')],_0xd269be['converted_format']));}return null;})[_0x352e('0x45')](handleError(_0x2c3261,null));};exports['create']=function(_0x55470f,_0x4ae985,_0x17c09c){var _0x1682d1={'name':path[_0x352e('0x54')](_0x55470f['file'][_0x352e('0x55')],path['extname'](_0x55470f[_0x352e('0x56')][_0x352e('0x55')])),'save_name':path[_0x352e('0x54')](_0x55470f[_0x352e('0x56')][_0x352e('0x57')],path[_0x352e('0x58')](_0x55470f[_0x352e('0x56')][_0x352e('0x57')])),'original_format':path[_0x352e('0x58')](_0x55470f[_0x352e('0x56')][_0x352e('0x55')])[_0x352e('0x59')](0x1),'converted_format':'wav'};var _0x33e518=path[_0x352e('0x4d')](config[_0x352e('0x4e')],_0x352e('0x5a'),_0x55470f[_0x352e('0x56')][_0x352e('0x57')]);var _0x23c4e3=path[_0x352e('0x4d')](config[_0x352e('0x4e')],'server/files/sounds/converted',util['format'](_0x352e('0x53'),path[_0x352e('0x54')](_0x55470f['file'][_0x352e('0x57')],path[_0x352e('0x58')](_0x55470f['file'][_0x352e('0x57')])),_0x1682d1[_0x352e('0x4b')]));logger[_0x352e('0x5b')](_0x352e('0x5c'),_0x33e518);logger[_0x352e('0x5b')](_0x352e('0x5d'),_0x23c4e3);try{fs['chmodSync'](_0x33e518,parseInt(_0x352e('0x5e'),0x8));var _0x3db5be=sox[_0x352e('0x5f')](_0x33e518,_0x23c4e3,{'sampleRate':0x1f40,'format':_0x352e('0x60'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x3db5be['on'](_0x352e('0x2a'),function(_0x1a1553){fs['unlinkSync'](_0x33e518);_0x4ae985[_0x352e('0x18')](0x1f4)[_0x352e('0x61')](_0x1a1553);});_0x3db5be['on'](_0x352e('0x62'),function(_0x1a780b){_0x1682d1[_0x352e('0x63')]=isNaN(_0x1a780b[_0x352e('0x64')])?null:_0x1a780b[_0x352e('0x64')]*0x3e8;_0x1682d1[_0x352e('0x65')]=isNaN(_0x1a780b['sampleCount'])?null:_0x1a780b['sampleCount'];_0x1682d1['original_channelCount']=isNaN(_0x1a780b['channelCount'])?null:_0x1a780b[_0x352e('0x66')];_0x1682d1['original_bitRate']=isNaN(_0x1a780b['bitRate'])?null:_0x1a780b[_0x352e('0x67')];_0x1682d1[_0x352e('0x68')]=isNaN(_0x1a780b[_0x352e('0x69')])?null:_0x1a780b[_0x352e('0x69')];});_0x3db5be['on'](_0x352e('0x6a'),function(_0x3fddc5){_0x1682d1['converted_duration']=isNaN(_0x3fddc5[_0x352e('0x64')])?null:_0x3fddc5[_0x352e('0x64')]*0x3e8;_0x1682d1['converted_sampleCount']=isNaN(_0x3fddc5[_0x352e('0x6b')])?null:_0x3fddc5[_0x352e('0x6b')];_0x1682d1[_0x352e('0x6c')]=isNaN(_0x3fddc5[_0x352e('0x66')])?null:_0x3fddc5[_0x352e('0x66')];_0x1682d1[_0x352e('0x6d')]=isNaN(_0x3fddc5[_0x352e('0x67')])?null:_0x3fddc5[_0x352e('0x67')];_0x1682d1[_0x352e('0x6e')]=isNaN(_0x3fddc5[_0x352e('0x69')])?null:_0x3fddc5[_0x352e('0x69')];});_0x3db5be['on']('end',function(){fs[_0x352e('0x6f')](_0x23c4e3,parseInt(_0x352e('0x5e'),0x8));return db[_0x352e('0x2e')]['create'](_0x1682d1)[_0x352e('0x25')](function(_0x72e229){var _0x5111aa={'role':_0x55470f[_0x352e('0x70')][_0x352e('0x71')],'userProfileId':_0x55470f['body'][_0x352e('0x72')]};if(!_0x5111aa)throw new Error(_0x352e('0x73'));if(_0x5111aa[_0x352e('0x71')]===_0x352e('0x74')){var _0x44de82=_0x72e229[_0x352e('0x75')]({'plain':!![]});return db[_0x352e('0x76')][_0x352e('0x47')]({'where':{'name':_0x352e('0x26'),'userProfileId':_0x5111aa[_0x352e('0x72')]},'raw':!![]})[_0x352e('0x25')](function(_0x542f46){if(_0x542f46&&_0x542f46[_0x352e('0x77')]===0x0){return db[_0x352e('0x27')][_0x352e('0x78')]({'name':_0x44de82['name'],'resourceId':_0x44de82['id'],'type':_0x542f46[_0x352e('0x2c')],'sectionId':_0x542f46['id']},{})[_0x352e('0x25')](function(){return _0x72e229;});}else{return _0x72e229;}})['catch'](function(_0x5e1bbb){logger[_0x352e('0x2a')](_0x352e('0x79'),_0x5e1bbb);throw _0x5e1bbb;});}return _0x72e229;})[_0x352e('0x25')](respondWithResult(_0x4ae985,null))[_0x352e('0x45')](handleError(_0x4ae985,null));});_0x3db5be['start']();}catch(_0x368e5f){_0x4ae985[_0x352e('0x18')](0x1f4)[_0x352e('0x61')](_0x368e5f);}};exports[_0x352e('0x24')]=function(_0x7f4041,_0x53ea99,_0x58dc46){return db[_0x352e('0x2e')][_0x352e('0x47')]({'where':{'id':_0x7f4041[_0x352e('0x49')]['id']}})[_0x352e('0x25')](handleEntityNotFound(_0x53ea99,null))[_0x352e('0x25')](saveUpdates(_['pick'](_0x7f4041['body'],[_0x352e('0x2c'),_0x352e('0x7a')]),null))['then'](respondWithResult(_0x53ea99,null))[_0x352e('0x45')](handleError(_0x53ea99,null));};exports[_0x352e('0x7b')]=function(_0x1e3118,_0x3a0009,_0x179c0a){return db[_0x352e('0x2e')][_0x352e('0x47')]({'where':{'id':_0x1e3118[_0x352e('0x49')]['id']}})['then'](function(_0x29e9f5){if(_0x29e9f5){return _0x29e9f5['destroy']();}})[_0x352e('0x25')](function(_0x3d1306){var _0x3fd1e0=path['join'](config[_0x352e('0x4e')],_0x352e('0x5a'),util[_0x352e('0x52')](_0x352e('0x53'),_0x3d1306['save_name'],_0x3d1306[_0x352e('0x7c')]));var _0x1b1222=path['join'](config[_0x352e('0x4e')],_0x352e('0x4f'),util['format'](_0x352e('0x53'),_0x3d1306[_0x352e('0x4a')],_0x3d1306[_0x352e('0x4b')]));fs[_0x352e('0x7d')](_0x3fd1e0);fs[_0x352e('0x7d')](_0x1b1222);return _0x3d1306;})[_0x352e('0x25')](function(_0x2e138b){if(_0x2e138b){return _0x3a0009[_0x352e('0x18')](0xcc)[_0x352e('0x19')]();}})['then'](handleEntityNotFound(_0x3a0009,null))['catch'](handleError(_0x3a0009,null));};