Built motion from commit d6d69adf.|2.6.33
[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 _0x322d=['sequelize','transaction','mode','files','directory','join','root','server/files/moh','create','mkdirSync','0777','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','unlinkSync','Sequelize','ValidationError','Sound','findOne','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','save_name','extname','message','removeSound','id2','getSounds','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','sendStatus','error','stack','name','send','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','findAll','rows','show','params','length','body','find','catch'];(function(_0x645624,_0x5e26cb){var _0x25cd27=function(_0x2d5699){while(--_0x2d5699){_0x645624['push'](_0x645624['shift']());}};_0x25cd27(++_0x5e26cb);}(_0x322d,0x1e3));var _0xd322=function(_0x61b4c7,_0xf6eafa){_0x61b4c7=_0x61b4c7-0x0;var _0x5f57a1=_0x322d[_0x61b4c7];return _0x5f57a1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd322('0x0'));var zipdir=require(_0xd322('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd322('0x2'));var moment=require(_0xd322('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xd322('0x4'));var util=require(_0xd322('0x5'));var path=require(_0xd322('0x6'));var sox=require(_0xd322('0x7'));var csv=require(_0xd322('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd322('0x9'));var _=require(_0xd322('0xa'));var squel=require(_0xd322('0xb'));var crypto=require(_0xd322('0xc'));var jsforce=require(_0xd322('0xd'));var deskjs=require(_0xd322('0xe'));var toCsv=require(_0xd322('0x8'));var querystring=require(_0xd322('0xf'));var Papa=require(_0xd322('0x10'));var Redis=require('ioredis');var authService=require(_0xd322('0x11'));var qs=require(_0xd322('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd322('0x13'));var logger=require('../../config/logger')(_0xd322('0x14'));var utils=require(_0xd322('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xd322('0x16'));var db=require(_0xd322('0x17'))['db'];function respondWithStatusCode(_0x32b51c,_0x536036){_0x536036=_0x536036||0xcc;return function(_0x3a402b){if(_0x3a402b){return _0x32b51c['sendStatus'](_0x536036);}return _0x32b51c[_0xd322('0x18')](_0x536036)[_0xd322('0x19')]();};}function respondWithResult(_0x30032a,_0x3908b4){_0x3908b4=_0x3908b4||0xc8;return function(_0x132a3c){if(_0x132a3c){return _0x30032a['status'](_0x3908b4)[_0xd322('0x1a')](_0x132a3c);}};}function respondWithFilteredResult(_0x8f7e85,_0x370e88){return function(_0x146edb){if(_0x146edb){var _0x38fff9=typeof _0x370e88[_0xd322('0x1b')]==='undefined'&&typeof _0x370e88[_0xd322('0x1c')]===_0xd322('0x1d');var _0x5b1e9c=_0x146edb[_0xd322('0x1e')];var _0x1099bc=_0x38fff9?0x0:_0x370e88[_0xd322('0x1b')];var _0x21ebb9=_0x38fff9?_0x146edb[_0xd322('0x1e')]:_0x370e88[_0xd322('0x1b')]+_0x370e88[_0xd322('0x1c')];var _0x5baabe;if(_0x21ebb9>=_0x5b1e9c){_0x21ebb9=_0x5b1e9c;_0x5baabe=0xc8;}else{_0x5baabe=0xce;}_0x8f7e85[_0xd322('0x18')](_0x5baabe);return _0x8f7e85[_0xd322('0x1f')]('Content-Range',_0x1099bc+'-'+_0x21ebb9+'/'+_0x5b1e9c)[_0xd322('0x1a')](_0x146edb);}return null;};}function patchUpdates(_0x4b39a5){return function(_0x2cb8f8){try{jsonpatch[_0xd322('0x20')](_0x2cb8f8,_0x4b39a5,!![]);}catch(_0x1802c1){return BPromise[_0xd322('0x21')](_0x1802c1);}return _0x2cb8f8[_0xd322('0x22')]();};}function saveUpdates(_0x57beaf,_0x3b21b0){return function(_0x1bc570){if(_0x1bc570){return _0x1bc570[_0xd322('0x23')](_0x57beaf)[_0xd322('0x24')](function(_0x53d173){return _0x53d173;});}return null;};}function removeEntity(_0x245a34,_0x4383ed){return function(_0x4c6927){if(_0x4c6927){return _0x4c6927[_0xd322('0x25')]()['then'](function(){var _0x173b4f=_0x4c6927[_0xd322('0x26')]({'plain':!![]});var _0x159c3a=_0xd322('0x27');return db[_0xd322('0x28')][_0xd322('0x25')]({'where':{'type':_0x159c3a,'resourceId':_0x173b4f['id']}})[_0xd322('0x24')](function(){return _0x4c6927;});})[_0xd322('0x24')](function(){_0x245a34[_0xd322('0x18')](0xcc)[_0xd322('0x19')]();});}};}function handleEntityNotFound(_0x5d73d0,_0x182266){return function(_0x3b5573){if(!_0x3b5573){_0x5d73d0[_0xd322('0x29')](0x194);}return _0x3b5573;};}function handleError(_0x102955,_0x202d01){_0x202d01=_0x202d01||0x1f4;return function(_0x1f9fd5){logger[_0xd322('0x2a')](_0x1f9fd5[_0xd322('0x2b')]);if(_0x1f9fd5['name']){delete _0x1f9fd5[_0xd322('0x2c')];}_0x102955[_0xd322('0x18')](_0x202d01)[_0xd322('0x2d')](_0x1f9fd5);};}exports['index']=function(_0x4d3d09,_0x336ae7){var _0x16ce9e={},_0x1c3bb5={},_0x345b8b={'count':0x0,'rows':[]};var _0x3e9470=_[_0xd322('0x2e')](db[_0xd322('0x2f')][_0xd322('0x30')],function(_0xeb34be){return{'name':_0xeb34be[_0xd322('0x31')],'type':_0xeb34be[_0xd322('0x32')][_0xd322('0x33')]};});_0x1c3bb5[_0xd322('0x34')]=_[_0xd322('0x2e')](_0x3e9470,_0xd322('0x2c'));_0x1c3bb5[_0xd322('0x35')]=_[_0xd322('0x36')](_0x4d3d09[_0xd322('0x35')]);_0x1c3bb5[_0xd322('0x37')]=_[_0xd322('0x38')](_0x1c3bb5['model'],_0x1c3bb5[_0xd322('0x35')]);_0x16ce9e[_0xd322('0x39')]=_['intersection'](_0x1c3bb5[_0xd322('0x34')],qs[_0xd322('0x3a')](_0x4d3d09[_0xd322('0x35')][_0xd322('0x3a')]));_0x16ce9e[_0xd322('0x39')]=_0x16ce9e[_0xd322('0x39')]['length']?_0x16ce9e[_0xd322('0x39')]:_0x1c3bb5[_0xd322('0x34')];if(!_0x4d3d09[_0xd322('0x35')][_0xd322('0x3b')](_0xd322('0x3c'))){_0x16ce9e[_0xd322('0x1c')]=qs[_0xd322('0x1c')](_0x4d3d09[_0xd322('0x35')][_0xd322('0x1c')]);_0x16ce9e['offset']=qs[_0xd322('0x1b')](_0x4d3d09[_0xd322('0x35')]['offset']);}_0x16ce9e[_0xd322('0x3d')]=qs[_0xd322('0x3e')](_0x4d3d09[_0xd322('0x35')][_0xd322('0x3e')]);delete _0x4d3d09[_0xd322('0x35')][_0xd322('0x3e')];_0x16ce9e[_0xd322('0x3f')]=qs['filters'](_[_0xd322('0x40')](_0x4d3d09[_0xd322('0x35')],_0x1c3bb5[_0xd322('0x37')]),_0x3e9470);if(_0x4d3d09[_0xd322('0x35')][_0xd322('0x41')]){_0x16ce9e[_0xd322('0x3f')]=_[_0xd322('0x42')](_0x16ce9e[_0xd322('0x3f')],{'$or':_['map'](_0x3e9470,function(_0x51c776){if(_0x51c776['type']!=='VIRTUAL'){var _0x49993b={};_0x49993b[_0x51c776['name']]={'$like':'%'+_0x4d3d09[_0xd322('0x35')][_0xd322('0x41')]+'%'};return _0x49993b;}})});}_0x16ce9e=_['merge']({},_0x16ce9e,_0x4d3d09[_0xd322('0x43')]);var _0x8d5c54={'where':_0x16ce9e[_0xd322('0x3f')]};return db[_0xd322('0x2f')][_0xd322('0x1e')](_0x8d5c54)[_0xd322('0x24')](function(_0x2d55d4){_0x345b8b['count']=_0x2d55d4;if(_0x4d3d09['query'][_0xd322('0x44')]){_0x16ce9e['include']=[{'all':!![]}];}return db[_0xd322('0x2f')][_0xd322('0x45')](_0x16ce9e);})[_0xd322('0x24')](function(_0x5a3a99){_0x345b8b[_0xd322('0x46')]=_0x5a3a99;return _0x345b8b;})[_0xd322('0x24')](respondWithFilteredResult(_0x336ae7,_0x16ce9e))['catch'](handleError(_0x336ae7,null));};exports[_0xd322('0x47')]=function(_0x3e41c8,_0x32512c){var _0x58aaaa={'raw':![],'where':{'id':_0x3e41c8[_0xd322('0x48')]['id']}},_0x5f574e={};_0x5f574e[_0xd322('0x34')]=_[_0xd322('0x36')](db[_0xd322('0x2f')][_0xd322('0x30')]);_0x5f574e['query']=_['keys'](_0x3e41c8['query']);_0x5f574e[_0xd322('0x37')]=_[_0xd322('0x38')](_0x5f574e['model'],_0x5f574e[_0xd322('0x35')]);_0x58aaaa[_0xd322('0x39')]=_['intersection'](_0x5f574e['model'],qs[_0xd322('0x3a')](_0x3e41c8[_0xd322('0x35')][_0xd322('0x3a')]));_0x58aaaa[_0xd322('0x39')]=_0x58aaaa[_0xd322('0x39')][_0xd322('0x49')]?_0x58aaaa[_0xd322('0x39')]:_0x5f574e['model'];if(_0x3e41c8[_0xd322('0x35')][_0xd322('0x44')]){_0x58aaaa['include']=[{'all':!![]}];}_0x58aaaa=_[_0xd322('0x42')]({},_0x58aaaa,_0x3e41c8[_0xd322('0x43')]);return db['VoiceMusicOnHold']['find'](_0x58aaaa)['then'](handleEntityNotFound(_0x32512c,null))[_0xd322('0x24')](respondWithResult(_0x32512c,null))['catch'](handleError(_0x32512c,null));};exports[_0xd322('0x23')]=function(_0x2e94d0,_0x35c533){if(_0x2e94d0['body']['id']){delete _0x2e94d0[_0xd322('0x4a')]['id'];}return db[_0xd322('0x2f')][_0xd322('0x4b')]({'where':{'id':_0x2e94d0[_0xd322('0x48')]['id']}})[_0xd322('0x24')](handleEntityNotFound(_0x35c533,null))['then'](saveUpdates(_0x2e94d0[_0xd322('0x4a')],null))[_0xd322('0x24')](respondWithResult(_0x35c533,null))[_0xd322('0x4c')](handleError(_0x35c533,null));};exports['create']=function(_0x312fd5,_0x53abd9,_0x37734f){return db[_0xd322('0x4d')][_0xd322('0x4e')](function(_0x64c0a6){if(_0x312fd5[_0xd322('0x4a')][_0xd322('0x4f')]===_0xd322('0x50')){_0x312fd5['body'][_0xd322('0x51')]=path[_0xd322('0x52')](config[_0xd322('0x53')],_0xd322('0x54'),_0x312fd5[_0xd322('0x4a')][_0xd322('0x2c')]);}return db[_0xd322('0x2f')][_0xd322('0x55')](_0x312fd5['body'],{'transaction':_0x64c0a6})[_0xd322('0x24')](function(_0x30ab51){if(_0x312fd5['body'][_0xd322('0x4f')]===_0xd322('0x50')){fs[_0xd322('0x56')](_0x30ab51['directory'],parseInt(_0xd322('0x57'),0x8));}var _0xa3f9c4=_0x312fd5[_0xd322('0x58')][_0xd322('0x26')]({'plain':!![]});if(!_0xa3f9c4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xa3f9c4[_0xd322('0x59')]==='user'){var _0x40f29c=_0x30ab51['get']({'plain':!![]});return db[_0xd322('0x5a')][_0xd322('0x4b')]({'where':{'name':'MusicOnHolds','userProfileId':_0xa3f9c4[_0xd322('0x5b')]},'raw':!![]})['then'](function(_0x1cb268){if(_0x1cb268&&_0x1cb268[_0xd322('0x5c')]===0x0){return db[_0xd322('0x28')][_0xd322('0x55')]({'name':_0x40f29c[_0xd322('0x2c')],'resourceId':_0x40f29c['id'],'type':_0x1cb268[_0xd322('0x2c')],'sectionId':_0x1cb268['id']},{})['then'](function(){return _0x30ab51;});}else{return _0x30ab51;}})['catch'](function(_0x1c24ec){logger['error'](_0xd322('0x5d'),_0x1c24ec);});}return _0x30ab51;});})[_0xd322('0x24')](respondWithResult(_0x53abd9,0xc9))[_0xd322('0x4c')](handleError(_0x53abd9,null));};exports[_0xd322('0x25')]=function(_0xbf8a22,_0x530211,_0x11d490){var _0x27e0b7;return db[_0xd322('0x2f')][_0xd322('0x4b')]({'where':{'id':_0xbf8a22[_0xd322('0x48')]['id']}})[_0xd322('0x24')](function(_0x4404a8){if(_0x4404a8){return db[_0xd322('0x4d')]['transaction'](function(_0x3ed1be){return _0x4404a8['destroy']({'transaction':_0x3ed1be,'raw':!![]})[_0xd322('0x24')](function(_0x19d1e0){if(_0x19d1e0[_0xd322('0x51')]){fs['readdirSync'](_0x19d1e0[_0xd322('0x51')])[_0xd322('0x5e')](function(_0x255708){fs[_0xd322('0x5f')](path[_0xd322('0x52')](_0x19d1e0['directory'],_0x255708));});fs['rmdirSync'](_0x19d1e0[_0xd322('0x51')]);}return _0x19d1e0;});})[_0xd322('0x4c')](function(_0x32e3c9){throw new db[(_0xd322('0x60'))][(_0xd322('0x61'))](_0x32e3c9['message']);});}})[_0xd322('0x24')](handleEntityNotFound(_0x530211,null))[_0xd322('0x24')](removeEntity(_0x530211,null))['catch'](handleError(_0x530211,null));};exports['addSound']=function(_0x1cd2bc,_0x33e809,_0x5b3357){return db[_0xd322('0x4d')][_0xd322('0x4e')](function(_0x6396c){var _0x4d87f8;return db[_0xd322('0x2f')][_0xd322('0x4b')]({'where':{'id':_0x1cd2bc[_0xd322('0x48')]['id']}})[_0xd322('0x24')](function(_0x4f0ae4){if(_0x4f0ae4){_0x4d87f8=_0x4f0ae4;return _0x4f0ae4['addSound'](_0x1cd2bc['body']['id'],{'transaction':_0x6396c});}})[_0xd322('0x24')](function(_0x5cbee8){if(_0x5cbee8){return db[_0xd322('0x62')][_0xd322('0x63')]({'where':{'id':_0x1cd2bc['body']['id']},'attributes':['id','name','save_name',_0xd322('0x64'),_0xd322('0x65')],'raw':!![]});}})[_0xd322('0x24')](function(_0x427539){if(_0x427539){var _0x8d8f1b=path[_0xd322('0x52')](config[_0xd322('0x53')],_0xd322('0x66'),util[_0xd322('0x67')](_0xd322('0x68'),path[_0xd322('0x69')](_0x427539[_0xd322('0x6a')],path[_0xd322('0x6b')](_0x427539[_0xd322('0x6a')])),_0x427539[_0xd322('0x64')]));var _0x2eb189=path['join'](config[_0xd322('0x53')],_0xd322('0x54'),_0x4d87f8[_0xd322('0x2c')],util['format']('%s.%s',_0x427539[_0xd322('0x2c')],_0x427539[_0xd322('0x64')]));fs['symlinkSync'](_0x8d8f1b,_0x2eb189);return _0x427539;}})[_0xd322('0x4c')](function(_0x35c3fa){throw new db['Sequelize'][(_0xd322('0x61'))](_0x35c3fa[_0xd322('0x6c')]);});})[_0xd322('0x24')](handleEntityNotFound(_0x33e809,null))[_0xd322('0x24')](respondWithResult(_0x33e809,0xc9))['catch'](handleError(_0x33e809,null));};exports[_0xd322('0x6d')]=function(_0x41384e,_0x2204a9,_0x5cb077){return db[_0xd322('0x4d')]['transaction'](function(_0x38c773){var _0x3d01eb;return db[_0xd322('0x2f')]['findOne']({'where':{'id':_0x41384e[_0xd322('0x48')]['id']}})[_0xd322('0x24')](handleEntityNotFound(_0x2204a9,null))[_0xd322('0x24')](function(_0x586444){if(_0x586444){_0x3d01eb=_0x586444;return _0x586444['removeSound'](_0x41384e['params'][_0xd322('0x6e')]);}})['then'](function(_0x2c0bbe){if(_0x2c0bbe){return db[_0xd322('0x62')][_0xd322('0x63')]({'where':{'id':_0x41384e[_0xd322('0x48')][_0xd322('0x6e')]},'attributes':['id','name',_0xd322('0x6a'),'converted_format',_0xd322('0x65')],'raw':!![]});}})[_0xd322('0x24')](function(_0x556260){if(_0x556260){fs[_0xd322('0x5f')](path['join'](_0x3d01eb[_0xd322('0x51')],util[_0xd322('0x67')](_0xd322('0x68'),_0x556260[_0xd322('0x2c')],_0x556260[_0xd322('0x64')])));return _0x556260;}})[_0xd322('0x4c')](function(_0x4dbba8){throw new db[(_0xd322('0x60'))][(_0xd322('0x61'))](_0x4dbba8[_0xd322('0x6c')]);});})['then'](handleEntityNotFound(_0x2204a9,null))[_0xd322('0x24')](respondWithStatusCode(_0x2204a9,0xcc))[_0xd322('0x4c')](handleError(_0x2204a9,null));};exports[_0xd322('0x6f')]=function(_0x30569f,_0x49cbcd,_0x440197){var _0x175c85={};var _0x404a2d={};var _0x572df9;var _0x18b12b;return db[_0xd322('0x2f')]['findOne']({'where':{'id':_0x30569f['params']['id']}})[_0xd322('0x24')](handleEntityNotFound(_0x49cbcd,null))[_0xd322('0x24')](function(_0x156aae){if(_0x156aae){_0x572df9=_0x156aae;_0x404a2d[_0xd322('0x34')]=_[_0xd322('0x36')](db['Sound'][_0xd322('0x30')]);_0x404a2d[_0xd322('0x35')]=_[_0xd322('0x36')](_0x30569f['query']);_0x404a2d[_0xd322('0x37')]=_['intersection'](_0x404a2d[_0xd322('0x34')],_0x404a2d[_0xd322('0x35')]);_0x175c85[_0xd322('0x39')]=_[_0xd322('0x38')](_0x404a2d['model'],qs[_0xd322('0x3a')](_0x30569f[_0xd322('0x35')]['fields']));_0x175c85['attributes']=_0x175c85[_0xd322('0x39')][_0xd322('0x49')]?_0x175c85[_0xd322('0x39')]:_0x404a2d[_0xd322('0x34')];_0x175c85['order']=qs['sort'](_0x30569f['query'][_0xd322('0x3e')]);_0x175c85[_0xd322('0x3f')]=qs['filters'](_[_0xd322('0x40')](_0x30569f[_0xd322('0x35')],_0x404a2d[_0xd322('0x37')]));if(_0x30569f['query'][_0xd322('0x41')]){_0x175c85[_0xd322('0x3f')]=_['merge'](_0x175c85[_0xd322('0x3f')],{'$or':_[_0xd322('0x2e')](_0x175c85[_0xd322('0x39')],function(_0x486481){var _0x44f17d={};_0x44f17d[_0x486481]={'$like':'%'+_0x30569f['query'][_0xd322('0x41')]+'%'};return _0x44f17d;})});}_0x175c85=_[_0xd322('0x42')]({},_0x175c85,_0x30569f[_0xd322('0x43')]);return _0x572df9['getSounds'](_0x175c85);}})['then'](function(_0x3ee2a4){if(_0x3ee2a4){_0x18b12b=_0x3ee2a4[_0xd322('0x49')];if(!_0x30569f[_0xd322('0x35')][_0xd322('0x3b')]('nolimit')){_0x175c85[_0xd322('0x1c')]=qs['limit'](_0x30569f[_0xd322('0x35')][_0xd322('0x1c')]);_0x175c85[_0xd322('0x1b')]=qs['offset'](_0x30569f[_0xd322('0x35')][_0xd322('0x1b')]);}return _0x572df9[_0xd322('0x6f')](_0x175c85);}})[_0xd322('0x24')](function(_0x381fac){if(_0x381fac){return _0x381fac?{'count':_0x18b12b,'rows':_0x381fac}:null;}})[_0xd322('0x24')](respondWithResult(_0x49cbcd,null))[_0xd322('0x4c')](handleError(_0x49cbcd,null));};