43946dbf96b53032db99ded3c4fed9389adb7a47
[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 _0x445a=['userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','unlinkSync','join','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','symlinkSync','removeSound','id2','getSounds','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','set','Content-Range','reject','update','destroy','then','get','UserProfileResource','error','stack','name','send','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','catch','show','params','fields','includeAll','find','body','sequelize','transaction','files','directory','root','server/files/moh','create','mode','mkdirSync','0777','user','UserProfileSection','MusicOnHolds'];(function(_0x5c2333,_0x12d609){var _0x1a55f1=function(_0x278565){while(--_0x278565){_0x5c2333['push'](_0x5c2333['shift']());}};_0x1a55f1(++_0x12d609);}(_0x445a,0x167));var _0xa445=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x445a[_0xa464c9];return _0x3d73c4;};'use strict';var pdf=require(_0xa445('0x0'));var emlformat=require(_0xa445('0x1'));var rimraf=require(_0xa445('0x2'));var zipdir=require(_0xa445('0x3'));var jsonpatch=require(_0xa445('0x4'));var rp=require('request-promise');var moment=require(_0xa445('0x5'));var BPromise=require(_0xa445('0x6'));var Mustache=require(_0xa445('0x7'));var util=require(_0xa445('0x8'));var path=require(_0xa445('0x9'));var sox=require(_0xa445('0xa'));var csv=require(_0xa445('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa445('0xc'));var squel=require(_0xa445('0xd'));var crypto=require(_0xa445('0xe'));var jsforce=require(_0xa445('0xf'));var deskjs=require(_0xa445('0x10'));var toCsv=require(_0xa445('0xb'));var querystring=require(_0xa445('0x11'));var Papa=require(_0xa445('0x12'));var Redis=require('ioredis');var authService=require(_0xa445('0x13'));var qs=require(_0xa445('0x14'));var as=require(_0xa445('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa445('0x16'));var utils=require(_0xa445('0x17'));var config=require(_0xa445('0x18'));var licenseUtil=require(_0xa445('0x19'));var db=require(_0xa445('0x1a'))['db'];function respondWithStatusCode(_0x2d6ec5,_0x2abbc4){_0x2abbc4=_0x2abbc4||0xcc;return function(_0x33b254){if(_0x33b254){return _0x2d6ec5[_0xa445('0x1b')](_0x2abbc4);}return _0x2d6ec5[_0xa445('0x1c')](_0x2abbc4)[_0xa445('0x1d')]();};}function respondWithResult(_0x495b9d,_0xd96629){_0xd96629=_0xd96629||0xc8;return function(_0x12c08d){if(_0x12c08d){return _0x495b9d[_0xa445('0x1c')](_0xd96629)[_0xa445('0x1e')](_0x12c08d);}};}function respondWithFilteredResult(_0x25bd5f,_0x4b12d9){return function(_0x4f803f){if(_0x4f803f){var _0x37e59e=_0x4f803f[_0xa445('0x1f')],_0xca0a70=_0x4b12d9[_0xa445('0x20')],_0x3b1d46=_0x4b12d9[_0xa445('0x20')]+_0x4b12d9['limit'],_0x3e24fb;if(_0x3b1d46>=_0x37e59e){_0x3b1d46=_0x37e59e;_0x3e24fb=0xc8;}else{_0x3e24fb=0xce;}_0x25bd5f[_0xa445('0x1c')](_0x3e24fb);return _0x25bd5f[_0xa445('0x21')](_0xa445('0x22'),_0xca0a70+'-'+_0x3b1d46+'/'+_0x37e59e)[_0xa445('0x1e')](_0x4f803f);}return null;};}function patchUpdates(_0xbe9701){return function(_0x1796b8){try{jsonpatch['apply'](_0x1796b8,_0xbe9701,!![]);}catch(_0x1d371e){return BPromise[_0xa445('0x23')](_0x1d371e);}return _0x1796b8['save']();};}function saveUpdates(_0xb8761b,_0x5c4185){return function(_0x5a0989){if(_0x5a0989){return _0x5a0989[_0xa445('0x24')](_0xb8761b)['then'](function(_0x293827){return _0x293827;});}return null;};}function removeEntity(_0x3f7edd,_0x4cf36c){return function(_0x3d6b1f){if(_0x3d6b1f){return _0x3d6b1f[_0xa445('0x25')]()[_0xa445('0x26')](function(){var _0x1b867d=_0x3d6b1f[_0xa445('0x27')]({'plain':!![]});var _0x3a8d5a='MusicOnHolds';return db[_0xa445('0x28')][_0xa445('0x25')]({'where':{'type':_0x3a8d5a,'resourceId':_0x1b867d['id']}})[_0xa445('0x26')](function(){return _0x3d6b1f;});})[_0xa445('0x26')](function(){_0x3f7edd[_0xa445('0x1c')](0xcc)[_0xa445('0x1d')]();});}};}function handleEntityNotFound(_0x106be1,_0x370a1d){return function(_0x1bda0c){if(!_0x1bda0c){_0x106be1[_0xa445('0x1b')](0x194);}return _0x1bda0c;};}function handleError(_0x1cf8ce,_0x2368c5){_0x2368c5=_0x2368c5||0x1f4;return function(_0x2004c1){logger[_0xa445('0x29')](_0x2004c1[_0xa445('0x2a')]);if(_0x2004c1[_0xa445('0x2b')]){delete _0x2004c1[_0xa445('0x2b')];}_0x1cf8ce[_0xa445('0x1c')](_0x2368c5)[_0xa445('0x2c')](_0x2004c1);};}exports['index']=function(_0xe22d75,_0x2cd9a6){var _0x5aa0c4={},_0x501191={},_0x70af8d={'count':0x0,'rows':[]};var _0x23a063=_[_0xa445('0x2d')](db[_0xa445('0x2e')][_0xa445('0x2f')],function(_0x308a62){return{'name':_0x308a62[_0xa445('0x30')],'type':_0x308a62[_0xa445('0x31')][_0xa445('0x32')]};});_0x501191[_0xa445('0x33')]=_[_0xa445('0x2d')](_0x23a063,_0xa445('0x2b'));_0x501191[_0xa445('0x34')]=_[_0xa445('0x35')](_0xe22d75[_0xa445('0x34')]);_0x501191['filters']=_[_0xa445('0x36')](_0x501191[_0xa445('0x33')],_0x501191[_0xa445('0x34')]);_0x5aa0c4['attributes']=_[_0xa445('0x36')](_0x501191[_0xa445('0x33')],qs['fields'](_0xe22d75[_0xa445('0x34')]['fields']));_0x5aa0c4[_0xa445('0x37')]=_0x5aa0c4['attributes'][_0xa445('0x38')]?_0x5aa0c4[_0xa445('0x37')]:_0x501191[_0xa445('0x33')];if(!_0xe22d75[_0xa445('0x34')][_0xa445('0x39')](_0xa445('0x3a'))){_0x5aa0c4[_0xa445('0x3b')]=qs[_0xa445('0x3b')](_0xe22d75['query']['limit']);_0x5aa0c4[_0xa445('0x20')]=qs[_0xa445('0x20')](_0xe22d75[_0xa445('0x34')][_0xa445('0x20')]);}_0x5aa0c4[_0xa445('0x3c')]=qs[_0xa445('0x3d')](_0xe22d75[_0xa445('0x34')]['sort']);_0x5aa0c4[_0xa445('0x3e')]=qs[_0xa445('0x3f')](_[_0xa445('0x40')](_0xe22d75['query'],_0x501191[_0xa445('0x3f')]),_0x23a063);if(_0xe22d75[_0xa445('0x34')][_0xa445('0x41')]){_0x5aa0c4[_0xa445('0x3e')]=_['merge'](_0x5aa0c4[_0xa445('0x3e')],{'$or':_[_0xa445('0x2d')](_0x23a063,function(_0x5ac0ed){if(_0x5ac0ed[_0xa445('0x31')]!==_0xa445('0x42')){var _0x3a6e57={};_0x3a6e57[_0x5ac0ed[_0xa445('0x2b')]]={'$like':'%'+_0xe22d75[_0xa445('0x34')][_0xa445('0x41')]+'%'};return _0x3a6e57;}})});}_0x5aa0c4=_[_0xa445('0x43')]({},_0x5aa0c4,_0xe22d75[_0xa445('0x44')]);var _0x3d6027={'where':_0x5aa0c4[_0xa445('0x3e')]};return db[_0xa445('0x2e')][_0xa445('0x1f')](_0x3d6027)[_0xa445('0x26')](function(_0xde73ed){_0x70af8d[_0xa445('0x1f')]=_0xde73ed;if(_0xe22d75[_0xa445('0x34')]['includeAll']){_0x5aa0c4['include']=[{'all':!![]}];}return db[_0xa445('0x2e')]['findAll'](_0x5aa0c4);})[_0xa445('0x26')](function(_0x26feb6){_0x70af8d['rows']=_0x26feb6;return _0x70af8d;})[_0xa445('0x26')](respondWithFilteredResult(_0x2cd9a6,_0x5aa0c4))[_0xa445('0x45')](handleError(_0x2cd9a6,null));};exports[_0xa445('0x46')]=function(_0x3990ed,_0x2f3bf4){var _0x4e6140={'raw':![],'where':{'id':_0x3990ed[_0xa445('0x47')]['id']}},_0x258cc2={};_0x258cc2['model']=_[_0xa445('0x35')](db['VoiceMusicOnHold'][_0xa445('0x2f')]);_0x258cc2[_0xa445('0x34')]=_['keys'](_0x3990ed['query']);_0x258cc2[_0xa445('0x3f')]=_[_0xa445('0x36')](_0x258cc2['model'],_0x258cc2['query']);_0x4e6140[_0xa445('0x37')]=_['intersection'](_0x258cc2[_0xa445('0x33')],qs[_0xa445('0x48')](_0x3990ed[_0xa445('0x34')][_0xa445('0x48')]));_0x4e6140[_0xa445('0x37')]=_0x4e6140['attributes'][_0xa445('0x38')]?_0x4e6140['attributes']:_0x258cc2[_0xa445('0x33')];if(_0x3990ed['query'][_0xa445('0x49')]){_0x4e6140['include']=[{'all':!![]}];}_0x4e6140=_['merge']({},_0x4e6140,_0x3990ed[_0xa445('0x44')]);return db[_0xa445('0x2e')][_0xa445('0x4a')](_0x4e6140)['then'](handleEntityNotFound(_0x2f3bf4,null))[_0xa445('0x26')](respondWithResult(_0x2f3bf4,null))[_0xa445('0x45')](handleError(_0x2f3bf4,null));};exports[_0xa445('0x24')]=function(_0x4fcf9c,_0x3b1c31){if(_0x4fcf9c[_0xa445('0x4b')]['id']){delete _0x4fcf9c[_0xa445('0x4b')]['id'];}return db['VoiceMusicOnHold'][_0xa445('0x4a')]({'where':{'id':_0x4fcf9c[_0xa445('0x47')]['id']}})[_0xa445('0x26')](handleEntityNotFound(_0x3b1c31,null))['then'](saveUpdates(_0x4fcf9c[_0xa445('0x4b')],null))['then'](respondWithResult(_0x3b1c31,null))[_0xa445('0x45')](handleError(_0x3b1c31,null));};exports['create']=function(_0x16e125,_0x54aa7a,_0x5eada8){return db[_0xa445('0x4c')][_0xa445('0x4d')](function(_0x5e2dc7){if(_0x16e125[_0xa445('0x4b')]['mode']===_0xa445('0x4e')){_0x16e125[_0xa445('0x4b')][_0xa445('0x4f')]=path['join'](config[_0xa445('0x50')],_0xa445('0x51'),_0x16e125[_0xa445('0x4b')]['name']);}return db[_0xa445('0x2e')][_0xa445('0x52')](_0x16e125[_0xa445('0x4b')],{'transaction':_0x5e2dc7})[_0xa445('0x26')](function(_0x370238){if(_0x16e125[_0xa445('0x4b')][_0xa445('0x53')]===_0xa445('0x4e')){fs[_0xa445('0x54')](_0x370238[_0xa445('0x4f')],parseInt(_0xa445('0x55'),0x8));}var _0x4f57e5=_0x16e125[_0xa445('0x56')][_0xa445('0x27')]({'plain':!![]});if(!_0x4f57e5)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4f57e5['role']===_0xa445('0x56')){var _0x32723c=_0x370238[_0xa445('0x27')]({'plain':!![]});return db[_0xa445('0x57')][_0xa445('0x4a')]({'where':{'name':_0xa445('0x58'),'userProfileId':_0x4f57e5[_0xa445('0x59')]},'raw':!![]})[_0xa445('0x26')](function(_0x9bbd4b){if(_0x9bbd4b&&_0x9bbd4b[_0xa445('0x5a')]===0x0){return db[_0xa445('0x28')][_0xa445('0x52')]({'name':_0x32723c[_0xa445('0x2b')],'resourceId':_0x32723c['id'],'type':_0x9bbd4b['name'],'sectionId':_0x9bbd4b['id']},{})[_0xa445('0x26')](function(){return _0x370238;});}else{return _0x370238;}})[_0xa445('0x45')](function(_0x271721){logger[_0xa445('0x29')](_0xa445('0x5b'),_0x271721);});}return _0x370238;});})[_0xa445('0x26')](respondWithResult(_0x54aa7a,0xc9))['catch'](handleError(_0x54aa7a,null));};exports[_0xa445('0x25')]=function(_0x2615a1,_0x465380,_0x48515e){var _0x2ca074;return db[_0xa445('0x2e')][_0xa445('0x4a')]({'where':{'id':_0x2615a1['params']['id']}})[_0xa445('0x26')](function(_0x1f88ff){if(_0x1f88ff){return db[_0xa445('0x4c')][_0xa445('0x4d')](function(_0x1ac995){return _0x1f88ff['destroy']({'transaction':_0x1ac995,'raw':!![]})['then'](function(_0x26813f){if(_0x26813f['directory']){fs['readdirSync'](_0x26813f[_0xa445('0x4f')])[_0xa445('0x5c')](function(_0x32a12b){fs[_0xa445('0x5d')](path[_0xa445('0x5e')](_0x26813f[_0xa445('0x4f')],_0x32a12b));});fs[_0xa445('0x5f')](_0x26813f['directory']);}return _0x26813f;});})[_0xa445('0x45')](function(_0x4cf56d){throw new db[(_0xa445('0x60'))][(_0xa445('0x61'))](_0x4cf56d[_0xa445('0x62')]);});}})[_0xa445('0x26')](handleEntityNotFound(_0x465380,null))[_0xa445('0x26')](removeEntity(_0x465380,null))['catch'](handleError(_0x465380,null));};exports[_0xa445('0x63')]=function(_0x57908d,_0x5e0d69,_0x197597){return db[_0xa445('0x4c')][_0xa445('0x4d')](function(_0x165d7d){var _0x425cab;return db['VoiceMusicOnHold'][_0xa445('0x4a')]({'where':{'id':_0x57908d[_0xa445('0x47')]['id']}})['then'](function(_0x50a565){if(_0x50a565){_0x425cab=_0x50a565;return _0x50a565[_0xa445('0x63')](_0x57908d[_0xa445('0x4b')]['id'],{'transaction':_0x165d7d});}})[_0xa445('0x26')](function(_0xa681e7){if(_0xa681e7){return db[_0xa445('0x64')][_0xa445('0x65')]({'where':{'id':_0x57908d['body']['id']},'attributes':['id',_0xa445('0x2b'),_0xa445('0x66'),_0xa445('0x67'),_0xa445('0x68')],'raw':!![]});}})[_0xa445('0x26')](function(_0x5000b7){if(_0x5000b7){var _0x489363=path['join'](config[_0xa445('0x50')],_0xa445('0x69'),util[_0xa445('0x6a')]('%s.%s',path['basename'](_0x5000b7[_0xa445('0x66')],path['extname'](_0x5000b7[_0xa445('0x66')])),_0x5000b7[_0xa445('0x67')]));var _0xb70c79=path[_0xa445('0x5e')](config[_0xa445('0x50')],_0xa445('0x51'),_0x425cab[_0xa445('0x2b')],util[_0xa445('0x6a')](_0xa445('0x6b'),_0x5000b7[_0xa445('0x2b')],_0x5000b7[_0xa445('0x67')]));fs[_0xa445('0x6c')](_0x489363,_0xb70c79);return _0x5000b7;}})['catch'](function(_0x538459){throw new db['Sequelize']['ValidationError'](_0x538459['message']);});})['then'](handleEntityNotFound(_0x5e0d69,null))['then'](respondWithResult(_0x5e0d69,0xc9))['catch'](handleError(_0x5e0d69,null));};exports['removeSound']=function(_0x5a122e,_0x428eea,_0x485f91){return db['sequelize'][_0xa445('0x4d')](function(_0xcb3e71){var _0x17891b;return db[_0xa445('0x2e')][_0xa445('0x65')]({'where':{'id':_0x5a122e[_0xa445('0x47')]['id']}})['then'](handleEntityNotFound(_0x428eea,null))[_0xa445('0x26')](function(_0x3c22df){if(_0x3c22df){_0x17891b=_0x3c22df;return _0x3c22df[_0xa445('0x6d')](_0x5a122e[_0xa445('0x47')][_0xa445('0x6e')]);}})[_0xa445('0x26')](function(_0x970354){if(_0x970354){return db[_0xa445('0x64')][_0xa445('0x65')]({'where':{'id':_0x5a122e[_0xa445('0x47')][_0xa445('0x6e')]},'attributes':['id',_0xa445('0x2b'),_0xa445('0x66'),_0xa445('0x67'),_0xa445('0x68')],'raw':!![]});}})[_0xa445('0x26')](function(_0x2229f0){if(_0x2229f0){fs[_0xa445('0x5d')](path[_0xa445('0x5e')](_0x17891b[_0xa445('0x4f')],util[_0xa445('0x6a')]('%s.%s',_0x2229f0[_0xa445('0x2b')],_0x2229f0[_0xa445('0x67')])));return _0x2229f0;}})[_0xa445('0x45')](function(_0x11578b){throw new db[(_0xa445('0x60'))]['ValidationError'](_0x11578b['message']);});})['then'](handleEntityNotFound(_0x428eea,null))[_0xa445('0x26')](respondWithStatusCode(_0x428eea,0xcc))[_0xa445('0x45')](handleError(_0x428eea,null));};exports['getSounds']=function(_0x193861,_0x5b92f6,_0x108980){var _0x3b4562={};var _0x1c9b05={};var _0x3269fe;var _0x1b5fce;return db[_0xa445('0x2e')][_0xa445('0x65')]({'where':{'id':_0x193861[_0xa445('0x47')]['id']}})[_0xa445('0x26')](handleEntityNotFound(_0x5b92f6,null))[_0xa445('0x26')](function(_0x1eca98){if(_0x1eca98){_0x3269fe=_0x1eca98;_0x1c9b05[_0xa445('0x33')]=_[_0xa445('0x35')](db[_0xa445('0x64')][_0xa445('0x2f')]);_0x1c9b05[_0xa445('0x34')]=_[_0xa445('0x35')](_0x193861[_0xa445('0x34')]);_0x1c9b05[_0xa445('0x3f')]=_[_0xa445('0x36')](_0x1c9b05['model'],_0x1c9b05[_0xa445('0x34')]);_0x3b4562[_0xa445('0x37')]=_['intersection'](_0x1c9b05[_0xa445('0x33')],qs[_0xa445('0x48')](_0x193861[_0xa445('0x34')]['fields']));_0x3b4562['attributes']=_0x3b4562[_0xa445('0x37')][_0xa445('0x38')]?_0x3b4562[_0xa445('0x37')]:_0x1c9b05[_0xa445('0x33')];_0x3b4562[_0xa445('0x3c')]=qs[_0xa445('0x3d')](_0x193861[_0xa445('0x34')][_0xa445('0x3d')]);_0x3b4562[_0xa445('0x3e')]=qs['filters'](_[_0xa445('0x40')](_0x193861[_0xa445('0x34')],_0x1c9b05[_0xa445('0x3f')]));if(_0x193861[_0xa445('0x34')][_0xa445('0x41')]){_0x3b4562['where']=_[_0xa445('0x43')](_0x3b4562[_0xa445('0x3e')],{'$or':_[_0xa445('0x2d')](_0x3b4562[_0xa445('0x37')],function(_0x5b26e5){var _0x23bbbe={};_0x23bbbe[_0x5b26e5]={'$like':'%'+_0x193861[_0xa445('0x34')][_0xa445('0x41')]+'%'};return _0x23bbbe;})});}_0x3b4562=_['merge']({},_0x3b4562,_0x193861[_0xa445('0x44')]);return _0x3269fe[_0xa445('0x6f')](_0x3b4562);}})[_0xa445('0x26')](function(_0x417219){if(_0x417219){_0x1b5fce=_0x417219[_0xa445('0x38')];if(!_0x193861[_0xa445('0x34')][_0xa445('0x39')](_0xa445('0x3a'))){_0x3b4562[_0xa445('0x3b')]=qs[_0xa445('0x3b')](_0x193861['query']['limit']);_0x3b4562[_0xa445('0x20')]=qs[_0xa445('0x20')](_0x193861[_0xa445('0x34')][_0xa445('0x20')]);}return _0x3269fe[_0xa445('0x6f')](_0x3b4562);}})[_0xa445('0x26')](function(_0x548f27){if(_0x548f27){return _0x548f27?{'count':_0x1b5fce,'rows':_0x548f27}:null;}})[_0xa445('0x26')](respondWithResult(_0x5b92f6,null))[_0xa445('0x45')](handleError(_0x5b92f6,null));};