Built motion from commit 3c2ce842.|2.6.31
[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 _0x7372=['mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','get','UserProfileResource','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','key','query','keys','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','find','body','create','sequelize','mode','files','directory','join','root','server/files/moh','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','MusicOnHolds','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','readdirSync','forEach','Sequelize','ValidationError','addSound','transaction','save_name','converted_format','createdAt','server/files/sounds/converted','format','basename','extname','%s.%s','symlinkSync','findOne','removeSound','id2','Sound','unlinkSync','message','getSounds','pick','rimraf','fast-json-patch','request-promise','bluebird'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x7372,0x72));var _0x2737=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7372[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2737('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2737('0x1'));var rp=require(_0x2737('0x2'));var moment=require('moment');var BPromise=require(_0x2737('0x3'));var Mustache=require(_0x2737('0x4'));var util=require('util');var path=require(_0x2737('0x5'));var sox=require(_0x2737('0x6'));var csv=require(_0x2737('0x7'));var ejs=require(_0x2737('0x8'));var fs=require('fs');var fs_extra=require(_0x2737('0x9'));var _=require(_0x2737('0xa'));var squel=require(_0x2737('0xb'));var crypto=require('crypto');var jsforce=require(_0x2737('0xc'));var deskjs=require(_0x2737('0xd'));var toCsv=require(_0x2737('0x7'));var querystring=require('querystring');var Papa=require(_0x2737('0xe'));var Redis=require(_0x2737('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x2737('0x10'));var as=require(_0x2737('0x11'));var hardwareService=require(_0x2737('0x12'));var logger=require(_0x2737('0x13'))('api');var utils=require(_0x2737('0x14'));var config=require(_0x2737('0x15'));var licenseUtil=require(_0x2737('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x43338a,_0xb7183f){_0xb7183f=_0xb7183f||0xcc;return function(_0x14a03d){if(_0x14a03d){return _0x43338a[_0x2737('0x17')](_0xb7183f);}return _0x43338a[_0x2737('0x18')](_0xb7183f)[_0x2737('0x19')]();};}function respondWithResult(_0x33ad39,_0x1a8031){_0x1a8031=_0x1a8031||0xc8;return function(_0x1dd952){if(_0x1dd952){return _0x33ad39[_0x2737('0x18')](_0x1a8031)[_0x2737('0x1a')](_0x1dd952);}};}function respondWithFilteredResult(_0x1282af,_0x48706a){return function(_0x416562){if(_0x416562){var _0x5d7edf=typeof _0x48706a[_0x2737('0x1b')]===_0x2737('0x1c')&&typeof _0x48706a['limit']===_0x2737('0x1c');var _0x3a7cc5=_0x416562[_0x2737('0x1d')];var _0x5ae9f8=_0x5d7edf?0x0:_0x48706a['offset'];var _0x84afc=_0x5d7edf?_0x416562[_0x2737('0x1d')]:_0x48706a[_0x2737('0x1b')]+_0x48706a['limit'];var _0x52b90c;if(_0x84afc>=_0x3a7cc5){_0x84afc=_0x3a7cc5;_0x52b90c=0xc8;}else{_0x52b90c=0xce;}_0x1282af[_0x2737('0x18')](_0x52b90c);return _0x1282af[_0x2737('0x1e')](_0x2737('0x1f'),_0x5ae9f8+'-'+_0x84afc+'/'+_0x3a7cc5)[_0x2737('0x1a')](_0x416562);}return null;};}function patchUpdates(_0x5a1e95){return function(_0x332966){try{jsonpatch[_0x2737('0x20')](_0x332966,_0x5a1e95,!![]);}catch(_0xad8276){return BPromise[_0x2737('0x21')](_0xad8276);}return _0x332966[_0x2737('0x22')]();};}function saveUpdates(_0x1be561,_0x19c8a5){return function(_0x211fc3){if(_0x211fc3){return _0x211fc3[_0x2737('0x23')](_0x1be561)['then'](function(_0x37c862){return _0x37c862;});}return null;};}function removeEntity(_0x1a91e8,_0x3c0e8b){return function(_0x49f119){if(_0x49f119){return _0x49f119[_0x2737('0x24')]()[_0x2737('0x25')](function(){var _0x59fe99=_0x49f119[_0x2737('0x26')]({'plain':!![]});var _0x5be241='MusicOnHolds';return db[_0x2737('0x27')]['destroy']({'where':{'type':_0x5be241,'resourceId':_0x59fe99['id']}})['then'](function(){return _0x49f119;});})['then'](function(){_0x1a91e8['status'](0xcc)[_0x2737('0x19')]();});}};}function handleEntityNotFound(_0x423066,_0x15b45f){return function(_0x4152c4){if(!_0x4152c4){_0x423066[_0x2737('0x17')](0x194);}return _0x4152c4;};}function handleError(_0x81d13f,_0x47d319){_0x47d319=_0x47d319||0x1f4;return function(_0x324fb9){logger['error'](_0x324fb9[_0x2737('0x28')]);if(_0x324fb9[_0x2737('0x29')]){delete _0x324fb9[_0x2737('0x29')];}_0x81d13f[_0x2737('0x18')](_0x47d319)[_0x2737('0x2a')](_0x324fb9);};}exports[_0x2737('0x2b')]=function(_0x55437a,_0x39a71d){var _0x189b69={},_0x18e7de={},_0x104c7f={'count':0x0,'rows':[]};var _0x2bf4f8=_[_0x2737('0x2c')](db[_0x2737('0x2d')][_0x2737('0x2e')],function(_0x3e1fc8){return{'name':_0x3e1fc8[_0x2737('0x2f')],'type':_0x3e1fc8['type'][_0x2737('0x30')]};});_0x18e7de['model']=_['map'](_0x2bf4f8,'name');_0x18e7de[_0x2737('0x31')]=_[_0x2737('0x32')](_0x55437a[_0x2737('0x31')]);_0x18e7de['filters']=_[_0x2737('0x33')](_0x18e7de['model'],_0x18e7de[_0x2737('0x31')]);_0x189b69[_0x2737('0x34')]=_[_0x2737('0x33')](_0x18e7de[_0x2737('0x35')],qs[_0x2737('0x36')](_0x55437a[_0x2737('0x31')][_0x2737('0x36')]));_0x189b69[_0x2737('0x34')]=_0x189b69[_0x2737('0x34')][_0x2737('0x37')]?_0x189b69[_0x2737('0x34')]:_0x18e7de[_0x2737('0x35')];if(!_0x55437a[_0x2737('0x31')][_0x2737('0x38')](_0x2737('0x39'))){_0x189b69[_0x2737('0x3a')]=qs[_0x2737('0x3a')](_0x55437a[_0x2737('0x31')][_0x2737('0x3a')]);_0x189b69[_0x2737('0x1b')]=qs['offset'](_0x55437a[_0x2737('0x31')][_0x2737('0x1b')]);}_0x189b69[_0x2737('0x3b')]=qs[_0x2737('0x3c')](_0x55437a[_0x2737('0x31')][_0x2737('0x3c')]);delete _0x55437a['query'][_0x2737('0x3c')];_0x189b69[_0x2737('0x3d')]=qs[_0x2737('0x3e')](_['pick'](_0x55437a[_0x2737('0x31')],_0x18e7de['filters']),_0x2bf4f8);if(_0x55437a['query']['filter']){_0x189b69['where']=_[_0x2737('0x3f')](_0x189b69[_0x2737('0x3d')],{'$or':_[_0x2737('0x2c')](_0x2bf4f8,function(_0xeead16){if(_0xeead16[_0x2737('0x40')]!==_0x2737('0x41')){var _0x398f9c={};_0x398f9c[_0xeead16[_0x2737('0x29')]]={'$like':'%'+_0x55437a[_0x2737('0x31')][_0x2737('0x42')]+'%'};return _0x398f9c;}})});}_0x189b69=_['merge']({},_0x189b69,_0x55437a[_0x2737('0x43')]);var _0x4129bb={'where':_0x189b69[_0x2737('0x3d')]};return db[_0x2737('0x2d')][_0x2737('0x1d')](_0x4129bb)['then'](function(_0x2109e0){_0x104c7f['count']=_0x2109e0;if(_0x55437a[_0x2737('0x31')][_0x2737('0x44')]){_0x189b69[_0x2737('0x45')]=[{'all':!![]}];}return db[_0x2737('0x2d')][_0x2737('0x46')](_0x189b69);})['then'](function(_0x1c73f9){_0x104c7f[_0x2737('0x47')]=_0x1c73f9;return _0x104c7f;})[_0x2737('0x25')](respondWithFilteredResult(_0x39a71d,_0x189b69))[_0x2737('0x48')](handleError(_0x39a71d,null));};exports[_0x2737('0x49')]=function(_0x281f1c,_0x4ab118){var _0x48b029={'raw':![],'where':{'id':_0x281f1c['params']['id']}},_0xc8e6f8={};_0xc8e6f8[_0x2737('0x35')]=_[_0x2737('0x32')](db[_0x2737('0x2d')][_0x2737('0x2e')]);_0xc8e6f8[_0x2737('0x31')]=_[_0x2737('0x32')](_0x281f1c[_0x2737('0x31')]);_0xc8e6f8[_0x2737('0x3e')]=_[_0x2737('0x33')](_0xc8e6f8['model'],_0xc8e6f8[_0x2737('0x31')]);_0x48b029['attributes']=_[_0x2737('0x33')](_0xc8e6f8['model'],qs['fields'](_0x281f1c[_0x2737('0x31')][_0x2737('0x36')]));_0x48b029['attributes']=_0x48b029[_0x2737('0x34')]['length']?_0x48b029[_0x2737('0x34')]:_0xc8e6f8[_0x2737('0x35')];if(_0x281f1c['query'][_0x2737('0x44')]){_0x48b029[_0x2737('0x45')]=[{'all':!![]}];}_0x48b029=_[_0x2737('0x3f')]({},_0x48b029,_0x281f1c[_0x2737('0x43')]);return db[_0x2737('0x2d')][_0x2737('0x4a')](_0x48b029)['then'](handleEntityNotFound(_0x4ab118,null))[_0x2737('0x25')](respondWithResult(_0x4ab118,null))[_0x2737('0x48')](handleError(_0x4ab118,null));};exports[_0x2737('0x23')]=function(_0x28442e,_0x8410fd){if(_0x28442e[_0x2737('0x4b')]['id']){delete _0x28442e[_0x2737('0x4b')]['id'];}return db[_0x2737('0x2d')][_0x2737('0x4a')]({'where':{'id':_0x28442e['params']['id']}})[_0x2737('0x25')](handleEntityNotFound(_0x8410fd,null))[_0x2737('0x25')](saveUpdates(_0x28442e[_0x2737('0x4b')],null))[_0x2737('0x25')](respondWithResult(_0x8410fd,null))[_0x2737('0x48')](handleError(_0x8410fd,null));};exports[_0x2737('0x4c')]=function(_0x45be01,_0x54594f,_0x4e2d27){return db[_0x2737('0x4d')]['transaction'](function(_0x2c0ce7){if(_0x45be01[_0x2737('0x4b')][_0x2737('0x4e')]===_0x2737('0x4f')){_0x45be01[_0x2737('0x4b')][_0x2737('0x50')]=path[_0x2737('0x51')](config[_0x2737('0x52')],_0x2737('0x53'),_0x45be01[_0x2737('0x4b')][_0x2737('0x29')]);}return db[_0x2737('0x2d')][_0x2737('0x4c')](_0x45be01[_0x2737('0x4b')],{'transaction':_0x2c0ce7})[_0x2737('0x25')](function(_0x23e893){if(_0x45be01[_0x2737('0x4b')][_0x2737('0x4e')]==='files'){fs['mkdirSync'](_0x23e893[_0x2737('0x50')],parseInt(_0x2737('0x54'),0x8));}var _0x5c97c6=_0x45be01[_0x2737('0x55')][_0x2737('0x26')]({'plain':!![]});if(!_0x5c97c6)throw new Error(_0x2737('0x56'));if(_0x5c97c6[_0x2737('0x57')]===_0x2737('0x55')){var _0x3dc115=_0x23e893[_0x2737('0x26')]({'plain':!![]});return db[_0x2737('0x58')][_0x2737('0x4a')]({'where':{'name':_0x2737('0x59'),'userProfileId':_0x5c97c6[_0x2737('0x5a')]},'raw':!![]})[_0x2737('0x25')](function(_0x196b47){if(_0x196b47&&_0x196b47[_0x2737('0x5b')]===0x0){return db[_0x2737('0x27')][_0x2737('0x4c')]({'name':_0x3dc115[_0x2737('0x29')],'resourceId':_0x3dc115['id'],'type':_0x196b47[_0x2737('0x29')],'sectionId':_0x196b47['id']},{})[_0x2737('0x25')](function(){return _0x23e893;});}else{return _0x23e893;}})[_0x2737('0x48')](function(_0x4b7617){logger[_0x2737('0x5c')](_0x2737('0x5d'),_0x4b7617);});}return _0x23e893;});})[_0x2737('0x25')](respondWithResult(_0x54594f,0xc9))[_0x2737('0x48')](handleError(_0x54594f,null));};exports[_0x2737('0x24')]=function(_0x794a4c,_0x37b446,_0xa40785){var _0x4b27c7;return db[_0x2737('0x2d')][_0x2737('0x4a')]({'where':{'id':_0x794a4c[_0x2737('0x5e')]['id']}})[_0x2737('0x25')](function(_0x2d9719){if(_0x2d9719){return db['sequelize']['transaction'](function(_0x2c048c){return _0x2d9719[_0x2737('0x24')]({'transaction':_0x2c048c,'raw':!![]})[_0x2737('0x25')](function(_0x21bc17){if(_0x21bc17[_0x2737('0x50')]){fs[_0x2737('0x5f')](_0x21bc17[_0x2737('0x50')])[_0x2737('0x60')](function(_0x20db6d){fs['unlinkSync'](path[_0x2737('0x51')](_0x21bc17[_0x2737('0x50')],_0x20db6d));});fs['rmdirSync'](_0x21bc17[_0x2737('0x50')]);}return _0x21bc17;});})['catch'](function(_0x1bba56){throw new db[(_0x2737('0x61'))][(_0x2737('0x62'))](_0x1bba56['message']);});}})[_0x2737('0x25')](handleEntityNotFound(_0x37b446,null))[_0x2737('0x25')](removeEntity(_0x37b446,null))[_0x2737('0x48')](handleError(_0x37b446,null));};exports[_0x2737('0x63')]=function(_0x41921a,_0x1d67ba,_0x82ef19){return db[_0x2737('0x4d')][_0x2737('0x64')](function(_0x5956ae){var _0x240e34;return db[_0x2737('0x2d')][_0x2737('0x4a')]({'where':{'id':_0x41921a[_0x2737('0x5e')]['id']}})['then'](function(_0x267f0b){if(_0x267f0b){_0x240e34=_0x267f0b;return _0x267f0b['addSound'](_0x41921a['body']['id'],{'transaction':_0x5956ae});}})[_0x2737('0x25')](function(_0xb0af9d){if(_0xb0af9d){return db['Sound']['findOne']({'where':{'id':_0x41921a['body']['id']},'attributes':['id',_0x2737('0x29'),_0x2737('0x65'),_0x2737('0x66'),_0x2737('0x67')],'raw':!![]});}})[_0x2737('0x25')](function(_0x457162){if(_0x457162){var _0x46b8ca=path[_0x2737('0x51')](config[_0x2737('0x52')],_0x2737('0x68'),util[_0x2737('0x69')]('%s.%s',path[_0x2737('0x6a')](_0x457162[_0x2737('0x65')],path[_0x2737('0x6b')](_0x457162[_0x2737('0x65')])),_0x457162[_0x2737('0x66')]));var _0x49a737=path['join'](config[_0x2737('0x52')],_0x2737('0x53'),_0x240e34[_0x2737('0x29')],util[_0x2737('0x69')](_0x2737('0x6c'),_0x457162[_0x2737('0x29')],_0x457162[_0x2737('0x66')]));fs[_0x2737('0x6d')](_0x46b8ca,_0x49a737);return _0x457162;}})[_0x2737('0x48')](function(_0x3585de){throw new db[(_0x2737('0x61'))]['ValidationError'](_0x3585de['message']);});})[_0x2737('0x25')](handleEntityNotFound(_0x1d67ba,null))[_0x2737('0x25')](respondWithResult(_0x1d67ba,0xc9))[_0x2737('0x48')](handleError(_0x1d67ba,null));};exports['removeSound']=function(_0xb6ceb6,_0x452010,_0x1378c3){return db[_0x2737('0x4d')]['transaction'](function(_0xa39658){var _0x123cd5;return db['VoiceMusicOnHold'][_0x2737('0x6e')]({'where':{'id':_0xb6ceb6[_0x2737('0x5e')]['id']}})[_0x2737('0x25')](handleEntityNotFound(_0x452010,null))[_0x2737('0x25')](function(_0x290bd9){if(_0x290bd9){_0x123cd5=_0x290bd9;return _0x290bd9[_0x2737('0x6f')](_0xb6ceb6[_0x2737('0x5e')][_0x2737('0x70')]);}})['then'](function(_0x567f42){if(_0x567f42){return db[_0x2737('0x71')][_0x2737('0x6e')]({'where':{'id':_0xb6ceb6['params'][_0x2737('0x70')]},'attributes':['id',_0x2737('0x29'),_0x2737('0x65'),_0x2737('0x66'),_0x2737('0x67')],'raw':!![]});}})[_0x2737('0x25')](function(_0x4c260b){if(_0x4c260b){fs[_0x2737('0x72')](path['join'](_0x123cd5[_0x2737('0x50')],util[_0x2737('0x69')](_0x2737('0x6c'),_0x4c260b[_0x2737('0x29')],_0x4c260b[_0x2737('0x66')])));return _0x4c260b;}})[_0x2737('0x48')](function(_0x144273){throw new db[(_0x2737('0x61'))][(_0x2737('0x62'))](_0x144273[_0x2737('0x73')]);});})[_0x2737('0x25')](handleEntityNotFound(_0x452010,null))[_0x2737('0x25')](respondWithStatusCode(_0x452010,0xcc))['catch'](handleError(_0x452010,null));};exports[_0x2737('0x74')]=function(_0x2818c0,_0x435d12,_0x2ac59e){var _0x2104e4={};var _0x372e13={};var _0x3e1d51;var _0x4a03f4;return db['VoiceMusicOnHold'][_0x2737('0x6e')]({'where':{'id':_0x2818c0[_0x2737('0x5e')]['id']}})[_0x2737('0x25')](handleEntityNotFound(_0x435d12,null))[_0x2737('0x25')](function(_0x12ceb4){if(_0x12ceb4){_0x3e1d51=_0x12ceb4;_0x372e13['model']=_[_0x2737('0x32')](db[_0x2737('0x71')][_0x2737('0x2e')]);_0x372e13[_0x2737('0x31')]=_[_0x2737('0x32')](_0x2818c0['query']);_0x372e13[_0x2737('0x3e')]=_['intersection'](_0x372e13[_0x2737('0x35')],_0x372e13['query']);_0x2104e4[_0x2737('0x34')]=_[_0x2737('0x33')](_0x372e13[_0x2737('0x35')],qs[_0x2737('0x36')](_0x2818c0[_0x2737('0x31')][_0x2737('0x36')]));_0x2104e4[_0x2737('0x34')]=_0x2104e4[_0x2737('0x34')][_0x2737('0x37')]?_0x2104e4[_0x2737('0x34')]:_0x372e13[_0x2737('0x35')];_0x2104e4[_0x2737('0x3b')]=qs[_0x2737('0x3c')](_0x2818c0['query'][_0x2737('0x3c')]);_0x2104e4['where']=qs[_0x2737('0x3e')](_[_0x2737('0x75')](_0x2818c0['query'],_0x372e13[_0x2737('0x3e')]));if(_0x2818c0[_0x2737('0x31')][_0x2737('0x42')]){_0x2104e4[_0x2737('0x3d')]=_[_0x2737('0x3f')](_0x2104e4['where'],{'$or':_[_0x2737('0x2c')](_0x2104e4[_0x2737('0x34')],function(_0x5c1b8f){var _0x320f3f={};_0x320f3f[_0x5c1b8f]={'$like':'%'+_0x2818c0['query'][_0x2737('0x42')]+'%'};return _0x320f3f;})});}_0x2104e4=_[_0x2737('0x3f')]({},_0x2104e4,_0x2818c0[_0x2737('0x43')]);return _0x3e1d51[_0x2737('0x74')](_0x2104e4);}})['then'](function(_0x5eec06){if(_0x5eec06){_0x4a03f4=_0x5eec06[_0x2737('0x37')];if(!_0x2818c0[_0x2737('0x31')]['hasOwnProperty'](_0x2737('0x39'))){_0x2104e4['limit']=qs[_0x2737('0x3a')](_0x2818c0[_0x2737('0x31')]['limit']);_0x2104e4['offset']=qs[_0x2737('0x1b')](_0x2818c0['query']['offset']);}return _0x3e1d51[_0x2737('0x74')](_0x2104e4);}})[_0x2737('0x25')](function(_0x41c150){if(_0x41c150){return _0x41c150?{'count':_0x4a03f4,'rows':_0x41c150}:null;}})['then'](respondWithResult(_0x435d12,null))['catch'](handleError(_0x435d12,null));};