Built motion from commit 9d7072cc.|2.5.39
[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 _0x77bc=['MusicOnHolds','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readdirSync','forEach','unlinkSync','Sequelize','message','addSound','findOne','save_name','format','%s.%s','basename','extname','converted_format','symlinkSync','ValidationError','removeSound','id2','Sound','getSounds','length','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','end','sendStatus','error','name','VoiceMusicOnHold','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','merge','where','filter','options','include','findAll','catch','show','params','fields','includeAll','find','body','create','sequelize','transaction','mode','files','join','root','server/files/moh','mkdirSync','directory','0777','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection'];(function(_0x1a9e55,_0x162bcb){var _0x90a992=function(_0x1e0966){while(--_0x1e0966){_0x1a9e55['push'](_0x1a9e55['shift']());}};_0x90a992(++_0x162bcb);}(_0x77bc,0x83));var _0xc77b=function(_0x3d8b4c,_0x4e4a7c){_0x3d8b4c=_0x3d8b4c-0x0;var _0xddaeac=_0x77bc[_0x3d8b4c];return _0xddaeac;};'use strict';var emlformat=require(_0xc77b('0x0'));var rimraf=require(_0xc77b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xc77b('0x2'));var moment=require('moment');var BPromise=require(_0xc77b('0x3'));var Mustache=require(_0xc77b('0x4'));var util=require(_0xc77b('0x5'));var path=require(_0xc77b('0x6'));var sox=require(_0xc77b('0x7'));var csv=require(_0xc77b('0x8'));var ejs=require(_0xc77b('0x9'));var fs=require('fs');var fs_extra=require(_0xc77b('0xa'));var _=require('lodash');var squel=require(_0xc77b('0xb'));var crypto=require(_0xc77b('0xc'));var jsforce=require(_0xc77b('0xd'));var deskjs=require(_0xc77b('0xe'));var toCsv=require(_0xc77b('0x8'));var querystring=require(_0xc77b('0xf'));var Papa=require(_0xc77b('0x10'));var Redis=require(_0xc77b('0x11'));var authService=require(_0xc77b('0x12'));var qs=require(_0xc77b('0x13'));var as=require(_0xc77b('0x14'));var hardwareService=require(_0xc77b('0x15'));var logger=require('../../config/logger')(_0xc77b('0x16'));var utils=require(_0xc77b('0x17'));var config=require(_0xc77b('0x18'));var licenseUtil=require(_0xc77b('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x59531b,_0x5d7000){_0x5d7000=_0x5d7000||0xcc;return function(_0x1f7b5d){if(_0x1f7b5d){return _0x59531b['sendStatus'](_0x5d7000);}return _0x59531b[_0xc77b('0x1a')](_0x5d7000)['end']();};}function respondWithResult(_0x5b8b29,_0x5dad33){_0x5dad33=_0x5dad33||0xc8;return function(_0x4125ca){if(_0x4125ca){return _0x5b8b29[_0xc77b('0x1a')](_0x5dad33)[_0xc77b('0x1b')](_0x4125ca);}};}function respondWithFilteredResult(_0x35fe98,_0x512eaa){return function(_0x1f93ac){if(_0x1f93ac){var _0x2f7e9d=typeof _0x512eaa[_0xc77b('0x1c')]===_0xc77b('0x1d')&&typeof _0x512eaa[_0xc77b('0x1e')]===_0xc77b('0x1d');var _0x4bdf30=_0x1f93ac['count'];var _0x2ad4b4=_0x2f7e9d?0x0:_0x512eaa[_0xc77b('0x1c')];var _0x335e72=_0x2f7e9d?_0x1f93ac[_0xc77b('0x1f')]:_0x512eaa['offset']+_0x512eaa[_0xc77b('0x1e')];var _0x529f87;if(_0x335e72>=_0x4bdf30){_0x335e72=_0x4bdf30;_0x529f87=0xc8;}else{_0x529f87=0xce;}_0x35fe98[_0xc77b('0x1a')](_0x529f87);return _0x35fe98['set'](_0xc77b('0x20'),_0x2ad4b4+'-'+_0x335e72+'/'+_0x4bdf30)['json'](_0x1f93ac);}return null;};}function patchUpdates(_0x539522){return function(_0x5558bf){try{jsonpatch[_0xc77b('0x21')](_0x5558bf,_0x539522,!![]);}catch(_0x40b6ea){return BPromise['reject'](_0x40b6ea);}return _0x5558bf[_0xc77b('0x22')]();};}function saveUpdates(_0x339f50,_0x28e621){return function(_0x12a65a){if(_0x12a65a){return _0x12a65a[_0xc77b('0x23')](_0x339f50)[_0xc77b('0x24')](function(_0x6a5925){return _0x6a5925;});}return null;};}function removeEntity(_0x139628,_0x234e9b){return function(_0x15eaed){if(_0x15eaed){return _0x15eaed[_0xc77b('0x25')]()[_0xc77b('0x24')](function(){var _0x501e7b=_0x15eaed[_0xc77b('0x26')]({'plain':!![]});var _0xe3b3e7='MusicOnHolds';return db[_0xc77b('0x27')][_0xc77b('0x25')]({'where':{'type':_0xe3b3e7,'resourceId':_0x501e7b['id']}})[_0xc77b('0x24')](function(){return _0x15eaed;});})['then'](function(){_0x139628[_0xc77b('0x1a')](0xcc)[_0xc77b('0x28')]();});}};}function handleEntityNotFound(_0x5e024d,_0x5deaf5){return function(_0x28f670){if(!_0x28f670){_0x5e024d[_0xc77b('0x29')](0x194);}return _0x28f670;};}function handleError(_0x19c508,_0xa5abdd){_0xa5abdd=_0xa5abdd||0x1f4;return function(_0xc31d4d){logger[_0xc77b('0x2a')](_0xc31d4d['stack']);if(_0xc31d4d[_0xc77b('0x2b')]){delete _0xc31d4d[_0xc77b('0x2b')];}_0x19c508[_0xc77b('0x1a')](_0xa5abdd)['send'](_0xc31d4d);};}exports['index']=function(_0x1fe04e,_0x490e8d){var _0x21dcf6={},_0xfdc7f0={},_0x477a8f={'count':0x0,'rows':[]};var _0x5f0b35=_['map'](db[_0xc77b('0x2c')][_0xc77b('0x2d')],function(_0x561968){return{'name':_0x561968[_0xc77b('0x2e')],'type':_0x561968[_0xc77b('0x2f')]['key']};});_0xfdc7f0[_0xc77b('0x30')]=_['map'](_0x5f0b35,_0xc77b('0x2b'));_0xfdc7f0[_0xc77b('0x31')]=_[_0xc77b('0x32')](_0x1fe04e[_0xc77b('0x31')]);_0xfdc7f0[_0xc77b('0x33')]=_[_0xc77b('0x34')](_0xfdc7f0[_0xc77b('0x30')],_0xfdc7f0[_0xc77b('0x31')]);_0x21dcf6[_0xc77b('0x35')]=_['intersection'](_0xfdc7f0['model'],qs['fields'](_0x1fe04e['query']['fields']));_0x21dcf6[_0xc77b('0x35')]=_0x21dcf6['attributes']['length']?_0x21dcf6[_0xc77b('0x35')]:_0xfdc7f0[_0xc77b('0x30')];if(!_0x1fe04e[_0xc77b('0x31')][_0xc77b('0x36')](_0xc77b('0x37'))){_0x21dcf6[_0xc77b('0x1e')]=qs['limit'](_0x1fe04e['query'][_0xc77b('0x1e')]);_0x21dcf6[_0xc77b('0x1c')]=qs['offset'](_0x1fe04e[_0xc77b('0x31')][_0xc77b('0x1c')]);}_0x21dcf6[_0xc77b('0x38')]=qs['sort'](_0x1fe04e[_0xc77b('0x31')][_0xc77b('0x39')]);delete _0x1fe04e[_0xc77b('0x31')]['sort'];_0x21dcf6['where']=qs[_0xc77b('0x33')](_['pick'](_0x1fe04e['query'],_0xfdc7f0[_0xc77b('0x33')]),_0x5f0b35);if(_0x1fe04e['query']['filter']){_0x21dcf6['where']=_[_0xc77b('0x3a')](_0x21dcf6[_0xc77b('0x3b')],{'$or':_['map'](_0x5f0b35,function(_0x2a2891){if(_0x2a2891[_0xc77b('0x2f')]!=='VIRTUAL'){var _0x4193b8={};_0x4193b8[_0x2a2891[_0xc77b('0x2b')]]={'$like':'%'+_0x1fe04e[_0xc77b('0x31')][_0xc77b('0x3c')]+'%'};return _0x4193b8;}})});}_0x21dcf6=_[_0xc77b('0x3a')]({},_0x21dcf6,_0x1fe04e[_0xc77b('0x3d')]);var _0xe34b69={'where':_0x21dcf6[_0xc77b('0x3b')]};return db[_0xc77b('0x2c')][_0xc77b('0x1f')](_0xe34b69)[_0xc77b('0x24')](function(_0x4868ed){_0x477a8f[_0xc77b('0x1f')]=_0x4868ed;if(_0x1fe04e[_0xc77b('0x31')]['includeAll']){_0x21dcf6[_0xc77b('0x3e')]=[{'all':!![]}];}return db[_0xc77b('0x2c')][_0xc77b('0x3f')](_0x21dcf6);})[_0xc77b('0x24')](function(_0x4ac0fe){_0x477a8f['rows']=_0x4ac0fe;return _0x477a8f;})[_0xc77b('0x24')](respondWithFilteredResult(_0x490e8d,_0x21dcf6))[_0xc77b('0x40')](handleError(_0x490e8d,null));};exports[_0xc77b('0x41')]=function(_0x2f517d,_0x55f575){var _0x22cd42={'raw':![],'where':{'id':_0x2f517d[_0xc77b('0x42')]['id']}},_0x501ae6={};_0x501ae6['model']=_['keys'](db[_0xc77b('0x2c')][_0xc77b('0x2d')]);_0x501ae6[_0xc77b('0x31')]=_[_0xc77b('0x32')](_0x2f517d['query']);_0x501ae6[_0xc77b('0x33')]=_[_0xc77b('0x34')](_0x501ae6[_0xc77b('0x30')],_0x501ae6[_0xc77b('0x31')]);_0x22cd42[_0xc77b('0x35')]=_[_0xc77b('0x34')](_0x501ae6[_0xc77b('0x30')],qs[_0xc77b('0x43')](_0x2f517d[_0xc77b('0x31')][_0xc77b('0x43')]));_0x22cd42[_0xc77b('0x35')]=_0x22cd42[_0xc77b('0x35')]['length']?_0x22cd42['attributes']:_0x501ae6['model'];if(_0x2f517d[_0xc77b('0x31')][_0xc77b('0x44')]){_0x22cd42[_0xc77b('0x3e')]=[{'all':!![]}];}_0x22cd42=_[_0xc77b('0x3a')]({},_0x22cd42,_0x2f517d[_0xc77b('0x3d')]);return db[_0xc77b('0x2c')][_0xc77b('0x45')](_0x22cd42)[_0xc77b('0x24')](handleEntityNotFound(_0x55f575,null))[_0xc77b('0x24')](respondWithResult(_0x55f575,null))[_0xc77b('0x40')](handleError(_0x55f575,null));};exports[_0xc77b('0x23')]=function(_0x44f19d,_0x429a6f){if(_0x44f19d[_0xc77b('0x46')]['id']){delete _0x44f19d[_0xc77b('0x46')]['id'];}return db['VoiceMusicOnHold'][_0xc77b('0x45')]({'where':{'id':_0x44f19d[_0xc77b('0x42')]['id']}})[_0xc77b('0x24')](handleEntityNotFound(_0x429a6f,null))[_0xc77b('0x24')](saveUpdates(_0x44f19d[_0xc77b('0x46')],null))[_0xc77b('0x24')](respondWithResult(_0x429a6f,null))['catch'](handleError(_0x429a6f,null));};exports[_0xc77b('0x47')]=function(_0x3861da,_0x4bf17f,_0x40e0c8){return db[_0xc77b('0x48')][_0xc77b('0x49')](function(_0x5b50c2){if(_0x3861da[_0xc77b('0x46')][_0xc77b('0x4a')]===_0xc77b('0x4b')){_0x3861da[_0xc77b('0x46')]['directory']=path[_0xc77b('0x4c')](config[_0xc77b('0x4d')],_0xc77b('0x4e'),_0x3861da[_0xc77b('0x46')][_0xc77b('0x2b')]);}return db[_0xc77b('0x2c')]['create'](_0x3861da[_0xc77b('0x46')],{'transaction':_0x5b50c2})[_0xc77b('0x24')](function(_0x83f2de){if(_0x3861da['body']['mode']===_0xc77b('0x4b')){fs[_0xc77b('0x4f')](_0x83f2de[_0xc77b('0x50')],parseInt(_0xc77b('0x51'),0x8));}var _0x4c522f=_0x3861da['user'][_0xc77b('0x26')]({'plain':!![]});if(!_0x4c522f)throw new Error(_0xc77b('0x52'));if(_0x4c522f[_0xc77b('0x53')]==='user'){var _0x292298=_0x83f2de[_0xc77b('0x26')]({'plain':!![]});return db[_0xc77b('0x54')][_0xc77b('0x45')]({'where':{'name':_0xc77b('0x55'),'userProfileId':_0x4c522f['userProfileId']},'raw':!![]})[_0xc77b('0x24')](function(_0x5bae61){if(_0x5bae61&&_0x5bae61[_0xc77b('0x56')]===0x0){return db['UserProfileResource'][_0xc77b('0x47')]({'name':_0x292298[_0xc77b('0x2b')],'resourceId':_0x292298['id'],'type':_0x5bae61[_0xc77b('0x2b')],'sectionId':_0x5bae61['id']},{})[_0xc77b('0x24')](function(){return _0x83f2de;});}else{return _0x83f2de;}})[_0xc77b('0x40')](function(_0x24fe46){logger[_0xc77b('0x2a')](_0xc77b('0x57'),_0x24fe46);});}return _0x83f2de;});})[_0xc77b('0x24')](respondWithResult(_0x4bf17f,0xc9))[_0xc77b('0x40')](handleError(_0x4bf17f,null));};exports[_0xc77b('0x25')]=function(_0x1b17ad,_0x2b2c12,_0x480f8b){var _0xb56d92;return db[_0xc77b('0x2c')]['find']({'where':{'id':_0x1b17ad[_0xc77b('0x42')]['id']}})[_0xc77b('0x24')](function(_0x1e37ec){if(_0x1e37ec){return db['sequelize'][_0xc77b('0x49')](function(_0xbc65f9){return _0x1e37ec[_0xc77b('0x25')]({'transaction':_0xbc65f9,'raw':!![]})[_0xc77b('0x24')](function(_0x2d2ba8){if(_0x2d2ba8['directory']){fs[_0xc77b('0x58')](_0x2d2ba8[_0xc77b('0x50')])[_0xc77b('0x59')](function(_0x5d45f8){fs[_0xc77b('0x5a')](path[_0xc77b('0x4c')](_0x2d2ba8[_0xc77b('0x50')],_0x5d45f8));});fs['rmdirSync'](_0x2d2ba8[_0xc77b('0x50')]);}return _0x2d2ba8;});})[_0xc77b('0x40')](function(_0x596425){throw new db[(_0xc77b('0x5b'))]['ValidationError'](_0x596425[_0xc77b('0x5c')]);});}})[_0xc77b('0x24')](handleEntityNotFound(_0x2b2c12,null))[_0xc77b('0x24')](removeEntity(_0x2b2c12,null))[_0xc77b('0x40')](handleError(_0x2b2c12,null));};exports[_0xc77b('0x5d')]=function(_0x5f52b7,_0x320f94,_0x1f4672){return db['sequelize'][_0xc77b('0x49')](function(_0x3a6068){var _0x5707c2;return db[_0xc77b('0x2c')][_0xc77b('0x45')]({'where':{'id':_0x5f52b7['params']['id']}})['then'](function(_0x5502bc){if(_0x5502bc){_0x5707c2=_0x5502bc;return _0x5502bc['addSound'](_0x5f52b7[_0xc77b('0x46')]['id'],{'transaction':_0x3a6068});}})['then'](function(_0x3e1f34){if(_0x3e1f34){return db['Sound'][_0xc77b('0x5e')]({'where':{'id':_0x5f52b7[_0xc77b('0x46')]['id']},'attributes':['id','name',_0xc77b('0x5f'),'converted_format','createdAt'],'raw':!![]});}})[_0xc77b('0x24')](function(_0x5df420){if(_0x5df420){var _0x4e6907=path[_0xc77b('0x4c')](config[_0xc77b('0x4d')],'server/files/sounds/converted',util[_0xc77b('0x60')](_0xc77b('0x61'),path[_0xc77b('0x62')](_0x5df420[_0xc77b('0x5f')],path[_0xc77b('0x63')](_0x5df420[_0xc77b('0x5f')])),_0x5df420[_0xc77b('0x64')]));var _0x31a137=path[_0xc77b('0x4c')](config[_0xc77b('0x4d')],_0xc77b('0x4e'),_0x5707c2['name'],util[_0xc77b('0x60')](_0xc77b('0x61'),_0x5df420[_0xc77b('0x2b')],_0x5df420[_0xc77b('0x64')]));fs[_0xc77b('0x65')](_0x4e6907,_0x31a137);return _0x5df420;}})[_0xc77b('0x40')](function(_0x3bbb7b){throw new db[(_0xc77b('0x5b'))][(_0xc77b('0x66'))](_0x3bbb7b[_0xc77b('0x5c')]);});})[_0xc77b('0x24')](handleEntityNotFound(_0x320f94,null))[_0xc77b('0x24')](respondWithResult(_0x320f94,0xc9))[_0xc77b('0x40')](handleError(_0x320f94,null));};exports['removeSound']=function(_0x369080,_0x5be79d,_0x31311e){return db[_0xc77b('0x48')][_0xc77b('0x49')](function(_0x2aa74d){var _0x3bd0f0;return db['VoiceMusicOnHold'][_0xc77b('0x5e')]({'where':{'id':_0x369080[_0xc77b('0x42')]['id']}})['then'](handleEntityNotFound(_0x5be79d,null))['then'](function(_0x1d37e5){if(_0x1d37e5){_0x3bd0f0=_0x1d37e5;return _0x1d37e5[_0xc77b('0x67')](_0x369080[_0xc77b('0x42')][_0xc77b('0x68')]);}})[_0xc77b('0x24')](function(_0x1d1a63){if(_0x1d1a63){return db[_0xc77b('0x69')][_0xc77b('0x5e')]({'where':{'id':_0x369080[_0xc77b('0x42')][_0xc77b('0x68')]},'attributes':['id',_0xc77b('0x2b'),'save_name',_0xc77b('0x64'),'createdAt'],'raw':!![]});}})[_0xc77b('0x24')](function(_0x24c5f0){if(_0x24c5f0){fs[_0xc77b('0x5a')](path[_0xc77b('0x4c')](_0x3bd0f0[_0xc77b('0x50')],util['format'](_0xc77b('0x61'),_0x24c5f0['name'],_0x24c5f0[_0xc77b('0x64')])));return _0x24c5f0;}})['catch'](function(_0x2f82ca){throw new db[(_0xc77b('0x5b'))]['ValidationError'](_0x2f82ca['message']);});})['then'](handleEntityNotFound(_0x5be79d,null))[_0xc77b('0x24')](respondWithStatusCode(_0x5be79d,0xcc))['catch'](handleError(_0x5be79d,null));};exports['getSounds']=function(_0x14befc,_0x4ddb1d,_0x2a96f5){var _0x3aa382={};var _0x24b116={};var _0x5a3cbf;var _0x406ec2;return db['VoiceMusicOnHold'][_0xc77b('0x5e')]({'where':{'id':_0x14befc[_0xc77b('0x42')]['id']}})[_0xc77b('0x24')](handleEntityNotFound(_0x4ddb1d,null))[_0xc77b('0x24')](function(_0x3afbe2){if(_0x3afbe2){_0x5a3cbf=_0x3afbe2;_0x24b116[_0xc77b('0x30')]=_[_0xc77b('0x32')](db['Sound']['rawAttributes']);_0x24b116['query']=_[_0xc77b('0x32')](_0x14befc['query']);_0x24b116[_0xc77b('0x33')]=_[_0xc77b('0x34')](_0x24b116[_0xc77b('0x30')],_0x24b116[_0xc77b('0x31')]);_0x3aa382[_0xc77b('0x35')]=_[_0xc77b('0x34')](_0x24b116['model'],qs[_0xc77b('0x43')](_0x14befc[_0xc77b('0x31')][_0xc77b('0x43')]));_0x3aa382[_0xc77b('0x35')]=_0x3aa382[_0xc77b('0x35')]['length']?_0x3aa382['attributes']:_0x24b116[_0xc77b('0x30')];_0x3aa382[_0xc77b('0x38')]=qs[_0xc77b('0x39')](_0x14befc[_0xc77b('0x31')][_0xc77b('0x39')]);_0x3aa382[_0xc77b('0x3b')]=qs[_0xc77b('0x33')](_['pick'](_0x14befc[_0xc77b('0x31')],_0x24b116[_0xc77b('0x33')]));if(_0x14befc['query'][_0xc77b('0x3c')]){_0x3aa382[_0xc77b('0x3b')]=_[_0xc77b('0x3a')](_0x3aa382[_0xc77b('0x3b')],{'$or':_['map'](_0x3aa382[_0xc77b('0x35')],function(_0x41f81c){var _0x587ce9={};_0x587ce9[_0x41f81c]={'$like':'%'+_0x14befc['query'][_0xc77b('0x3c')]+'%'};return _0x587ce9;})});}_0x3aa382=_['merge']({},_0x3aa382,_0x14befc[_0xc77b('0x3d')]);return _0x5a3cbf[_0xc77b('0x6a')](_0x3aa382);}})[_0xc77b('0x24')](function(_0x47c57f){if(_0x47c57f){_0x406ec2=_0x47c57f[_0xc77b('0x6b')];if(!_0x14befc[_0xc77b('0x31')][_0xc77b('0x36')](_0xc77b('0x37'))){_0x3aa382[_0xc77b('0x1e')]=qs[_0xc77b('0x1e')](_0x14befc[_0xc77b('0x31')][_0xc77b('0x1e')]);_0x3aa382['offset']=qs['offset'](_0x14befc[_0xc77b('0x31')][_0xc77b('0x1c')]);}return _0x5a3cbf[_0xc77b('0x6a')](_0x3aa382);}})[_0xc77b('0x24')](function(_0x3792b2){if(_0x3792b2){return _0x3792b2?{'count':_0x406ec2,'rows':_0x3792b2}:null;}})[_0xc77b('0x24')](respondWithResult(_0x4ddb1d,null))[_0xc77b('0x40')](handleError(_0x4ddb1d,null));};