7d254e345126fd1c81da6d2296641e3c32a03d4e
[motion2.git] / server / api / voiceMusicOnHold / voiceMusicOnHold.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 _0x7be5=['squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','get','MusicOnHolds','destroy','name','send','index','rawAttributes','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','map','options','VoiceMusicOnHold','includeAll','findAll','catch','show','params','find','body','transaction','mode','files','directory','join','root','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','sequelize','readdirSync','unlinkSync','rmdirSync','Sequelize','addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','ValidationError','message','removeSound','id2','getSounds','eml-format','zip-dir','request-promise','moment','mustache','util','path','sox','ejs','fs-extra'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x7be5,0xdc));var _0x57be=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x7be5[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x57be('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x57be('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x57be('0x2'));var moment=require(_0x57be('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x57be('0x4'));var util=require(_0x57be('0x5'));var path=require(_0x57be('0x6'));var sox=require(_0x57be('0x7'));var csv=require('to-csv');var ejs=require(_0x57be('0x8'));var fs=require('fs');var fs_extra=require(_0x57be('0x9'));var _=require('lodash');var squel=require(_0x57be('0xa'));var crypto=require(_0x57be('0xb'));var jsforce=require(_0x57be('0xc'));var deskjs=require(_0x57be('0xd'));var toCsv=require(_0x57be('0xe'));var querystring=require('querystring');var Papa=require(_0x57be('0xf'));var Redis=require(_0x57be('0x10'));var authService=require(_0x57be('0x11'));var qs=require(_0x57be('0x12'));var as=require(_0x57be('0x13'));var hardwareService=require(_0x57be('0x14'));var logger=require(_0x57be('0x15'))(_0x57be('0x16'));var utils=require(_0x57be('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x57be('0x18'))['db'];function respondWithStatusCode(_0x5b78f9,_0x3dd745){_0x3dd745=_0x3dd745||0xcc;return function(_0x13bd6a){if(_0x13bd6a){return _0x5b78f9[_0x57be('0x19')](_0x3dd745);}return _0x5b78f9['status'](_0x3dd745)[_0x57be('0x1a')]();};}function respondWithResult(_0x529462,_0x184ee1){_0x184ee1=_0x184ee1||0xc8;return function(_0x55dd55){if(_0x55dd55){return _0x529462[_0x57be('0x1b')](_0x184ee1)['json'](_0x55dd55);}};}function respondWithFilteredResult(_0x6ed3d0,_0x3804c5){return function(_0x8209bf){if(_0x8209bf){var _0x8fe25c=typeof _0x3804c5[_0x57be('0x1c')]===_0x57be('0x1d')&&typeof _0x3804c5[_0x57be('0x1e')]===_0x57be('0x1d');var _0x4a10d6=_0x8209bf[_0x57be('0x1f')];var _0x4d41be=_0x8fe25c?0x0:_0x3804c5['offset'];var _0xc921da=_0x8fe25c?_0x8209bf[_0x57be('0x1f')]:_0x3804c5[_0x57be('0x1c')]+_0x3804c5['limit'];var _0x2f7727;if(_0xc921da>=_0x4a10d6){_0xc921da=_0x4a10d6;_0x2f7727=0xc8;}else{_0x2f7727=0xce;}_0x6ed3d0[_0x57be('0x1b')](_0x2f7727);return _0x6ed3d0[_0x57be('0x20')](_0x57be('0x21'),_0x4d41be+'-'+_0xc921da+'/'+_0x4a10d6)[_0x57be('0x22')](_0x8209bf);}return null;};}function patchUpdates(_0x2f9021){return function(_0x2b7fed){try{jsonpatch[_0x57be('0x23')](_0x2b7fed,_0x2f9021,!![]);}catch(_0x56f69c){return BPromise[_0x57be('0x24')](_0x56f69c);}return _0x2b7fed[_0x57be('0x25')]();};}function saveUpdates(_0x3a292b,_0x4da27b){return function(_0xbf89b4){if(_0xbf89b4){return _0xbf89b4[_0x57be('0x26')](_0x3a292b)[_0x57be('0x27')](function(_0x4202b8){return _0x4202b8;});}return null;};}function removeEntity(_0xd49900,_0x464736){return function(_0x5f1ee1){if(_0x5f1ee1){return _0x5f1ee1['destroy']()[_0x57be('0x27')](function(){var _0x9db500=_0x5f1ee1[_0x57be('0x28')]({'plain':!![]});var _0x26cb11=_0x57be('0x29');return db['UserProfileResource'][_0x57be('0x2a')]({'where':{'type':_0x26cb11,'resourceId':_0x9db500['id']}})[_0x57be('0x27')](function(){return _0x5f1ee1;});})['then'](function(){_0xd49900[_0x57be('0x1b')](0xcc)[_0x57be('0x1a')]();});}};}function handleEntityNotFound(_0x23ee5f,_0x1acbe3){return function(_0x35950b){if(!_0x35950b){_0x23ee5f[_0x57be('0x19')](0x194);}return _0x35950b;};}function handleError(_0x23f8e2,_0x393e26){_0x393e26=_0x393e26||0x1f4;return function(_0x3502f8){logger['error'](_0x3502f8['stack']);if(_0x3502f8[_0x57be('0x2b')]){delete _0x3502f8[_0x57be('0x2b')];}_0x23f8e2[_0x57be('0x1b')](_0x393e26)[_0x57be('0x2c')](_0x3502f8);};}exports[_0x57be('0x2d')]=function(_0x860da3,_0x1ac425){var _0x3400c9={},_0x4e9799={},_0x589409={'count':0x0,'rows':[]};var _0x473589=_['map'](db['VoiceMusicOnHold'][_0x57be('0x2e')],function(_0xfff7f0){return{'name':_0xfff7f0['fieldName'],'type':_0xfff7f0[_0x57be('0x2f')][_0x57be('0x30')]};});_0x4e9799[_0x57be('0x31')]=_['map'](_0x473589,_0x57be('0x2b'));_0x4e9799[_0x57be('0x32')]=_[_0x57be('0x33')](_0x860da3[_0x57be('0x32')]);_0x4e9799['filters']=_[_0x57be('0x34')](_0x4e9799[_0x57be('0x31')],_0x4e9799[_0x57be('0x32')]);_0x3400c9['attributes']=_[_0x57be('0x34')](_0x4e9799[_0x57be('0x31')],qs[_0x57be('0x35')](_0x860da3[_0x57be('0x32')][_0x57be('0x35')]));_0x3400c9[_0x57be('0x36')]=_0x3400c9['attributes'][_0x57be('0x37')]?_0x3400c9[_0x57be('0x36')]:_0x4e9799[_0x57be('0x31')];if(!_0x860da3[_0x57be('0x32')][_0x57be('0x38')](_0x57be('0x39'))){_0x3400c9[_0x57be('0x1e')]=qs[_0x57be('0x1e')](_0x860da3[_0x57be('0x32')]['limit']);_0x3400c9['offset']=qs[_0x57be('0x1c')](_0x860da3[_0x57be('0x32')][_0x57be('0x1c')]);}_0x3400c9[_0x57be('0x3a')]=qs[_0x57be('0x3b')](_0x860da3[_0x57be('0x32')][_0x57be('0x3b')]);delete _0x860da3[_0x57be('0x32')][_0x57be('0x3b')];_0x3400c9[_0x57be('0x3c')]=qs[_0x57be('0x3d')](_[_0x57be('0x3e')](_0x860da3['query'],_0x4e9799[_0x57be('0x3d')]),_0x473589);if(_0x860da3[_0x57be('0x32')][_0x57be('0x3f')]){_0x3400c9['where']=_[_0x57be('0x40')](_0x3400c9[_0x57be('0x3c')],{'$or':_[_0x57be('0x41')](_0x473589,function(_0x37c5e9){if(_0x37c5e9[_0x57be('0x2f')]!=='VIRTUAL'){var _0x5bb76c={};_0x5bb76c[_0x37c5e9[_0x57be('0x2b')]]={'$like':'%'+_0x860da3[_0x57be('0x32')][_0x57be('0x3f')]+'%'};return _0x5bb76c;}})});}_0x3400c9=_[_0x57be('0x40')]({},_0x3400c9,_0x860da3[_0x57be('0x42')]);var _0x4b18a2={'where':_0x3400c9[_0x57be('0x3c')]};return db[_0x57be('0x43')][_0x57be('0x1f')](_0x4b18a2)[_0x57be('0x27')](function(_0x23c566){_0x589409[_0x57be('0x1f')]=_0x23c566;if(_0x860da3[_0x57be('0x32')][_0x57be('0x44')]){_0x3400c9['include']=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x57be('0x45')](_0x3400c9);})['then'](function(_0x231a50){_0x589409['rows']=_0x231a50;return _0x589409;})[_0x57be('0x27')](respondWithFilteredResult(_0x1ac425,_0x3400c9))[_0x57be('0x46')](handleError(_0x1ac425,null));};exports[_0x57be('0x47')]=function(_0x5a0ca1,_0x4ee836){var _0x20daf9={'raw':![],'where':{'id':_0x5a0ca1[_0x57be('0x48')]['id']}},_0x20ea19={};_0x20ea19[_0x57be('0x31')]=_[_0x57be('0x33')](db['VoiceMusicOnHold'][_0x57be('0x2e')]);_0x20ea19[_0x57be('0x32')]=_[_0x57be('0x33')](_0x5a0ca1[_0x57be('0x32')]);_0x20ea19[_0x57be('0x3d')]=_['intersection'](_0x20ea19[_0x57be('0x31')],_0x20ea19[_0x57be('0x32')]);_0x20daf9[_0x57be('0x36')]=_[_0x57be('0x34')](_0x20ea19['model'],qs[_0x57be('0x35')](_0x5a0ca1[_0x57be('0x32')][_0x57be('0x35')]));_0x20daf9[_0x57be('0x36')]=_0x20daf9[_0x57be('0x36')]['length']?_0x20daf9[_0x57be('0x36')]:_0x20ea19[_0x57be('0x31')];if(_0x5a0ca1[_0x57be('0x32')][_0x57be('0x44')]){_0x20daf9['include']=[{'all':!![]}];}_0x20daf9=_[_0x57be('0x40')]({},_0x20daf9,_0x5a0ca1[_0x57be('0x42')]);return db[_0x57be('0x43')][_0x57be('0x49')](_0x20daf9)['then'](handleEntityNotFound(_0x4ee836,null))[_0x57be('0x27')](respondWithResult(_0x4ee836,null))[_0x57be('0x46')](handleError(_0x4ee836,null));};exports[_0x57be('0x26')]=function(_0xaa9ef5,_0x2fe95e){if(_0xaa9ef5[_0x57be('0x4a')]['id']){delete _0xaa9ef5[_0x57be('0x4a')]['id'];}return db[_0x57be('0x43')][_0x57be('0x49')]({'where':{'id':_0xaa9ef5[_0x57be('0x48')]['id']}})[_0x57be('0x27')](handleEntityNotFound(_0x2fe95e,null))[_0x57be('0x27')](saveUpdates(_0xaa9ef5['body'],null))[_0x57be('0x27')](respondWithResult(_0x2fe95e,null))[_0x57be('0x46')](handleError(_0x2fe95e,null));};exports['create']=function(_0xab7f28,_0x497ecb,_0x5aaffd){return db['sequelize'][_0x57be('0x4b')](function(_0xde97e5){if(_0xab7f28[_0x57be('0x4a')][_0x57be('0x4c')]===_0x57be('0x4d')){_0xab7f28[_0x57be('0x4a')][_0x57be('0x4e')]=path[_0x57be('0x4f')](config[_0x57be('0x50')],_0x57be('0x51'),_0xab7f28['body'][_0x57be('0x2b')]);}return db['VoiceMusicOnHold']['create'](_0xab7f28[_0x57be('0x4a')],{'transaction':_0xde97e5})[_0x57be('0x27')](function(_0xa7fe6f){if(_0xab7f28[_0x57be('0x4a')][_0x57be('0x4c')]===_0x57be('0x4d')){fs[_0x57be('0x52')](_0xa7fe6f['directory'],parseInt(_0x57be('0x53'),0x8));}var _0x4a1b70=_0xab7f28[_0x57be('0x54')][_0x57be('0x28')]({'plain':!![]});if(!_0x4a1b70)throw new Error(_0x57be('0x55'));if(_0x4a1b70[_0x57be('0x56')]===_0x57be('0x54')){var _0x574a94=_0xa7fe6f[_0x57be('0x28')]({'plain':!![]});return db[_0x57be('0x57')][_0x57be('0x49')]({'where':{'name':_0x57be('0x29'),'userProfileId':_0x4a1b70[_0x57be('0x58')]},'raw':!![]})[_0x57be('0x27')](function(_0x4b4335){if(_0x4b4335&&_0x4b4335[_0x57be('0x59')]===0x0){return db[_0x57be('0x5a')]['create']({'name':_0x574a94['name'],'resourceId':_0x574a94['id'],'type':_0x4b4335[_0x57be('0x2b')],'sectionId':_0x4b4335['id']},{})[_0x57be('0x27')](function(){return _0xa7fe6f;});}else{return _0xa7fe6f;}})[_0x57be('0x46')](function(_0xa08bbf){logger[_0x57be('0x5b')](_0x57be('0x5c'),_0xa08bbf);});}return _0xa7fe6f;});})[_0x57be('0x27')](respondWithResult(_0x497ecb,0xc9))['catch'](handleError(_0x497ecb,null));};exports['destroy']=function(_0x18a587,_0xe8661f,_0x50cf38){var _0x5853ea;return db[_0x57be('0x43')][_0x57be('0x49')]({'where':{'id':_0x18a587[_0x57be('0x48')]['id']}})[_0x57be('0x27')](function(_0x3328a8){if(_0x3328a8){return db[_0x57be('0x5d')][_0x57be('0x4b')](function(_0x56713c){return _0x3328a8[_0x57be('0x2a')]({'transaction':_0x56713c,'raw':!![]})[_0x57be('0x27')](function(_0x20d896){if(_0x20d896[_0x57be('0x4e')]){fs[_0x57be('0x5e')](_0x20d896[_0x57be('0x4e')])['forEach'](function(_0x73cf12){fs[_0x57be('0x5f')](path[_0x57be('0x4f')](_0x20d896[_0x57be('0x4e')],_0x73cf12));});fs[_0x57be('0x60')](_0x20d896['directory']);}return _0x20d896;});})['catch'](function(_0x495797){throw new db[(_0x57be('0x61'))]['ValidationError'](_0x495797['message']);});}})[_0x57be('0x27')](handleEntityNotFound(_0xe8661f,null))[_0x57be('0x27')](removeEntity(_0xe8661f,null))[_0x57be('0x46')](handleError(_0xe8661f,null));};exports[_0x57be('0x62')]=function(_0x38a5ba,_0x2a0b51,_0x65ce8){return db[_0x57be('0x5d')][_0x57be('0x4b')](function(_0x2f0b90){var _0x34f11e;return db['VoiceMusicOnHold'][_0x57be('0x49')]({'where':{'id':_0x38a5ba[_0x57be('0x48')]['id']}})[_0x57be('0x27')](function(_0x4b717e){if(_0x4b717e){_0x34f11e=_0x4b717e;return _0x4b717e['addSound'](_0x38a5ba[_0x57be('0x4a')]['id'],{'transaction':_0x2f0b90});}})[_0x57be('0x27')](function(_0x4d1b1c){if(_0x4d1b1c){return db[_0x57be('0x63')][_0x57be('0x64')]({'where':{'id':_0x38a5ba['body']['id']},'attributes':['id','name',_0x57be('0x65'),_0x57be('0x66'),_0x57be('0x67')],'raw':!![]});}})['then'](function(_0x1d0a90){if(_0x1d0a90){var _0x2c88b8=path[_0x57be('0x4f')](config[_0x57be('0x50')],_0x57be('0x68'),util[_0x57be('0x69')](_0x57be('0x6a'),path[_0x57be('0x6b')](_0x1d0a90['save_name'],path[_0x57be('0x6c')](_0x1d0a90[_0x57be('0x65')])),_0x1d0a90[_0x57be('0x66')]));var _0x20ed3d=path[_0x57be('0x4f')](config[_0x57be('0x50')],_0x57be('0x51'),_0x34f11e[_0x57be('0x2b')],util[_0x57be('0x69')](_0x57be('0x6a'),_0x1d0a90[_0x57be('0x2b')],_0x1d0a90['converted_format']));fs[_0x57be('0x6d')](_0x2c88b8,_0x20ed3d);return _0x1d0a90;}})[_0x57be('0x46')](function(_0x4b5790){throw new db['Sequelize'][(_0x57be('0x6e'))](_0x4b5790[_0x57be('0x6f')]);});})['then'](handleEntityNotFound(_0x2a0b51,null))[_0x57be('0x27')](respondWithResult(_0x2a0b51,0xc9))[_0x57be('0x46')](handleError(_0x2a0b51,null));};exports['removeSound']=function(_0x31bdd4,_0x4303c3,_0x1c5c35){return db['sequelize'][_0x57be('0x4b')](function(_0x345dec){var _0x6ad552;return db['VoiceMusicOnHold'][_0x57be('0x64')]({'where':{'id':_0x31bdd4['params']['id']}})[_0x57be('0x27')](handleEntityNotFound(_0x4303c3,null))[_0x57be('0x27')](function(_0x4ee8f3){if(_0x4ee8f3){_0x6ad552=_0x4ee8f3;return _0x4ee8f3[_0x57be('0x70')](_0x31bdd4[_0x57be('0x48')][_0x57be('0x71')]);}})[_0x57be('0x27')](function(_0x5d0772){if(_0x5d0772){return db['Sound']['findOne']({'where':{'id':_0x31bdd4[_0x57be('0x48')][_0x57be('0x71')]},'attributes':['id',_0x57be('0x2b'),_0x57be('0x65'),_0x57be('0x66'),_0x57be('0x67')],'raw':!![]});}})[_0x57be('0x27')](function(_0x2e0044){if(_0x2e0044){fs[_0x57be('0x5f')](path[_0x57be('0x4f')](_0x6ad552[_0x57be('0x4e')],util[_0x57be('0x69')](_0x57be('0x6a'),_0x2e0044[_0x57be('0x2b')],_0x2e0044[_0x57be('0x66')])));return _0x2e0044;}})[_0x57be('0x46')](function(_0x4cb0e9){throw new db[(_0x57be('0x61'))][(_0x57be('0x6e'))](_0x4cb0e9['message']);});})[_0x57be('0x27')](handleEntityNotFound(_0x4303c3,null))[_0x57be('0x27')](respondWithStatusCode(_0x4303c3,0xcc))['catch'](handleError(_0x4303c3,null));};exports['getSounds']=function(_0x5382b7,_0x329238,_0x531ebc){var _0x412f81={};var _0x20cea0={};var _0x16aa6a;var _0x1672d8;return db[_0x57be('0x43')][_0x57be('0x64')]({'where':{'id':_0x5382b7['params']['id']}})[_0x57be('0x27')](handleEntityNotFound(_0x329238,null))['then'](function(_0x31bd57){if(_0x31bd57){_0x16aa6a=_0x31bd57;_0x20cea0[_0x57be('0x31')]=_[_0x57be('0x33')](db[_0x57be('0x63')][_0x57be('0x2e')]);_0x20cea0[_0x57be('0x32')]=_[_0x57be('0x33')](_0x5382b7['query']);_0x20cea0['filters']=_[_0x57be('0x34')](_0x20cea0[_0x57be('0x31')],_0x20cea0[_0x57be('0x32')]);_0x412f81[_0x57be('0x36')]=_['intersection'](_0x20cea0[_0x57be('0x31')],qs['fields'](_0x5382b7[_0x57be('0x32')][_0x57be('0x35')]));_0x412f81['attributes']=_0x412f81[_0x57be('0x36')][_0x57be('0x37')]?_0x412f81[_0x57be('0x36')]:_0x20cea0[_0x57be('0x31')];_0x412f81[_0x57be('0x3a')]=qs[_0x57be('0x3b')](_0x5382b7[_0x57be('0x32')][_0x57be('0x3b')]);_0x412f81[_0x57be('0x3c')]=qs[_0x57be('0x3d')](_[_0x57be('0x3e')](_0x5382b7['query'],_0x20cea0[_0x57be('0x3d')]));if(_0x5382b7[_0x57be('0x32')][_0x57be('0x3f')]){_0x412f81['where']=_[_0x57be('0x40')](_0x412f81[_0x57be('0x3c')],{'$or':_['map'](_0x412f81['attributes'],function(_0x3afa82){var _0x19e924={};_0x19e924[_0x3afa82]={'$like':'%'+_0x5382b7[_0x57be('0x32')]['filter']+'%'};return _0x19e924;})});}_0x412f81=_[_0x57be('0x40')]({},_0x412f81,_0x5382b7['options']);return _0x16aa6a[_0x57be('0x72')](_0x412f81);}})['then'](function(_0x292d50){if(_0x292d50){_0x1672d8=_0x292d50[_0x57be('0x37')];if(!_0x5382b7[_0x57be('0x32')][_0x57be('0x38')](_0x57be('0x39'))){_0x412f81[_0x57be('0x1e')]=qs[_0x57be('0x1e')](_0x5382b7[_0x57be('0x32')][_0x57be('0x1e')]);_0x412f81['offset']=qs[_0x57be('0x1c')](_0x5382b7[_0x57be('0x32')][_0x57be('0x1c')]);}return _0x16aa6a[_0x57be('0x72')](_0x412f81);}})[_0x57be('0x27')](function(_0x34466e){if(_0x34466e){return _0x34466e?{'count':_0x1672d8,'rows':_0x34466e}:null;}})[_0x57be('0x27')](respondWithResult(_0x329238,null))[_0x57be('0x46')](handleError(_0x329238,null));};