b3488d3a1626d602bacb8329043c4b17d1af90de
[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 _0x8b62=['server/files/moh','mode','files','mkdirSync','directory','0777','get','role','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','sequelize','addSound','findOne','save_name','server/files/sounds/converted','format','%s.%s','basename','extname','converted_format','symlinkSync','message','removeSound','Sound','id2','getSounds','fields','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','destroy','then','MusicOnHolds','name','index','map','VoiceMusicOnHold','rawAttributes','type','key','model','keys','query','attributes','intersection','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','params','body','find','catch','create','transaction','join','root'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x8b62,0x103));var _0x28b6=function(_0x2ca2d0,_0x3ea8e4){_0x2ca2d0=_0x2ca2d0-0x0;var _0x521c23=_0x8b62[_0x2ca2d0];return _0x521c23;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x28b6('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x28b6('0x1'));var rp=require(_0x28b6('0x2'));var moment=require(_0x28b6('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x28b6('0x4'));var util=require(_0x28b6('0x5'));var path=require(_0x28b6('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x28b6('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x28b6('0x8'));var squel=require(_0x28b6('0x9'));var crypto=require(_0x28b6('0xa'));var jsforce=require(_0x28b6('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x28b6('0xc'));var Papa=require(_0x28b6('0xd'));var Redis=require(_0x28b6('0xe'));var authService=require(_0x28b6('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x28b6('0x10'));var hardwareService=require(_0x28b6('0x11'));var logger=require(_0x28b6('0x12'))(_0x28b6('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x28b6('0x14'));var db=require(_0x28b6('0x15'))['db'];function respondWithStatusCode(_0x33e9c9,_0x3f3bcb){_0x3f3bcb=_0x3f3bcb||0xcc;return function(_0x47c90a){if(_0x47c90a){return _0x33e9c9[_0x28b6('0x16')](_0x3f3bcb);}return _0x33e9c9[_0x28b6('0x17')](_0x3f3bcb)[_0x28b6('0x18')]();};}function respondWithResult(_0x52a5a2,_0x2b2138){_0x2b2138=_0x2b2138||0xc8;return function(_0x105c14){if(_0x105c14){return _0x52a5a2[_0x28b6('0x17')](_0x2b2138)[_0x28b6('0x19')](_0x105c14);}};}function respondWithFilteredResult(_0x256fc9,_0x5501da){return function(_0x1191de){if(_0x1191de){var _0xb4c930=typeof _0x5501da[_0x28b6('0x1a')]==='undefined'&&typeof _0x5501da['limit']===_0x28b6('0x1b');var _0x1f2bd5=_0x1191de[_0x28b6('0x1c')];var _0x4eb08a=_0xb4c930?0x0:_0x5501da[_0x28b6('0x1a')];var _0x1820a2=_0xb4c930?_0x1191de[_0x28b6('0x1c')]:_0x5501da['offset']+_0x5501da[_0x28b6('0x1d')];var _0xf568df;if(_0x1820a2>=_0x1f2bd5){_0x1820a2=_0x1f2bd5;_0xf568df=0xc8;}else{_0xf568df=0xce;}_0x256fc9[_0x28b6('0x17')](_0xf568df);return _0x256fc9[_0x28b6('0x1e')]('Content-Range',_0x4eb08a+'-'+_0x1820a2+'/'+_0x1f2bd5)[_0x28b6('0x19')](_0x1191de);}return null;};}function patchUpdates(_0x4b993f){return function(_0x2d2533){try{jsonpatch[_0x28b6('0x1f')](_0x2d2533,_0x4b993f,!![]);}catch(_0x11de3f){return BPromise[_0x28b6('0x20')](_0x11de3f);}return _0x2d2533[_0x28b6('0x21')]();};}function saveUpdates(_0x12626f,_0x32969a){return function(_0x58ef83){if(_0x58ef83){return _0x58ef83[_0x28b6('0x22')](_0x12626f)['then'](function(_0x24f4fb){return _0x24f4fb;});}return null;};}function removeEntity(_0x3ec315,_0x91ec40){return function(_0x157c02){if(_0x157c02){return _0x157c02[_0x28b6('0x23')]()[_0x28b6('0x24')](function(){var _0x1a69a4=_0x157c02['get']({'plain':!![]});var _0x43c21c=_0x28b6('0x25');return db['UserProfileResource'][_0x28b6('0x23')]({'where':{'type':_0x43c21c,'resourceId':_0x1a69a4['id']}})[_0x28b6('0x24')](function(){return _0x157c02;});})[_0x28b6('0x24')](function(){_0x3ec315[_0x28b6('0x17')](0xcc)[_0x28b6('0x18')]();});}};}function handleEntityNotFound(_0x26da69,_0xe224f0){return function(_0x26696f){if(!_0x26696f){_0x26da69['sendStatus'](0x194);}return _0x26696f;};}function handleError(_0x35bbc9,_0x58ab55){_0x58ab55=_0x58ab55||0x1f4;return function(_0x33cdb8){logger['error'](_0x33cdb8['stack']);if(_0x33cdb8['name']){delete _0x33cdb8[_0x28b6('0x26')];}_0x35bbc9[_0x28b6('0x17')](_0x58ab55)['send'](_0x33cdb8);};}exports[_0x28b6('0x27')]=function(_0x321249,_0x43c591){var _0x44e7a1={},_0x3d290c={},_0x588fe1={'count':0x0,'rows':[]};var _0x149b04=_[_0x28b6('0x28')](db[_0x28b6('0x29')][_0x28b6('0x2a')],function(_0x34e86e){return{'name':_0x34e86e['fieldName'],'type':_0x34e86e[_0x28b6('0x2b')][_0x28b6('0x2c')]};});_0x3d290c[_0x28b6('0x2d')]=_[_0x28b6('0x28')](_0x149b04,_0x28b6('0x26'));_0x3d290c['query']=_[_0x28b6('0x2e')](_0x321249[_0x28b6('0x2f')]);_0x3d290c['filters']=_['intersection'](_0x3d290c['model'],_0x3d290c['query']);_0x44e7a1[_0x28b6('0x30')]=_[_0x28b6('0x31')](_0x3d290c['model'],qs['fields'](_0x321249['query']['fields']));_0x44e7a1[_0x28b6('0x30')]=_0x44e7a1[_0x28b6('0x30')][_0x28b6('0x32')]?_0x44e7a1[_0x28b6('0x30')]:_0x3d290c[_0x28b6('0x2d')];if(!_0x321249['query'][_0x28b6('0x33')](_0x28b6('0x34'))){_0x44e7a1[_0x28b6('0x1d')]=qs[_0x28b6('0x1d')](_0x321249['query'][_0x28b6('0x1d')]);_0x44e7a1[_0x28b6('0x1a')]=qs[_0x28b6('0x1a')](_0x321249['query'][_0x28b6('0x1a')]);}_0x44e7a1[_0x28b6('0x35')]=qs[_0x28b6('0x36')](_0x321249[_0x28b6('0x2f')][_0x28b6('0x36')]);delete _0x321249['query'][_0x28b6('0x36')];_0x44e7a1[_0x28b6('0x37')]=qs[_0x28b6('0x38')](_[_0x28b6('0x39')](_0x321249['query'],_0x3d290c[_0x28b6('0x38')]),_0x149b04);if(_0x321249[_0x28b6('0x2f')]['filter']){_0x44e7a1['where']=_[_0x28b6('0x3a')](_0x44e7a1[_0x28b6('0x37')],{'$or':_[_0x28b6('0x28')](_0x149b04,function(_0xd7be31){if(_0xd7be31['type']!==_0x28b6('0x3b')){var _0x24c75a={};_0x24c75a[_0xd7be31[_0x28b6('0x26')]]={'$like':'%'+_0x321249[_0x28b6('0x2f')][_0x28b6('0x3c')]+'%'};return _0x24c75a;}})});}_0x44e7a1=_[_0x28b6('0x3a')]({},_0x44e7a1,_0x321249[_0x28b6('0x3d')]);var _0x4d1ed8={'where':_0x44e7a1['where']};return db[_0x28b6('0x29')][_0x28b6('0x1c')](_0x4d1ed8)['then'](function(_0x4b4700){_0x588fe1['count']=_0x4b4700;if(_0x321249[_0x28b6('0x2f')][_0x28b6('0x3e')]){_0x44e7a1[_0x28b6('0x3f')]=[{'all':!![]}];}return db[_0x28b6('0x29')][_0x28b6('0x40')](_0x44e7a1);})['then'](function(_0x36f00d){_0x588fe1[_0x28b6('0x41')]=_0x36f00d;return _0x588fe1;})[_0x28b6('0x24')](respondWithFilteredResult(_0x43c591,_0x44e7a1))['catch'](handleError(_0x43c591,null));};exports['show']=function(_0x1cccb8,_0x1033e5){var _0x5adce9={'raw':![],'where':{'id':_0x1cccb8[_0x28b6('0x42')]['id']}},_0x206094={};_0x206094[_0x28b6('0x2d')]=_[_0x28b6('0x2e')](db[_0x28b6('0x29')][_0x28b6('0x2a')]);_0x206094[_0x28b6('0x2f')]=_[_0x28b6('0x2e')](_0x1cccb8[_0x28b6('0x2f')]);_0x206094[_0x28b6('0x38')]=_['intersection'](_0x206094['model'],_0x206094[_0x28b6('0x2f')]);_0x5adce9[_0x28b6('0x30')]=_[_0x28b6('0x31')](_0x206094[_0x28b6('0x2d')],qs['fields'](_0x1cccb8[_0x28b6('0x2f')]['fields']));_0x5adce9['attributes']=_0x5adce9[_0x28b6('0x30')][_0x28b6('0x32')]?_0x5adce9[_0x28b6('0x30')]:_0x206094['model'];if(_0x1cccb8[_0x28b6('0x2f')]['includeAll']){_0x5adce9['include']=[{'all':!![]}];}_0x5adce9=_[_0x28b6('0x3a')]({},_0x5adce9,_0x1cccb8[_0x28b6('0x3d')]);return db[_0x28b6('0x29')]['find'](_0x5adce9)[_0x28b6('0x24')](handleEntityNotFound(_0x1033e5,null))['then'](respondWithResult(_0x1033e5,null))['catch'](handleError(_0x1033e5,null));};exports['update']=function(_0x19fc85,_0x1b0612){if(_0x19fc85[_0x28b6('0x43')]['id']){delete _0x19fc85[_0x28b6('0x43')]['id'];}return db[_0x28b6('0x29')][_0x28b6('0x44')]({'where':{'id':_0x19fc85['params']['id']}})[_0x28b6('0x24')](handleEntityNotFound(_0x1b0612,null))[_0x28b6('0x24')](saveUpdates(_0x19fc85['body'],null))[_0x28b6('0x24')](respondWithResult(_0x1b0612,null))[_0x28b6('0x45')](handleError(_0x1b0612,null));};exports[_0x28b6('0x46')]=function(_0x437ed0,_0x4b3e1c,_0x5c21d3){return db['sequelize'][_0x28b6('0x47')](function(_0x3b3985){if(_0x437ed0[_0x28b6('0x43')]['mode']==='files'){_0x437ed0[_0x28b6('0x43')]['directory']=path[_0x28b6('0x48')](config[_0x28b6('0x49')],_0x28b6('0x4a'),_0x437ed0[_0x28b6('0x43')][_0x28b6('0x26')]);}return db[_0x28b6('0x29')][_0x28b6('0x46')](_0x437ed0[_0x28b6('0x43')],{'transaction':_0x3b3985})[_0x28b6('0x24')](function(_0x1446c6){if(_0x437ed0[_0x28b6('0x43')][_0x28b6('0x4b')]===_0x28b6('0x4c')){fs[_0x28b6('0x4d')](_0x1446c6[_0x28b6('0x4e')],parseInt(_0x28b6('0x4f'),0x8));}var _0x360026=_0x437ed0['user'][_0x28b6('0x50')]({'plain':!![]});if(!_0x360026)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x360026[_0x28b6('0x51')]===_0x28b6('0x52')){var _0x4327c6=_0x1446c6[_0x28b6('0x50')]({'plain':!![]});return db[_0x28b6('0x53')]['find']({'where':{'name':_0x28b6('0x25'),'userProfileId':_0x360026[_0x28b6('0x54')]},'raw':!![]})[_0x28b6('0x24')](function(_0x2e4751){if(_0x2e4751&&_0x2e4751[_0x28b6('0x55')]===0x0){return db[_0x28b6('0x56')]['create']({'name':_0x4327c6[_0x28b6('0x26')],'resourceId':_0x4327c6['id'],'type':_0x2e4751[_0x28b6('0x26')],'sectionId':_0x2e4751['id']},{})[_0x28b6('0x24')](function(){return _0x1446c6;});}else{return _0x1446c6;}})[_0x28b6('0x45')](function(_0xb1b81a){logger[_0x28b6('0x57')](_0x28b6('0x58'),_0xb1b81a);});}return _0x1446c6;});})['then'](respondWithResult(_0x4b3e1c,0xc9))['catch'](handleError(_0x4b3e1c,null));};exports[_0x28b6('0x23')]=function(_0x2a5007,_0x32dc86,_0x3fe303){var _0x18afbc;return db[_0x28b6('0x29')][_0x28b6('0x44')]({'where':{'id':_0x2a5007[_0x28b6('0x42')]['id']}})['then'](function(_0x14bde0){if(_0x14bde0){return db['sequelize'][_0x28b6('0x47')](function(_0x118148){return _0x14bde0[_0x28b6('0x23')]({'transaction':_0x118148,'raw':!![]})[_0x28b6('0x24')](function(_0x3d8468){if(_0x3d8468[_0x28b6('0x4e')]){fs['readdirSync'](_0x3d8468[_0x28b6('0x4e')])[_0x28b6('0x59')](function(_0x3198cc){fs[_0x28b6('0x5a')](path[_0x28b6('0x48')](_0x3d8468['directory'],_0x3198cc));});fs[_0x28b6('0x5b')](_0x3d8468[_0x28b6('0x4e')]);}return _0x3d8468;});})[_0x28b6('0x45')](function(_0x13181b){throw new db[(_0x28b6('0x5c'))][(_0x28b6('0x5d'))](_0x13181b['message']);});}})['then'](handleEntityNotFound(_0x32dc86,null))[_0x28b6('0x24')](removeEntity(_0x32dc86,null))[_0x28b6('0x45')](handleError(_0x32dc86,null));};exports['addSound']=function(_0x4739fe,_0xc12146,_0x151c06){return db[_0x28b6('0x5e')][_0x28b6('0x47')](function(_0x4b80fb){var _0x4eb8a0;return db[_0x28b6('0x29')][_0x28b6('0x44')]({'where':{'id':_0x4739fe[_0x28b6('0x42')]['id']}})['then'](function(_0x5b43c1){if(_0x5b43c1){_0x4eb8a0=_0x5b43c1;return _0x5b43c1[_0x28b6('0x5f')](_0x4739fe[_0x28b6('0x43')]['id'],{'transaction':_0x4b80fb});}})[_0x28b6('0x24')](function(_0x59b21b){if(_0x59b21b){return db['Sound'][_0x28b6('0x60')]({'where':{'id':_0x4739fe['body']['id']},'attributes':['id','name',_0x28b6('0x61'),'converted_format','createdAt'],'raw':!![]});}})['then'](function(_0x180f9a){if(_0x180f9a){var _0x5c7ab6=path['join'](config[_0x28b6('0x49')],_0x28b6('0x62'),util[_0x28b6('0x63')](_0x28b6('0x64'),path[_0x28b6('0x65')](_0x180f9a[_0x28b6('0x61')],path[_0x28b6('0x66')](_0x180f9a[_0x28b6('0x61')])),_0x180f9a[_0x28b6('0x67')]));var _0x3fe0f7=path[_0x28b6('0x48')](config[_0x28b6('0x49')],_0x28b6('0x4a'),_0x4eb8a0[_0x28b6('0x26')],util[_0x28b6('0x63')](_0x28b6('0x64'),_0x180f9a[_0x28b6('0x26')],_0x180f9a[_0x28b6('0x67')]));fs[_0x28b6('0x68')](_0x5c7ab6,_0x3fe0f7);return _0x180f9a;}})['catch'](function(_0x4fcd3e){throw new db[(_0x28b6('0x5c'))][(_0x28b6('0x5d'))](_0x4fcd3e[_0x28b6('0x69')]);});})[_0x28b6('0x24')](handleEntityNotFound(_0xc12146,null))['then'](respondWithResult(_0xc12146,0xc9))[_0x28b6('0x45')](handleError(_0xc12146,null));};exports[_0x28b6('0x6a')]=function(_0x5ab322,_0x554010,_0x2723eb){return db[_0x28b6('0x5e')][_0x28b6('0x47')](function(_0x25469a){var _0x3d71b5;return db[_0x28b6('0x29')]['findOne']({'where':{'id':_0x5ab322['params']['id']}})['then'](handleEntityNotFound(_0x554010,null))[_0x28b6('0x24')](function(_0x84d73b){if(_0x84d73b){_0x3d71b5=_0x84d73b;return _0x84d73b['removeSound'](_0x5ab322['params']['id2']);}})['then'](function(_0x63257a){if(_0x63257a){return db[_0x28b6('0x6b')]['findOne']({'where':{'id':_0x5ab322['params'][_0x28b6('0x6c')]},'attributes':['id',_0x28b6('0x26'),_0x28b6('0x61'),'converted_format','createdAt'],'raw':!![]});}})[_0x28b6('0x24')](function(_0x3b256d){if(_0x3b256d){fs[_0x28b6('0x5a')](path['join'](_0x3d71b5[_0x28b6('0x4e')],util[_0x28b6('0x63')]('%s.%s',_0x3b256d[_0x28b6('0x26')],_0x3b256d[_0x28b6('0x67')])));return _0x3b256d;}})[_0x28b6('0x45')](function(_0x3d91b3){throw new db[(_0x28b6('0x5c'))][(_0x28b6('0x5d'))](_0x3d91b3[_0x28b6('0x69')]);});})[_0x28b6('0x24')](handleEntityNotFound(_0x554010,null))[_0x28b6('0x24')](respondWithStatusCode(_0x554010,0xcc))[_0x28b6('0x45')](handleError(_0x554010,null));};exports[_0x28b6('0x6d')]=function(_0xfd15ca,_0x341c32,_0x1871eb){var _0x2df10a={};var _0x5abbd0={};var _0x146f79;var _0x5d64bb;return db[_0x28b6('0x29')][_0x28b6('0x60')]({'where':{'id':_0xfd15ca[_0x28b6('0x42')]['id']}})['then'](handleEntityNotFound(_0x341c32,null))[_0x28b6('0x24')](function(_0x53f024){if(_0x53f024){_0x146f79=_0x53f024;_0x5abbd0[_0x28b6('0x2d')]=_[_0x28b6('0x2e')](db['Sound']['rawAttributes']);_0x5abbd0['query']=_['keys'](_0xfd15ca['query']);_0x5abbd0[_0x28b6('0x38')]=_[_0x28b6('0x31')](_0x5abbd0['model'],_0x5abbd0[_0x28b6('0x2f')]);_0x2df10a[_0x28b6('0x30')]=_[_0x28b6('0x31')](_0x5abbd0[_0x28b6('0x2d')],qs[_0x28b6('0x6e')](_0xfd15ca[_0x28b6('0x2f')][_0x28b6('0x6e')]));_0x2df10a['attributes']=_0x2df10a[_0x28b6('0x30')][_0x28b6('0x32')]?_0x2df10a['attributes']:_0x5abbd0[_0x28b6('0x2d')];_0x2df10a[_0x28b6('0x35')]=qs[_0x28b6('0x36')](_0xfd15ca[_0x28b6('0x2f')]['sort']);_0x2df10a[_0x28b6('0x37')]=qs[_0x28b6('0x38')](_[_0x28b6('0x39')](_0xfd15ca[_0x28b6('0x2f')],_0x5abbd0[_0x28b6('0x38')]));if(_0xfd15ca['query'][_0x28b6('0x3c')]){_0x2df10a[_0x28b6('0x37')]=_[_0x28b6('0x3a')](_0x2df10a[_0x28b6('0x37')],{'$or':_[_0x28b6('0x28')](_0x2df10a[_0x28b6('0x30')],function(_0x47cfc7){var _0x19641f={};_0x19641f[_0x47cfc7]={'$like':'%'+_0xfd15ca[_0x28b6('0x2f')]['filter']+'%'};return _0x19641f;})});}_0x2df10a=_['merge']({},_0x2df10a,_0xfd15ca[_0x28b6('0x3d')]);return _0x146f79[_0x28b6('0x6d')](_0x2df10a);}})[_0x28b6('0x24')](function(_0x2269dd){if(_0x2269dd){_0x5d64bb=_0x2269dd['length'];if(!_0xfd15ca[_0x28b6('0x2f')][_0x28b6('0x33')]('nolimit')){_0x2df10a['limit']=qs[_0x28b6('0x1d')](_0xfd15ca[_0x28b6('0x2f')][_0x28b6('0x1d')]);_0x2df10a[_0x28b6('0x1a')]=qs[_0x28b6('0x1a')](_0xfd15ca['query']['offset']);}return _0x146f79[_0x28b6('0x6d')](_0x2df10a);}})[_0x28b6('0x24')](function(_0x66c3b2){if(_0x66c3b2){return _0x66c3b2?{'count':_0x5d64bb,'rows':_0x66c3b2}:null;}})[_0x28b6('0x24')](respondWithResult(_0x341c32,null))[_0x28b6('0x45')](handleError(_0x341c32,null));};