b72159a0b00a55bf972271c71d6eb32f0be997d0
[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 _0xd0fe=['original_duration','duration','original_sampleCount','sampleCount','channelCount','original_bitRate','bitRate','original_sampleRate','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','sampleRate','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Sounds','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','find','description','delete','original_format','html-pdf','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','lodash','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','UserProfileResource','error','stack','name','send','index','Sound','rawAttributes','fieldName','type','key','map','keys','query','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','pick','filters','merge','where','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','catch','download','save_name','converted_format','existsSync','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','join','root','%s.%s','format','file','originalname','extname','basename','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','src'];(function(_0x3aa800,_0x1c386f){var _0x129816=function(_0x32953a){while(--_0x32953a){_0x3aa800['push'](_0x3aa800['shift']());}};_0x129816(++_0x1c386f);}(_0xd0fe,0x120));var _0xed0f=function(_0x1a7aa3,_0x31ae90){_0x1a7aa3=_0x1a7aa3-0x0;var _0x3b25d8=_0xd0fe[_0x1a7aa3];return _0x3b25d8;};'use strict';var pdf=require(_0xed0f('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xed0f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xed0f('0x2'));var rp=require('request-promise');var moment=require(_0xed0f('0x3'));var BPromise=require(_0xed0f('0x4'));var Mustache=require(_0xed0f('0x5'));var util=require(_0xed0f('0x6'));var path=require(_0xed0f('0x7'));var sox=require(_0xed0f('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xed0f('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xed0f('0xa'));var deskjs=require(_0xed0f('0xb'));var toCsv=require(_0xed0f('0xc'));var querystring=require(_0xed0f('0xd'));var Papa=require(_0xed0f('0xe'));var Redis=require(_0xed0f('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xed0f('0x10'));var as=require(_0xed0f('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xed0f('0x12'))(_0xed0f('0x13'));var utils=require(_0xed0f('0x14'));var config=require(_0xed0f('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xed0f('0x16'))['db'];function respondWithStatusCode(_0x58523a,_0x2008a6){_0x2008a6=_0x2008a6||0xcc;return function(_0x43077f){if(_0x43077f){return _0x58523a[_0xed0f('0x17')](_0x2008a6);}return _0x58523a[_0xed0f('0x18')](_0x2008a6)[_0xed0f('0x19')]();};}function respondWithResult(_0x472ecc,_0x4a7f6f){_0x4a7f6f=_0x4a7f6f||0xc8;return function(_0x25a53f){if(_0x25a53f){return _0x472ecc[_0xed0f('0x18')](_0x4a7f6f)[_0xed0f('0x1a')](_0x25a53f);}};}function respondWithFilteredResult(_0x4e2553,_0xfce45c){return function(_0x55c7ca){if(_0x55c7ca){var _0x59a204=_0x55c7ca[_0xed0f('0x1b')],_0x109a89=_0xfce45c[_0xed0f('0x1c')],_0x91fc91=_0xfce45c[_0xed0f('0x1c')]+_0xfce45c[_0xed0f('0x1d')],_0x429ed3;if(_0x91fc91>=_0x59a204){_0x91fc91=_0x59a204;_0x429ed3=0xc8;}else{_0x429ed3=0xce;}_0x4e2553['status'](_0x429ed3);return _0x4e2553[_0xed0f('0x1e')](_0xed0f('0x1f'),_0x109a89+'-'+_0x91fc91+'/'+_0x59a204)[_0xed0f('0x1a')](_0x55c7ca);}return null;};}function patchUpdates(_0x2d79ac){return function(_0x1c2384){try{jsonpatch[_0xed0f('0x20')](_0x1c2384,_0x2d79ac,!![]);}catch(_0x3bedaa){return BPromise[_0xed0f('0x21')](_0x3bedaa);}return _0x1c2384[_0xed0f('0x22')]();};}function saveUpdates(_0x3a88f6,_0x17c250){return function(_0x70a77d){if(_0x70a77d){return _0x70a77d[_0xed0f('0x23')](_0x3a88f6)['then'](function(_0x2c753f){return _0x2c753f;});}return null;};}function removeEntity(_0x37b1c7,_0x5ce4f1){return function(_0x51c3be){if(_0x51c3be){return _0x51c3be[_0xed0f('0x24')]()[_0xed0f('0x25')](function(){var _0x36418f=_0x51c3be[_0xed0f('0x26')]({'plain':!![]});var _0x31b58c='Sounds';return db[_0xed0f('0x27')][_0xed0f('0x24')]({'where':{'type':_0x31b58c,'resourceId':_0x36418f['id']}})[_0xed0f('0x25')](function(){return _0x51c3be;});})[_0xed0f('0x25')](function(){_0x37b1c7[_0xed0f('0x18')](0xcc)[_0xed0f('0x19')]();});}};}function handleEntityNotFound(_0x14a5f9,_0x5516d0){return function(_0x341543){if(!_0x341543){_0x14a5f9['sendStatus'](0x194);}return _0x341543;};}function handleError(_0x492b38,_0x38a62b){_0x38a62b=_0x38a62b||0x1f4;return function(_0x12f00c){logger[_0xed0f('0x28')](_0x12f00c[_0xed0f('0x29')]);if(_0x12f00c[_0xed0f('0x2a')]){delete _0x12f00c[_0xed0f('0x2a')];}_0x492b38['status'](_0x38a62b)[_0xed0f('0x2b')](_0x12f00c);};}exports[_0xed0f('0x2c')]=function(_0x58a4d4,_0x2ace38){var _0x28b6e5={},_0x3c8835={},_0x5b1b66={'count':0x0,'rows':[]};var _0x146d10=_['map'](db[_0xed0f('0x2d')][_0xed0f('0x2e')],function(_0x5abcb7){return{'name':_0x5abcb7[_0xed0f('0x2f')],'type':_0x5abcb7[_0xed0f('0x30')][_0xed0f('0x31')]};});_0x3c8835['model']=_[_0xed0f('0x32')](_0x146d10,_0xed0f('0x2a'));_0x3c8835['query']=_[_0xed0f('0x33')](_0x58a4d4[_0xed0f('0x34')]);_0x3c8835['filters']=_[_0xed0f('0x35')](_0x3c8835[_0xed0f('0x36')],_0x3c8835[_0xed0f('0x34')]);_0x28b6e5[_0xed0f('0x37')]=_[_0xed0f('0x35')](_0x3c8835[_0xed0f('0x36')],qs['fields'](_0x58a4d4[_0xed0f('0x34')][_0xed0f('0x38')]));_0x28b6e5[_0xed0f('0x37')]=_0x28b6e5[_0xed0f('0x37')][_0xed0f('0x39')]?_0x28b6e5['attributes']:_0x3c8835[_0xed0f('0x36')];if(!_0x58a4d4[_0xed0f('0x34')][_0xed0f('0x3a')]('nolimit')){_0x28b6e5[_0xed0f('0x1d')]=qs[_0xed0f('0x1d')](_0x58a4d4[_0xed0f('0x34')][_0xed0f('0x1d')]);_0x28b6e5[_0xed0f('0x1c')]=qs[_0xed0f('0x1c')](_0x58a4d4[_0xed0f('0x34')][_0xed0f('0x1c')]);}_0x28b6e5[_0xed0f('0x3b')]=qs['sort'](_0x58a4d4[_0xed0f('0x34')][_0xed0f('0x3c')]);_0x28b6e5['where']=qs['filters'](_[_0xed0f('0x3d')](_0x58a4d4[_0xed0f('0x34')],_0x3c8835[_0xed0f('0x3e')]),_0x146d10);if(_0x58a4d4['query']['filter']){_0x28b6e5['where']=_[_0xed0f('0x3f')](_0x28b6e5[_0xed0f('0x40')],{'$or':_[_0xed0f('0x32')](_0x146d10,function(_0x429590){if(_0x429590[_0xed0f('0x30')]!==_0xed0f('0x41')){var _0x5591f0={};_0x5591f0[_0x429590[_0xed0f('0x2a')]]={'$like':'%'+_0x58a4d4[_0xed0f('0x34')][_0xed0f('0x42')]+'%'};return _0x5591f0;}})});}_0x28b6e5=_['merge']({},_0x28b6e5,_0x58a4d4[_0xed0f('0x43')]);var _0x3065db={'where':_0x28b6e5[_0xed0f('0x40')]};return db[_0xed0f('0x2d')]['count'](_0x3065db)[_0xed0f('0x25')](function(_0x38f346){_0x5b1b66['count']=_0x38f346;if(_0x58a4d4[_0xed0f('0x34')][_0xed0f('0x44')]){_0x28b6e5[_0xed0f('0x45')]=[{'all':!![]}];}return db[_0xed0f('0x2d')][_0xed0f('0x46')](_0x28b6e5);})['then'](function(_0x24aee0){_0x5b1b66[_0xed0f('0x47')]=_0x24aee0;return _0x5b1b66;})['then'](respondWithFilteredResult(_0x2ace38,_0x28b6e5))['catch'](handleError(_0x2ace38,null));};exports[_0xed0f('0x48')]=function(_0x39bca7,_0x1f6014){var _0x15432c={'raw':!![],'where':{'id':_0x39bca7[_0xed0f('0x49')]['id']}},_0x56bf36={};_0x56bf36[_0xed0f('0x36')]=_[_0xed0f('0x33')](db['Sound'][_0xed0f('0x2e')]);_0x56bf36[_0xed0f('0x34')]=_[_0xed0f('0x33')](_0x39bca7[_0xed0f('0x34')]);_0x56bf36[_0xed0f('0x3e')]=_[_0xed0f('0x35')](_0x56bf36[_0xed0f('0x36')],_0x56bf36[_0xed0f('0x34')]);_0x15432c['attributes']=_[_0xed0f('0x35')](_0x56bf36['model'],qs[_0xed0f('0x38')](_0x39bca7[_0xed0f('0x34')][_0xed0f('0x38')]));_0x15432c['attributes']=_0x15432c[_0xed0f('0x37')][_0xed0f('0x39')]?_0x15432c[_0xed0f('0x37')]:_0x56bf36['model'];if(_0x39bca7[_0xed0f('0x34')][_0xed0f('0x44')]){_0x15432c['include']=[{'all':!![]}];}_0x15432c=_['merge']({},_0x15432c,_0x39bca7[_0xed0f('0x43')]);return db[_0xed0f('0x2d')]['find'](_0x15432c)['then'](handleEntityNotFound(_0x1f6014,null))[_0xed0f('0x25')](respondWithResult(_0x1f6014,null))[_0xed0f('0x4a')](handleError(_0x1f6014,null));};exports[_0xed0f('0x4b')]=function(_0x49280e,_0x4fad53,_0x29e71b){return db['Sound']['find']({'where':{'id':_0x49280e[_0xed0f('0x49')]['id']},'attributes':['name',_0xed0f('0x4c'),_0xed0f('0x4d')],'raw':!![]})[_0xed0f('0x25')](handleEntityNotFound(_0x4fad53,null))['then'](function(_0x21d073){if(_0x21d073){if(!fs[_0xed0f('0x4e')](path['join'](config['root'],_0xed0f('0x4f'),_0x21d073[_0xed0f('0x4c')]+'.'+_0x21d073['converted_format']))){throw new db[(_0xed0f('0x50'))][(_0xed0f('0x51'))](_0xed0f('0x52'));}return _0x4fad53[_0xed0f('0x4b')](path[_0xed0f('0x53')](config[_0xed0f('0x54')],_0xed0f('0x4f'),util['format'](_0xed0f('0x55'),_0x21d073[_0xed0f('0x4c')],_0x21d073[_0xed0f('0x4d')])),util[_0xed0f('0x56')]('%s.%s',_0x21d073['name'],_0x21d073[_0xed0f('0x4d')]));}return null;})[_0xed0f('0x4a')](handleError(_0x4fad53,null));};exports['create']=function(_0x461807,_0x3a0958,_0x23b3f8){var _0x248e07={'name':path['basename'](_0x461807[_0xed0f('0x57')][_0xed0f('0x58')],path[_0xed0f('0x59')](_0x461807['file'][_0xed0f('0x58')])),'save_name':path[_0xed0f('0x5a')](_0x461807[_0xed0f('0x57')][_0xed0f('0x5b')],path[_0xed0f('0x59')](_0x461807[_0xed0f('0x57')]['filename'])),'original_format':path[_0xed0f('0x59')](_0x461807['file']['originalname'])[_0xed0f('0x5c')](0x1),'converted_format':_0xed0f('0x5d')};var _0x550e07=path['join'](config[_0xed0f('0x54')],_0xed0f('0x5e'),_0x461807['file'][_0xed0f('0x5b')]);var _0x238037=path[_0xed0f('0x53')](config[_0xed0f('0x54')],_0xed0f('0x4f'),util[_0xed0f('0x56')](_0xed0f('0x55'),path[_0xed0f('0x5a')](_0x461807['file']['filename'],path[_0xed0f('0x59')](_0x461807[_0xed0f('0x57')]['filename'])),_0x248e07['converted_format']));logger[_0xed0f('0x5f')]('Sound\x20upload\x20filepath:\x20%s',_0x550e07);logger[_0xed0f('0x5f')](_0xed0f('0x60'),_0x238037);try{fs[_0xed0f('0x61')](_0x550e07,parseInt(_0xed0f('0x62'),0x8));var _0x22ca26=sox[_0xed0f('0x63')](_0x550e07,_0x238037,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x22ca26['on'](_0xed0f('0x28'),function(_0x5967f9){fs[_0xed0f('0x64')](_0x550e07);_0x3a0958[_0xed0f('0x18')](0x1f4)[_0xed0f('0x2b')](_0x5967f9);});_0x22ca26['on'](_0xed0f('0x65'),function(_0x213557){_0x248e07[_0xed0f('0x66')]=isNaN(_0x213557[_0xed0f('0x67')])?null:_0x213557[_0xed0f('0x67')]*0x3e8;_0x248e07[_0xed0f('0x68')]=isNaN(_0x213557[_0xed0f('0x69')])?null:_0x213557['sampleCount'];_0x248e07['original_channelCount']=isNaN(_0x213557[_0xed0f('0x6a')])?null:_0x213557[_0xed0f('0x6a')];_0x248e07[_0xed0f('0x6b')]=isNaN(_0x213557['bitRate'])?null:_0x213557[_0xed0f('0x6c')];_0x248e07[_0xed0f('0x6d')]=isNaN(_0x213557['sampleRate'])?null:_0x213557['sampleRate'];});_0x22ca26['on']('dest',function(_0x3990b6){_0x248e07[_0xed0f('0x6e')]=isNaN(_0x3990b6[_0xed0f('0x67')])?null:_0x3990b6['duration']*0x3e8;_0x248e07[_0xed0f('0x6f')]=isNaN(_0x3990b6[_0xed0f('0x69')])?null:_0x3990b6[_0xed0f('0x69')];_0x248e07[_0xed0f('0x70')]=isNaN(_0x3990b6[_0xed0f('0x6a')])?null:_0x3990b6[_0xed0f('0x6a')];_0x248e07[_0xed0f('0x71')]=isNaN(_0x3990b6[_0xed0f('0x6c')])?null:_0x3990b6[_0xed0f('0x6c')];_0x248e07[_0xed0f('0x72')]=isNaN(_0x3990b6[_0xed0f('0x73')])?null:_0x3990b6[_0xed0f('0x73')];});_0x22ca26['on'](_0xed0f('0x19'),function(){fs[_0xed0f('0x61')](_0x238037,parseInt(_0xed0f('0x62'),0x8));return db[_0xed0f('0x2d')][_0xed0f('0x74')](_0x248e07)['then'](function(_0x1191d9){var _0x26ce86={'role':_0x461807[_0xed0f('0x75')][_0xed0f('0x76')],'userProfileId':_0x461807[_0xed0f('0x75')]['userProfileId']};if(!_0x26ce86)throw new Error(_0xed0f('0x77'));if(_0x26ce86[_0xed0f('0x76')]===_0xed0f('0x78')){var _0x5a17c8=_0x1191d9[_0xed0f('0x26')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0xed0f('0x79'),'userProfileId':_0x26ce86[_0xed0f('0x7a')]},'raw':!![]})[_0xed0f('0x25')](function(_0x5beb05){if(_0x5beb05&&_0x5beb05[_0xed0f('0x7b')]===0x0){return db[_0xed0f('0x27')]['create']({'name':_0x5a17c8[_0xed0f('0x2a')],'resourceId':_0x5a17c8['id'],'type':_0x5beb05[_0xed0f('0x2a')],'sectionId':_0x5beb05['id']},{})[_0xed0f('0x25')](function(){return _0x1191d9;});}else{return _0x1191d9;}})[_0xed0f('0x4a')](function(_0x52fc4a){logger[_0xed0f('0x28')](_0xed0f('0x7c'),_0x52fc4a);throw _0x52fc4a;});}return _0x1191d9;})[_0xed0f('0x25')](respondWithResult(_0x3a0958,null))[_0xed0f('0x4a')](handleError(_0x3a0958,null));});_0x22ca26[_0xed0f('0x7d')]();}catch(_0x2cd868){_0x3a0958[_0xed0f('0x18')](0x1f4)[_0xed0f('0x2b')](_0x2cd868);}};exports[_0xed0f('0x23')]=function(_0x45e6a4,_0x3f734b,_0x83e4de){return db['Sound'][_0xed0f('0x7e')]({'where':{'id':_0x45e6a4[_0xed0f('0x49')]['id']}})['then'](handleEntityNotFound(_0x3f734b,null))[_0xed0f('0x25')](saveUpdates(_[_0xed0f('0x3d')](_0x45e6a4[_0xed0f('0x75')],[_0xed0f('0x2a'),_0xed0f('0x7f')]),null))[_0xed0f('0x25')](respondWithResult(_0x3f734b,null))[_0xed0f('0x4a')](handleError(_0x3f734b,null));};exports[_0xed0f('0x80')]=function(_0x2b79d8,_0x17629c,_0x2b95e4){return db[_0xed0f('0x2d')]['find']({'where':{'id':_0x2b79d8['params']['id']}})[_0xed0f('0x25')](function(_0x7862ab){if(_0x7862ab){return _0x7862ab[_0xed0f('0x24')]();}})['then'](function(_0x23fb33){var _0x3eaf92=path[_0xed0f('0x53')](config[_0xed0f('0x54')],_0xed0f('0x5e'),util[_0xed0f('0x56')](_0xed0f('0x55'),_0x23fb33[_0xed0f('0x4c')],_0x23fb33[_0xed0f('0x81')]));var _0x4d5430=path[_0xed0f('0x53')](config[_0xed0f('0x54')],_0xed0f('0x4f'),util[_0xed0f('0x56')](_0xed0f('0x55'),_0x23fb33[_0xed0f('0x4c')],_0x23fb33['converted_format']));fs[_0xed0f('0x64')](_0x3eaf92);fs[_0xed0f('0x64')](_0x4d5430);return _0x23fb33;})[_0xed0f('0x25')](function(_0x225fdc){if(_0x225fdc){return _0x17629c[_0xed0f('0x18')](0xcc)[_0xed0f('0x19')]();}})[_0xed0f('0x25')](handleEntityNotFound(_0x17629c,null))[_0xed0f('0x4a')](handleError(_0x17629c,null));};