Built motion from commit 5b761a7b.|2.5.36
[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 _0x9a95=['merge','type','VIRTUAL','options','VoiceMusicOnHold','includeAll','include','findAll','rows','show','find','catch','body','params','transaction','mode','files','join','server/files/moh','create','mkdirSync','directory','0777','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','readdirSync','forEach','unlinkSync','Sequelize','ValidationError','message','sequelize','addSound','Sound','findOne','save_name','createdAt','root','server/files/sounds/converted','format','basename','extname','converted_format','symlinkSync','removeSound','id2','order','getSounds','hasOwnProperty','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','get','MusicOnHolds','stack','name','index','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','limit','sort','where','pick','filter'];(function(_0x409ad2,_0x5129c1){var _0x595b5f=function(_0x592974){while(--_0x592974){_0x409ad2['push'](_0x409ad2['shift']());}};_0x595b5f(++_0x5129c1);}(_0x9a95,0xaa));var _0x59a9=function(_0x3626ab,_0x46cf71){_0x3626ab=_0x3626ab-0x0;var _0x3d3f52=_0x9a95[_0x3626ab];return _0x3d3f52;};'use strict';var emlformat=require(_0x59a9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x59a9('0x1'));var jsonpatch=require(_0x59a9('0x2'));var rp=require(_0x59a9('0x3'));var moment=require(_0x59a9('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x59a9('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x59a9('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x59a9('0x7'));var _=require(_0x59a9('0x8'));var squel=require(_0x59a9('0x9'));var crypto=require(_0x59a9('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x59a9('0xb'));var toCsv=require(_0x59a9('0x6'));var querystring=require(_0x59a9('0xc'));var Papa=require(_0x59a9('0xd'));var Redis=require('ioredis');var authService=require(_0x59a9('0xe'));var qs=require(_0x59a9('0xf'));var as=require(_0x59a9('0x10'));var hardwareService=require(_0x59a9('0x11'));var logger=require(_0x59a9('0x12'))(_0x59a9('0x13'));var utils=require(_0x59a9('0x14'));var config=require(_0x59a9('0x15'));var licenseUtil=require(_0x59a9('0x16'));var db=require(_0x59a9('0x17'))['db'];function respondWithStatusCode(_0x54a84a,_0x42b865){_0x42b865=_0x42b865||0xcc;return function(_0x55bb03){if(_0x55bb03){return _0x54a84a[_0x59a9('0x18')](_0x42b865);}return _0x54a84a[_0x59a9('0x19')](_0x42b865)[_0x59a9('0x1a')]();};}function respondWithResult(_0x249774,_0x34e8c0){_0x34e8c0=_0x34e8c0||0xc8;return function(_0xc6f7de){if(_0xc6f7de){return _0x249774['status'](_0x34e8c0)[_0x59a9('0x1b')](_0xc6f7de);}};}function respondWithFilteredResult(_0x677650,_0x1bd65d){return function(_0x5cf2b0){if(_0x5cf2b0){var _0x1c8b82=typeof _0x1bd65d['offset']===_0x59a9('0x1c')&&typeof _0x1bd65d['limit']===_0x59a9('0x1c');var _0x22bc91=_0x5cf2b0[_0x59a9('0x1d')];var _0x3e8e63=_0x1c8b82?0x0:_0x1bd65d[_0x59a9('0x1e')];var _0x21998e=_0x1c8b82?_0x5cf2b0[_0x59a9('0x1d')]:_0x1bd65d[_0x59a9('0x1e')]+_0x1bd65d['limit'];var _0x16849e;if(_0x21998e>=_0x22bc91){_0x21998e=_0x22bc91;_0x16849e=0xc8;}else{_0x16849e=0xce;}_0x677650['status'](_0x16849e);return _0x677650[_0x59a9('0x1f')](_0x59a9('0x20'),_0x3e8e63+'-'+_0x21998e+'/'+_0x22bc91)[_0x59a9('0x1b')](_0x5cf2b0);}return null;};}function patchUpdates(_0x2b7b8d){return function(_0x4d34dc){try{jsonpatch[_0x59a9('0x21')](_0x4d34dc,_0x2b7b8d,!![]);}catch(_0x4fd389){return BPromise[_0x59a9('0x22')](_0x4fd389);}return _0x4d34dc[_0x59a9('0x23')]();};}function saveUpdates(_0x401bcc,_0x4da310){return function(_0x48adfc){if(_0x48adfc){return _0x48adfc[_0x59a9('0x24')](_0x401bcc)[_0x59a9('0x25')](function(_0x2872a7){return _0x2872a7;});}return null;};}function removeEntity(_0x30fd47,_0x19b10a){return function(_0x148a01){if(_0x148a01){return _0x148a01['destroy']()['then'](function(){var _0x1b15a7=_0x148a01[_0x59a9('0x26')]({'plain':!![]});var _0x25ce36=_0x59a9('0x27');return db['UserProfileResource']['destroy']({'where':{'type':_0x25ce36,'resourceId':_0x1b15a7['id']}})['then'](function(){return _0x148a01;});})['then'](function(){_0x30fd47[_0x59a9('0x19')](0xcc)[_0x59a9('0x1a')]();});}};}function handleEntityNotFound(_0x509157,_0x40513f){return function(_0x3db1d3){if(!_0x3db1d3){_0x509157['sendStatus'](0x194);}return _0x3db1d3;};}function handleError(_0x23ea4c,_0x3104aa){_0x3104aa=_0x3104aa||0x1f4;return function(_0x4847ec){logger['error'](_0x4847ec[_0x59a9('0x28')]);if(_0x4847ec['name']){delete _0x4847ec[_0x59a9('0x29')];}_0x23ea4c[_0x59a9('0x19')](_0x3104aa)['send'](_0x4847ec);};}exports[_0x59a9('0x2a')]=function(_0x58c643,_0x2aa2a4){var _0x133e5d={},_0x1cb14a={},_0xc6bb0f={'count':0x0,'rows':[]};var _0x33b6b3=_[_0x59a9('0x2b')](db['VoiceMusicOnHold'][_0x59a9('0x2c')],function(_0x200b4d){return{'name':_0x200b4d[_0x59a9('0x2d')],'type':_0x200b4d['type'][_0x59a9('0x2e')]};});_0x1cb14a[_0x59a9('0x2f')]=_[_0x59a9('0x2b')](_0x33b6b3,_0x59a9('0x29'));_0x1cb14a[_0x59a9('0x30')]=_[_0x59a9('0x31')](_0x58c643[_0x59a9('0x30')]);_0x1cb14a[_0x59a9('0x32')]=_[_0x59a9('0x33')](_0x1cb14a['model'],_0x1cb14a[_0x59a9('0x30')]);_0x133e5d[_0x59a9('0x34')]=_['intersection'](_0x1cb14a['model'],qs[_0x59a9('0x35')](_0x58c643[_0x59a9('0x30')]['fields']));_0x133e5d[_0x59a9('0x34')]=_0x133e5d[_0x59a9('0x34')][_0x59a9('0x36')]?_0x133e5d[_0x59a9('0x34')]:_0x1cb14a[_0x59a9('0x2f')];if(!_0x58c643[_0x59a9('0x30')]['hasOwnProperty']('nolimit')){_0x133e5d[_0x59a9('0x37')]=qs[_0x59a9('0x37')](_0x58c643[_0x59a9('0x30')]['limit']);_0x133e5d[_0x59a9('0x1e')]=qs[_0x59a9('0x1e')](_0x58c643[_0x59a9('0x30')][_0x59a9('0x1e')]);}_0x133e5d['order']=qs[_0x59a9('0x38')](_0x58c643['query']['sort']);delete _0x58c643[_0x59a9('0x30')]['sort'];_0x133e5d[_0x59a9('0x39')]=qs['filters'](_[_0x59a9('0x3a')](_0x58c643['query'],_0x1cb14a[_0x59a9('0x32')]),_0x33b6b3);if(_0x58c643['query'][_0x59a9('0x3b')]){_0x133e5d[_0x59a9('0x39')]=_[_0x59a9('0x3c')](_0x133e5d[_0x59a9('0x39')],{'$or':_['map'](_0x33b6b3,function(_0x10271f){if(_0x10271f[_0x59a9('0x3d')]!==_0x59a9('0x3e')){var _0x48c24f={};_0x48c24f[_0x10271f[_0x59a9('0x29')]]={'$like':'%'+_0x58c643[_0x59a9('0x30')][_0x59a9('0x3b')]+'%'};return _0x48c24f;}})});}_0x133e5d=_[_0x59a9('0x3c')]({},_0x133e5d,_0x58c643[_0x59a9('0x3f')]);var _0x57d6d1={'where':_0x133e5d[_0x59a9('0x39')]};return db[_0x59a9('0x40')]['count'](_0x57d6d1)[_0x59a9('0x25')](function(_0x53e755){_0xc6bb0f['count']=_0x53e755;if(_0x58c643[_0x59a9('0x30')][_0x59a9('0x41')]){_0x133e5d[_0x59a9('0x42')]=[{'all':!![]}];}return db[_0x59a9('0x40')][_0x59a9('0x43')](_0x133e5d);})[_0x59a9('0x25')](function(_0x32a3d9){_0xc6bb0f[_0x59a9('0x44')]=_0x32a3d9;return _0xc6bb0f;})[_0x59a9('0x25')](respondWithFilteredResult(_0x2aa2a4,_0x133e5d))['catch'](handleError(_0x2aa2a4,null));};exports[_0x59a9('0x45')]=function(_0x2962c0,_0x5d5673){var _0x530a5c={'raw':![],'where':{'id':_0x2962c0['params']['id']}},_0x2944af={};_0x2944af[_0x59a9('0x2f')]=_['keys'](db[_0x59a9('0x40')][_0x59a9('0x2c')]);_0x2944af['query']=_[_0x59a9('0x31')](_0x2962c0['query']);_0x2944af[_0x59a9('0x32')]=_[_0x59a9('0x33')](_0x2944af[_0x59a9('0x2f')],_0x2944af[_0x59a9('0x30')]);_0x530a5c[_0x59a9('0x34')]=_[_0x59a9('0x33')](_0x2944af[_0x59a9('0x2f')],qs['fields'](_0x2962c0[_0x59a9('0x30')]['fields']));_0x530a5c[_0x59a9('0x34')]=_0x530a5c['attributes'][_0x59a9('0x36')]?_0x530a5c['attributes']:_0x2944af[_0x59a9('0x2f')];if(_0x2962c0[_0x59a9('0x30')][_0x59a9('0x41')]){_0x530a5c['include']=[{'all':!![]}];}_0x530a5c=_[_0x59a9('0x3c')]({},_0x530a5c,_0x2962c0['options']);return db[_0x59a9('0x40')][_0x59a9('0x46')](_0x530a5c)[_0x59a9('0x25')](handleEntityNotFound(_0x5d5673,null))[_0x59a9('0x25')](respondWithResult(_0x5d5673,null))[_0x59a9('0x47')](handleError(_0x5d5673,null));};exports[_0x59a9('0x24')]=function(_0x2e12c6,_0x539e01){if(_0x2e12c6[_0x59a9('0x48')]['id']){delete _0x2e12c6['body']['id'];}return db[_0x59a9('0x40')][_0x59a9('0x46')]({'where':{'id':_0x2e12c6[_0x59a9('0x49')]['id']}})[_0x59a9('0x25')](handleEntityNotFound(_0x539e01,null))[_0x59a9('0x25')](saveUpdates(_0x2e12c6['body'],null))[_0x59a9('0x25')](respondWithResult(_0x539e01,null))[_0x59a9('0x47')](handleError(_0x539e01,null));};exports['create']=function(_0x48cbb7,_0x4feb74,_0x2155b3){return db['sequelize'][_0x59a9('0x4a')](function(_0x578af2){if(_0x48cbb7['body'][_0x59a9('0x4b')]===_0x59a9('0x4c')){_0x48cbb7[_0x59a9('0x48')]['directory']=path[_0x59a9('0x4d')](config['root'],_0x59a9('0x4e'),_0x48cbb7[_0x59a9('0x48')][_0x59a9('0x29')]);}return db[_0x59a9('0x40')][_0x59a9('0x4f')](_0x48cbb7[_0x59a9('0x48')],{'transaction':_0x578af2})['then'](function(_0x5e0cd3){if(_0x48cbb7['body'][_0x59a9('0x4b')]===_0x59a9('0x4c')){fs[_0x59a9('0x50')](_0x5e0cd3[_0x59a9('0x51')],parseInt(_0x59a9('0x52'),0x8));}var _0xbc0ce7=_0x48cbb7[_0x59a9('0x53')][_0x59a9('0x26')]({'plain':!![]});if(!_0xbc0ce7)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xbc0ce7['role']===_0x59a9('0x53')){var _0x528f4a=_0x5e0cd3[_0x59a9('0x26')]({'plain':!![]});return db[_0x59a9('0x54')][_0x59a9('0x46')]({'where':{'name':_0x59a9('0x27'),'userProfileId':_0xbc0ce7[_0x59a9('0x55')]},'raw':!![]})['then'](function(_0x14b039){if(_0x14b039&&_0x14b039[_0x59a9('0x56')]===0x0){return db[_0x59a9('0x57')]['create']({'name':_0x528f4a[_0x59a9('0x29')],'resourceId':_0x528f4a['id'],'type':_0x14b039[_0x59a9('0x29')],'sectionId':_0x14b039['id']},{})[_0x59a9('0x25')](function(){return _0x5e0cd3;});}else{return _0x5e0cd3;}})[_0x59a9('0x47')](function(_0x2db4d9){logger[_0x59a9('0x58')](_0x59a9('0x59'),_0x2db4d9);});}return _0x5e0cd3;});})['then'](respondWithResult(_0x4feb74,0xc9))[_0x59a9('0x47')](handleError(_0x4feb74,null));};exports[_0x59a9('0x5a')]=function(_0x5b7dbe,_0x5929ec,_0x488580){var _0x23b5d9;return db['VoiceMusicOnHold'][_0x59a9('0x46')]({'where':{'id':_0x5b7dbe[_0x59a9('0x49')]['id']}})[_0x59a9('0x25')](function(_0x4b3604){if(_0x4b3604){return db['sequelize'][_0x59a9('0x4a')](function(_0x3e3452){return _0x4b3604['destroy']({'transaction':_0x3e3452,'raw':!![]})[_0x59a9('0x25')](function(_0x4327ee){if(_0x4327ee[_0x59a9('0x51')]){fs[_0x59a9('0x5b')](_0x4327ee[_0x59a9('0x51')])[_0x59a9('0x5c')](function(_0x1262b4){fs[_0x59a9('0x5d')](path[_0x59a9('0x4d')](_0x4327ee[_0x59a9('0x51')],_0x1262b4));});fs['rmdirSync'](_0x4327ee[_0x59a9('0x51')]);}return _0x4327ee;});})['catch'](function(_0x2e8c22){throw new db[(_0x59a9('0x5e'))][(_0x59a9('0x5f'))](_0x2e8c22[_0x59a9('0x60')]);});}})['then'](handleEntityNotFound(_0x5929ec,null))[_0x59a9('0x25')](removeEntity(_0x5929ec,null))['catch'](handleError(_0x5929ec,null));};exports['addSound']=function(_0x176cd8,_0x44952f,_0x3028f1){return db[_0x59a9('0x61')][_0x59a9('0x4a')](function(_0x536ce1){var _0x1cd851;return db[_0x59a9('0x40')]['find']({'where':{'id':_0x176cd8[_0x59a9('0x49')]['id']}})[_0x59a9('0x25')](function(_0x37a044){if(_0x37a044){_0x1cd851=_0x37a044;return _0x37a044[_0x59a9('0x62')](_0x176cd8['body']['id'],{'transaction':_0x536ce1});}})[_0x59a9('0x25')](function(_0x490e1d){if(_0x490e1d){return db[_0x59a9('0x63')][_0x59a9('0x64')]({'where':{'id':_0x176cd8[_0x59a9('0x48')]['id']},'attributes':['id','name',_0x59a9('0x65'),'converted_format',_0x59a9('0x66')],'raw':!![]});}})[_0x59a9('0x25')](function(_0x12a928){if(_0x12a928){var _0xe814c8=path[_0x59a9('0x4d')](config[_0x59a9('0x67')],_0x59a9('0x68'),util[_0x59a9('0x69')]('%s.%s',path[_0x59a9('0x6a')](_0x12a928[_0x59a9('0x65')],path[_0x59a9('0x6b')](_0x12a928[_0x59a9('0x65')])),_0x12a928[_0x59a9('0x6c')]));var _0xdaa669=path[_0x59a9('0x4d')](config['root'],_0x59a9('0x4e'),_0x1cd851['name'],util[_0x59a9('0x69')]('%s.%s',_0x12a928['name'],_0x12a928['converted_format']));fs[_0x59a9('0x6d')](_0xe814c8,_0xdaa669);return _0x12a928;}})[_0x59a9('0x47')](function(_0x935f55){throw new db[(_0x59a9('0x5e'))][(_0x59a9('0x5f'))](_0x935f55[_0x59a9('0x60')]);});})[_0x59a9('0x25')](handleEntityNotFound(_0x44952f,null))[_0x59a9('0x25')](respondWithResult(_0x44952f,0xc9))['catch'](handleError(_0x44952f,null));};exports[_0x59a9('0x6e')]=function(_0x4b2f2b,_0x1f1738,_0x2f223d){return db['sequelize'][_0x59a9('0x4a')](function(_0x4a9bd2){var _0x52b843;return db[_0x59a9('0x40')][_0x59a9('0x64')]({'where':{'id':_0x4b2f2b[_0x59a9('0x49')]['id']}})[_0x59a9('0x25')](handleEntityNotFound(_0x1f1738,null))[_0x59a9('0x25')](function(_0x35aa28){if(_0x35aa28){_0x52b843=_0x35aa28;return _0x35aa28[_0x59a9('0x6e')](_0x4b2f2b['params'][_0x59a9('0x6f')]);}})[_0x59a9('0x25')](function(_0x57233a){if(_0x57233a){return db[_0x59a9('0x63')][_0x59a9('0x64')]({'where':{'id':_0x4b2f2b[_0x59a9('0x49')][_0x59a9('0x6f')]},'attributes':['id',_0x59a9('0x29'),_0x59a9('0x65'),_0x59a9('0x6c'),'createdAt'],'raw':!![]});}})[_0x59a9('0x25')](function(_0x8bd118){if(_0x8bd118){fs[_0x59a9('0x5d')](path[_0x59a9('0x4d')](_0x52b843[_0x59a9('0x51')],util[_0x59a9('0x69')]('%s.%s',_0x8bd118[_0x59a9('0x29')],_0x8bd118[_0x59a9('0x6c')])));return _0x8bd118;}})[_0x59a9('0x47')](function(_0x392127){throw new db['Sequelize'][(_0x59a9('0x5f'))](_0x392127['message']);});})[_0x59a9('0x25')](handleEntityNotFound(_0x1f1738,null))[_0x59a9('0x25')](respondWithStatusCode(_0x1f1738,0xcc))['catch'](handleError(_0x1f1738,null));};exports['getSounds']=function(_0x21faee,_0x1af42f,_0x197471){var _0x116823={};var _0x2fe522={};var _0x22626c;var _0x283199;return db[_0x59a9('0x40')][_0x59a9('0x64')]({'where':{'id':_0x21faee[_0x59a9('0x49')]['id']}})['then'](handleEntityNotFound(_0x1af42f,null))[_0x59a9('0x25')](function(_0x20105e){if(_0x20105e){_0x22626c=_0x20105e;_0x2fe522['model']=_[_0x59a9('0x31')](db[_0x59a9('0x63')][_0x59a9('0x2c')]);_0x2fe522[_0x59a9('0x30')]=_[_0x59a9('0x31')](_0x21faee[_0x59a9('0x30')]);_0x2fe522[_0x59a9('0x32')]=_['intersection'](_0x2fe522[_0x59a9('0x2f')],_0x2fe522[_0x59a9('0x30')]);_0x116823[_0x59a9('0x34')]=_['intersection'](_0x2fe522[_0x59a9('0x2f')],qs[_0x59a9('0x35')](_0x21faee[_0x59a9('0x30')][_0x59a9('0x35')]));_0x116823[_0x59a9('0x34')]=_0x116823[_0x59a9('0x34')][_0x59a9('0x36')]?_0x116823[_0x59a9('0x34')]:_0x2fe522['model'];_0x116823[_0x59a9('0x70')]=qs[_0x59a9('0x38')](_0x21faee['query']['sort']);_0x116823[_0x59a9('0x39')]=qs[_0x59a9('0x32')](_[_0x59a9('0x3a')](_0x21faee[_0x59a9('0x30')],_0x2fe522[_0x59a9('0x32')]));if(_0x21faee[_0x59a9('0x30')][_0x59a9('0x3b')]){_0x116823[_0x59a9('0x39')]=_[_0x59a9('0x3c')](_0x116823[_0x59a9('0x39')],{'$or':_[_0x59a9('0x2b')](_0x116823[_0x59a9('0x34')],function(_0x3f7279){var _0x341722={};_0x341722[_0x3f7279]={'$like':'%'+_0x21faee[_0x59a9('0x30')][_0x59a9('0x3b')]+'%'};return _0x341722;})});}_0x116823=_['merge']({},_0x116823,_0x21faee[_0x59a9('0x3f')]);return _0x22626c[_0x59a9('0x71')](_0x116823);}})[_0x59a9('0x25')](function(_0x15e463){if(_0x15e463){_0x283199=_0x15e463[_0x59a9('0x36')];if(!_0x21faee[_0x59a9('0x30')][_0x59a9('0x72')]('nolimit')){_0x116823[_0x59a9('0x37')]=qs[_0x59a9('0x37')](_0x21faee['query'][_0x59a9('0x37')]);_0x116823[_0x59a9('0x1e')]=qs[_0x59a9('0x1e')](_0x21faee[_0x59a9('0x30')][_0x59a9('0x1e')]);}return _0x22626c['getSounds'](_0x116823);}})[_0x59a9('0x25')](function(_0x3ae27b){if(_0x3ae27b){return _0x3ae27b?{'count':_0x283199,'rows':_0x3ae27b}:null;}})[_0x59a9('0x25')](respondWithResult(_0x1af42f,null))[_0x59a9('0x47')](handleError(_0x1af42f,null));};