0d48a5ae87a697958dd10a0578d51c10828c0b53
[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 _0x4cc4=['end','status','json','offset','limit','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','Sound','fieldName','type','key','model','map','keys','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','findAll','rows','catch','include','find','params','save_name','converted_format','existsSync','join','root','Sequelize','ValidationError','download','server/files/sounds/converted','format','%s.%s','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','Sound\x20upload\x20filepath:\x20%s','info','Sound\x20upload\x20destination:\x20%s','0777','transcode','unlinkSync','duration','original_sampleCount','sampleCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_sampleCount','converted_channelCount','channelCount','converted_bitRate','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Sounds','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','original_format','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus'];(function(_0x36740d,_0x35873b){var _0x3aaa43=function(_0x5703b2){while(--_0x5703b2){_0x36740d['push'](_0x36740d['shift']());}};_0x3aaa43(++_0x35873b);}(_0x4cc4,0x15c));var _0x44cc=function(_0x57cb56,_0x507a17){_0x57cb56=_0x57cb56-0x0;var _0x58764e=_0x4cc4[_0x57cb56];return _0x58764e;};'use strict';var pdf=require(_0x44cc('0x0'));var emlformat=require(_0x44cc('0x1'));var rimraf=require(_0x44cc('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x44cc('0x3'));var rp=require(_0x44cc('0x4'));var moment=require(_0x44cc('0x5'));var BPromise=require(_0x44cc('0x6'));var Mustache=require('mustache');var util=require(_0x44cc('0x7'));var path=require(_0x44cc('0x8'));var sox=require(_0x44cc('0x9'));var csv=require('to-csv');var ejs=require(_0x44cc('0xa'));var fs=require('fs');var _=require(_0x44cc('0xb'));var squel=require(_0x44cc('0xc'));var crypto=require(_0x44cc('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x44cc('0xe'));var querystring=require(_0x44cc('0xf'));var Papa=require(_0x44cc('0x10'));var Redis=require(_0x44cc('0x11'));var authService=require(_0x44cc('0x12'));var qs=require(_0x44cc('0x13'));var as=require(_0x44cc('0x14'));var hardwareService=require(_0x44cc('0x15'));var logger=require(_0x44cc('0x16'))('api');var utils=require(_0x44cc('0x17'));var config=require(_0x44cc('0x18'));var db=require(_0x44cc('0x19'))['db'];function respondWithStatusCode(_0x34b66b,_0x4f1fb9){_0x4f1fb9=_0x4f1fb9||0xcc;return function(_0x2862c1){if(_0x2862c1){return _0x34b66b[_0x44cc('0x1a')](_0x4f1fb9);}return _0x34b66b['status'](_0x4f1fb9)[_0x44cc('0x1b')]();};}function respondWithResult(_0x1e4837,_0x4b5ba1){_0x4b5ba1=_0x4b5ba1||0xc8;return function(_0x1afaca){if(_0x1afaca){return _0x1e4837[_0x44cc('0x1c')](_0x4b5ba1)[_0x44cc('0x1d')](_0x1afaca);}};}function respondWithFilteredResult(_0x3b974e,_0x40fd5b){return function(_0x412d01){if(_0x412d01){var _0x187527=_0x412d01['count'],_0xd5ccc8=_0x40fd5b['offset'],_0x4b4e8e=_0x40fd5b[_0x44cc('0x1e')]+_0x40fd5b[_0x44cc('0x1f')],_0x2df4ce;if(_0x4b4e8e>=_0x187527){_0x4b4e8e=_0x187527;_0x2df4ce=0xc8;}else{_0x2df4ce=0xce;}_0x3b974e[_0x44cc('0x1c')](_0x2df4ce);return _0x3b974e['set'](_0x44cc('0x20'),_0xd5ccc8+'-'+_0x4b4e8e+'/'+_0x187527)['json'](_0x412d01);}return null;};}function patchUpdates(_0x4f88b5){return function(_0x39c65d){try{jsonpatch[_0x44cc('0x21')](_0x39c65d,_0x4f88b5,!![]);}catch(_0x352dec){return BPromise[_0x44cc('0x22')](_0x352dec);}return _0x39c65d[_0x44cc('0x23')]();};}function saveUpdates(_0x2da828,_0x5063d5){return function(_0x26e3f8){if(_0x26e3f8){return _0x26e3f8[_0x44cc('0x24')](_0x2da828)[_0x44cc('0x25')](function(_0x17203c){return _0x17203c;});}return null;};}function removeEntity(_0x236e98,_0x4fa255){return function(_0x27947f){if(_0x27947f){return _0x27947f[_0x44cc('0x26')]()[_0x44cc('0x25')](function(){var _0x3c3186=_0x27947f[_0x44cc('0x27')]({'plain':!![]});var _0x1b3c54='Sounds';return db[_0x44cc('0x28')][_0x44cc('0x26')]({'where':{'type':_0x1b3c54,'resourceId':_0x3c3186['id']}})[_0x44cc('0x25')](function(){return _0x27947f;});})[_0x44cc('0x25')](function(){_0x236e98['status'](0xcc)[_0x44cc('0x1b')]();});}};}function handleEntityNotFound(_0x5bd140,_0x1ccb9f){return function(_0x2d5467){if(!_0x2d5467){_0x5bd140[_0x44cc('0x1a')](0x194);}return _0x2d5467;};}function handleError(_0x103e1f,_0x540d84){_0x540d84=_0x540d84||0x1f4;return function(_0x4ab135){logger[_0x44cc('0x29')](_0x4ab135[_0x44cc('0x2a')]);if(_0x4ab135[_0x44cc('0x2b')]){delete _0x4ab135['name'];}_0x103e1f[_0x44cc('0x1c')](_0x540d84)[_0x44cc('0x2c')](_0x4ab135);};}exports[_0x44cc('0x2d')]=function(_0xa2841e,_0x4ccb3e){var _0x2d2466={},_0x4c5a78={},_0xe94e84={'count':0x0,'rows':[]};var _0x5e6945=_['map'](db[_0x44cc('0x2e')]['rawAttributes'],function(_0x2986cc){return{'name':_0x2986cc[_0x44cc('0x2f')],'type':_0x2986cc[_0x44cc('0x30')][_0x44cc('0x31')]};});_0x4c5a78[_0x44cc('0x32')]=_[_0x44cc('0x33')](_0x5e6945,'name');_0x4c5a78['query']=_[_0x44cc('0x34')](_0xa2841e[_0x44cc('0x35')]);_0x4c5a78['filters']=_['intersection'](_0x4c5a78[_0x44cc('0x32')],_0x4c5a78[_0x44cc('0x35')]);_0x2d2466[_0x44cc('0x36')]=_[_0x44cc('0x37')](_0x4c5a78[_0x44cc('0x32')],qs[_0x44cc('0x38')](_0xa2841e['query'][_0x44cc('0x38')]));_0x2d2466[_0x44cc('0x36')]=_0x2d2466['attributes'][_0x44cc('0x39')]?_0x2d2466[_0x44cc('0x36')]:_0x4c5a78[_0x44cc('0x32')];if(!_0xa2841e['query'][_0x44cc('0x3a')](_0x44cc('0x3b'))){_0x2d2466[_0x44cc('0x1f')]=qs[_0x44cc('0x1f')](_0xa2841e[_0x44cc('0x35')]['limit']);_0x2d2466[_0x44cc('0x1e')]=qs['offset'](_0xa2841e[_0x44cc('0x35')][_0x44cc('0x1e')]);}_0x2d2466[_0x44cc('0x3c')]=qs['sort'](_0xa2841e[_0x44cc('0x35')][_0x44cc('0x3d')]);_0x2d2466[_0x44cc('0x3e')]=qs[_0x44cc('0x3f')](_[_0x44cc('0x40')](_0xa2841e[_0x44cc('0x35')],_0x4c5a78['filters']));if(_0xa2841e[_0x44cc('0x35')][_0x44cc('0x41')]){_0x2d2466[_0x44cc('0x3e')]=_[_0x44cc('0x42')](_0x2d2466['where'],{'$or':_[_0x44cc('0x33')](_0x5e6945,function(_0x12c284){if(_0x12c284[_0x44cc('0x30')]!==_0x44cc('0x43')){var _0x24b398={};_0x24b398[_0x12c284[_0x44cc('0x2b')]]={'$like':'%'+_0xa2841e[_0x44cc('0x35')][_0x44cc('0x41')]+'%'};return _0x24b398;}})});}_0x2d2466=_['merge']({},_0x2d2466,_0xa2841e[_0x44cc('0x44')]);var _0x48c467={'where':_0x2d2466['where']};return db[_0x44cc('0x2e')][_0x44cc('0x45')](_0x48c467)[_0x44cc('0x25')](function(_0x110232){_0xe94e84[_0x44cc('0x45')]=_0x110232;if(_0xa2841e[_0x44cc('0x35')][_0x44cc('0x46')]){_0x2d2466['include']=[{'all':!![]}];}return db['Sound'][_0x44cc('0x47')](_0x2d2466);})[_0x44cc('0x25')](function(_0x48469e){_0xe94e84[_0x44cc('0x48')]=_0x48469e;return _0xe94e84;})[_0x44cc('0x25')](respondWithFilteredResult(_0x4ccb3e,_0x2d2466))[_0x44cc('0x49')](handleError(_0x4ccb3e,null));};exports['show']=function(_0x41bc90,_0x2cd79b){var _0x3fac4a={'raw':!![],'where':{'id':_0x41bc90['params']['id']}},_0xb652ce={};_0xb652ce['model']=_[_0x44cc('0x34')](db['Sound']['rawAttributes']);_0xb652ce[_0x44cc('0x35')]=_[_0x44cc('0x34')](_0x41bc90['query']);_0xb652ce['filters']=_[_0x44cc('0x37')](_0xb652ce['model'],_0xb652ce['query']);_0x3fac4a['attributes']=_['intersection'](_0xb652ce[_0x44cc('0x32')],qs['fields'](_0x41bc90[_0x44cc('0x35')][_0x44cc('0x38')]));_0x3fac4a[_0x44cc('0x36')]=_0x3fac4a[_0x44cc('0x36')][_0x44cc('0x39')]?_0x3fac4a[_0x44cc('0x36')]:_0xb652ce[_0x44cc('0x32')];if(_0x41bc90['query'][_0x44cc('0x46')]){_0x3fac4a[_0x44cc('0x4a')]=[{'all':!![]}];}_0x3fac4a=_[_0x44cc('0x42')]({},_0x3fac4a,_0x41bc90[_0x44cc('0x44')]);return db[_0x44cc('0x2e')]['find'](_0x3fac4a)['then'](handleEntityNotFound(_0x2cd79b,null))[_0x44cc('0x25')](respondWithResult(_0x2cd79b,null))['catch'](handleError(_0x2cd79b,null));};exports['download']=function(_0x51ee14,_0x35d207,_0x5cc1d0){return db[_0x44cc('0x2e')][_0x44cc('0x4b')]({'where':{'id':_0x51ee14[_0x44cc('0x4c')]['id']},'attributes':[_0x44cc('0x2b'),_0x44cc('0x4d'),_0x44cc('0x4e')],'raw':!![]})['then'](handleEntityNotFound(_0x35d207,null))['then'](function(_0x4bec6d){if(_0x4bec6d){if(!fs[_0x44cc('0x4f')](path[_0x44cc('0x50')](config[_0x44cc('0x51')],'server/files/sounds/converted',_0x4bec6d[_0x44cc('0x4d')]+'.'+_0x4bec6d['converted_format']))){throw new db[(_0x44cc('0x52'))][(_0x44cc('0x53'))]('Sound\x20not\x20found');}return _0x35d207[_0x44cc('0x54')](path[_0x44cc('0x50')](config['root'],_0x44cc('0x55'),util[_0x44cc('0x56')](_0x44cc('0x57'),_0x4bec6d[_0x44cc('0x4d')],_0x4bec6d[_0x44cc('0x4e')])),util[_0x44cc('0x56')](_0x44cc('0x57'),_0x4bec6d['name'],_0x4bec6d['converted_format']));}return null;})[_0x44cc('0x49')](handleError(_0x35d207,null));};exports['create']=function(_0x2465f7,_0x18749b,_0x4f218e){var _0x2a89b7={'name':path[_0x44cc('0x58')](_0x2465f7[_0x44cc('0x59')][_0x44cc('0x5a')],path[_0x44cc('0x5b')](_0x2465f7[_0x44cc('0x59')][_0x44cc('0x5a')])),'save_name':path[_0x44cc('0x58')](_0x2465f7['file'][_0x44cc('0x5c')],path[_0x44cc('0x5b')](_0x2465f7['file']['filename'])),'original_format':path[_0x44cc('0x5b')](_0x2465f7[_0x44cc('0x59')]['originalname'])[_0x44cc('0x5d')](0x1),'converted_format':_0x44cc('0x5e')};var _0x39a6ab=path[_0x44cc('0x50')](config['root'],_0x44cc('0x5f'),_0x2465f7[_0x44cc('0x59')][_0x44cc('0x5c')]);var _0x5d8605=path[_0x44cc('0x50')](config[_0x44cc('0x51')],'server/files/sounds/converted',util['format'](_0x44cc('0x57'),path['basename'](_0x2465f7[_0x44cc('0x59')]['filename'],path[_0x44cc('0x5b')](_0x2465f7['file'][_0x44cc('0x5c')])),_0x2a89b7[_0x44cc('0x4e')]));logger['info'](_0x44cc('0x60'),_0x39a6ab);logger[_0x44cc('0x61')](_0x44cc('0x62'),_0x5d8605);try{fs['chmodSync'](_0x39a6ab,parseInt(_0x44cc('0x63'),0x8));var _0x4ff221=sox[_0x44cc('0x64')](_0x39a6ab,_0x5d8605,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4ff221['on'](_0x44cc('0x29'),function(_0x36937e){fs[_0x44cc('0x65')](_0x39a6ab);_0x18749b[_0x44cc('0x1c')](0x1f4)['send'](_0x36937e);});_0x4ff221['on']('src',function(_0x5c815f){_0x2a89b7['original_duration']=isNaN(_0x5c815f[_0x44cc('0x66')])?null:_0x5c815f[_0x44cc('0x66')]*0x3e8;_0x2a89b7[_0x44cc('0x67')]=isNaN(_0x5c815f[_0x44cc('0x68')])?null:_0x5c815f[_0x44cc('0x68')];_0x2a89b7['original_channelCount']=isNaN(_0x5c815f['channelCount'])?null:_0x5c815f['channelCount'];_0x2a89b7[_0x44cc('0x69')]=isNaN(_0x5c815f[_0x44cc('0x6a')])?null:_0x5c815f['bitRate'];_0x2a89b7[_0x44cc('0x6b')]=isNaN(_0x5c815f[_0x44cc('0x6c')])?null:_0x5c815f[_0x44cc('0x6c')];});_0x4ff221['on'](_0x44cc('0x6d'),function(_0x160239){_0x2a89b7['converted_duration']=isNaN(_0x160239[_0x44cc('0x66')])?null:_0x160239[_0x44cc('0x66')]*0x3e8;_0x2a89b7[_0x44cc('0x6e')]=isNaN(_0x160239[_0x44cc('0x68')])?null:_0x160239[_0x44cc('0x68')];_0x2a89b7[_0x44cc('0x6f')]=isNaN(_0x160239[_0x44cc('0x70')])?null:_0x160239[_0x44cc('0x70')];_0x2a89b7[_0x44cc('0x71')]=isNaN(_0x160239[_0x44cc('0x6a')])?null:_0x160239[_0x44cc('0x6a')];_0x2a89b7['converted_sampleRate']=isNaN(_0x160239[_0x44cc('0x6c')])?null:_0x160239[_0x44cc('0x6c')];});_0x4ff221['on'](_0x44cc('0x1b'),function(){fs['chmodSync'](_0x5d8605,parseInt('0777',0x8));return db[_0x44cc('0x2e')]['create'](_0x2a89b7)[_0x44cc('0x25')](function(_0x4dfcd9){var _0x133dad={'role':_0x2465f7['body'][_0x44cc('0x72')],'userProfileId':_0x2465f7[_0x44cc('0x73')][_0x44cc('0x74')]};if(!_0x133dad)throw new Error(_0x44cc('0x75'));if(_0x133dad[_0x44cc('0x72')]===_0x44cc('0x76')){var _0x579289=_0x4dfcd9[_0x44cc('0x27')]({'plain':!![]});return db['UserProfileSection'][_0x44cc('0x4b')]({'where':{'name':_0x44cc('0x77'),'userProfileId':_0x133dad[_0x44cc('0x74')]},'raw':!![]})[_0x44cc('0x25')](function(_0x2a686a){if(_0x2a686a&&_0x2a686a[_0x44cc('0x78')]===0x0){return db[_0x44cc('0x28')][_0x44cc('0x79')]({'name':_0x579289['name'],'resourceId':_0x579289['id'],'type':_0x2a686a['name'],'sectionId':_0x2a686a['id']},{})[_0x44cc('0x25')](function(){return _0x4dfcd9;});}else{return _0x4dfcd9;}})[_0x44cc('0x49')](function(_0x21ef54){logger[_0x44cc('0x29')](_0x44cc('0x7a'),_0x21ef54);throw _0x21ef54;});}return _0x4dfcd9;})[_0x44cc('0x25')](respondWithResult(_0x18749b,null))[_0x44cc('0x49')](handleError(_0x18749b,null));});_0x4ff221['start']();}catch(_0x404f3a){_0x18749b[_0x44cc('0x1c')](0x1f4)[_0x44cc('0x2c')](_0x404f3a);}};exports['update']=function(_0x34c950,_0x32751b,_0x33d1da){return db[_0x44cc('0x2e')][_0x44cc('0x4b')]({'where':{'id':_0x34c950[_0x44cc('0x4c')]['id']}})['then'](handleEntityNotFound(_0x32751b,null))[_0x44cc('0x25')](saveUpdates(_[_0x44cc('0x40')](_0x34c950[_0x44cc('0x73')],['name',_0x44cc('0x7b')]),null))[_0x44cc('0x25')](respondWithResult(_0x32751b,null))[_0x44cc('0x49')](handleError(_0x32751b,null));};exports['delete']=function(_0x2ee5f3,_0x2a5d4e,_0x21e062){return db[_0x44cc('0x2e')][_0x44cc('0x4b')]({'where':{'id':_0x2ee5f3[_0x44cc('0x4c')]['id']}})['then'](function(_0xc9ddc5){if(_0xc9ddc5){return _0xc9ddc5[_0x44cc('0x26')]();}})[_0x44cc('0x25')](function(_0x570d58){var _0x20fd6a=path[_0x44cc('0x50')](config[_0x44cc('0x51')],_0x44cc('0x5f'),util[_0x44cc('0x56')](_0x44cc('0x57'),_0x570d58[_0x44cc('0x4d')],_0x570d58[_0x44cc('0x7c')]));var _0x30b1cc=path[_0x44cc('0x50')](config[_0x44cc('0x51')],'server/files/sounds/converted',util['format'](_0x44cc('0x57'),_0x570d58[_0x44cc('0x4d')],_0x570d58[_0x44cc('0x4e')]));fs[_0x44cc('0x65')](_0x20fd6a);fs['unlinkSync'](_0x30b1cc);return _0x570d58;})[_0x44cc('0x25')](function(_0x3354a0){if(_0x3354a0){return _0x2a5d4e[_0x44cc('0x1c')](0xcc)[_0x44cc('0x1b')]();}})[_0x44cc('0x25')](handleEntityNotFound(_0x2a5d4e,null))['catch'](handleError(_0x2a5d4e,null));};