cc75aaad7446e5a58b23b63a230f30d789062721
[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 _0x55d3=['MusicOnHolds','UserProfileResource','end','error','name','send','VoiceMusicOnHold','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show','find','body','params','create','sequelize','transaction','mode','files','join','root','server/files/moh','mkdirSync','directory','0777','user','role','userProfileId','autoAssociation','readdirSync','forEach','Sequelize','ValidationError','message','addSound','Sound','findOne','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','save_name','id2','unlinkSync','getSounds','rawAttributes','nolimit','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','get'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x55d3,0x193));var _0x355d=function(_0x2528ba,_0x4dca83){_0x2528ba=_0x2528ba-0x0;var _0x3c557a=_0x55d3[_0x2528ba];return _0x3c557a;};'use strict';var emlformat=require(_0x355d('0x0'));var rimraf=require(_0x355d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x355d('0x2'));var rp=require(_0x355d('0x3'));var moment=require(_0x355d('0x4'));var BPromise=require(_0x355d('0x5'));var Mustache=require(_0x355d('0x6'));var util=require(_0x355d('0x7'));var path=require(_0x355d('0x8'));var sox=require('sox');var csv=require(_0x355d('0x9'));var ejs=require(_0x355d('0xa'));var fs=require('fs');var fs_extra=require(_0x355d('0xb'));var _=require(_0x355d('0xc'));var squel=require(_0x355d('0xd'));var crypto=require(_0x355d('0xe'));var jsforce=require(_0x355d('0xf'));var deskjs=require(_0x355d('0x10'));var toCsv=require(_0x355d('0x9'));var querystring=require(_0x355d('0x11'));var Papa=require('papaparse');var Redis=require(_0x355d('0x12'));var authService=require(_0x355d('0x13'));var qs=require(_0x355d('0x14'));var as=require(_0x355d('0x15'));var hardwareService=require(_0x355d('0x16'));var logger=require(_0x355d('0x17'))(_0x355d('0x18'));var utils=require(_0x355d('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x355d('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1286b3,_0x37fbf5){_0x37fbf5=_0x37fbf5||0xcc;return function(_0x30c792){if(_0x30c792){return _0x1286b3[_0x355d('0x1b')](_0x37fbf5);}return _0x1286b3[_0x355d('0x1c')](_0x37fbf5)['end']();};}function respondWithResult(_0x42944c,_0x48c305){_0x48c305=_0x48c305||0xc8;return function(_0xbecc29){if(_0xbecc29){return _0x42944c[_0x355d('0x1c')](_0x48c305)[_0x355d('0x1d')](_0xbecc29);}};}function respondWithFilteredResult(_0x41fd7f,_0x2c5314){return function(_0x51a0c8){if(_0x51a0c8){var _0x1d88cc=typeof _0x2c5314[_0x355d('0x1e')]===_0x355d('0x1f')&&typeof _0x2c5314[_0x355d('0x20')]===_0x355d('0x1f');var _0x1c6cea=_0x51a0c8[_0x355d('0x21')];var _0x4cf258=_0x1d88cc?0x0:_0x2c5314['offset'];var _0x3b26c6=_0x1d88cc?_0x51a0c8[_0x355d('0x21')]:_0x2c5314[_0x355d('0x1e')]+_0x2c5314[_0x355d('0x20')];var _0x16ebbe;if(_0x3b26c6>=_0x1c6cea){_0x3b26c6=_0x1c6cea;_0x16ebbe=0xc8;}else{_0x16ebbe=0xce;}_0x41fd7f[_0x355d('0x1c')](_0x16ebbe);return _0x41fd7f[_0x355d('0x22')]('Content-Range',_0x4cf258+'-'+_0x3b26c6+'/'+_0x1c6cea)[_0x355d('0x1d')](_0x51a0c8);}return null;};}function patchUpdates(_0x34ad72){return function(_0x441e46){try{jsonpatch['apply'](_0x441e46,_0x34ad72,!![]);}catch(_0x12b2e3){return BPromise[_0x355d('0x23')](_0x12b2e3);}return _0x441e46[_0x355d('0x24')]();};}function saveUpdates(_0x27fc5c,_0x383cb1){return function(_0x36db89){if(_0x36db89){return _0x36db89[_0x355d('0x25')](_0x27fc5c)[_0x355d('0x26')](function(_0xeb01ff){return _0xeb01ff;});}return null;};}function removeEntity(_0x44ebee,_0x1e9a79){return function(_0x1bebcc){if(_0x1bebcc){return _0x1bebcc[_0x355d('0x27')]()['then'](function(){var _0x32d826=_0x1bebcc[_0x355d('0x28')]({'plain':!![]});var _0xad7ee2=_0x355d('0x29');return db[_0x355d('0x2a')][_0x355d('0x27')]({'where':{'type':_0xad7ee2,'resourceId':_0x32d826['id']}})[_0x355d('0x26')](function(){return _0x1bebcc;});})[_0x355d('0x26')](function(){_0x44ebee[_0x355d('0x1c')](0xcc)[_0x355d('0x2b')]();});}};}function handleEntityNotFound(_0x1d01df,_0x265e9a){return function(_0x84d313){if(!_0x84d313){_0x1d01df[_0x355d('0x1b')](0x194);}return _0x84d313;};}function handleError(_0x144fda,_0x4bc190){_0x4bc190=_0x4bc190||0x1f4;return function(_0x37efd4){logger[_0x355d('0x2c')](_0x37efd4['stack']);if(_0x37efd4[_0x355d('0x2d')]){delete _0x37efd4['name'];}_0x144fda[_0x355d('0x1c')](_0x4bc190)[_0x355d('0x2e')](_0x37efd4);};}exports['index']=function(_0x4705a0,_0x153fd1){var _0x20ebdc={},_0x29aa96={},_0x335e6a={'count':0x0,'rows':[]};var _0x1bc60b=_['map'](db[_0x355d('0x2f')]['rawAttributes'],function(_0x5a7d21){return{'name':_0x5a7d21['fieldName'],'type':_0x5a7d21[_0x355d('0x30')][_0x355d('0x31')]};});_0x29aa96[_0x355d('0x32')]=_[_0x355d('0x33')](_0x1bc60b,'name');_0x29aa96[_0x355d('0x34')]=_[_0x355d('0x35')](_0x4705a0[_0x355d('0x34')]);_0x29aa96[_0x355d('0x36')]=_[_0x355d('0x37')](_0x29aa96[_0x355d('0x32')],_0x29aa96[_0x355d('0x34')]);_0x20ebdc[_0x355d('0x38')]=_[_0x355d('0x37')](_0x29aa96[_0x355d('0x32')],qs[_0x355d('0x39')](_0x4705a0[_0x355d('0x34')][_0x355d('0x39')]));_0x20ebdc[_0x355d('0x38')]=_0x20ebdc[_0x355d('0x38')][_0x355d('0x3a')]?_0x20ebdc[_0x355d('0x38')]:_0x29aa96[_0x355d('0x32')];if(!_0x4705a0['query'][_0x355d('0x3b')]('nolimit')){_0x20ebdc['limit']=qs[_0x355d('0x20')](_0x4705a0[_0x355d('0x34')][_0x355d('0x20')]);_0x20ebdc[_0x355d('0x1e')]=qs[_0x355d('0x1e')](_0x4705a0['query']['offset']);}_0x20ebdc[_0x355d('0x3c')]=qs[_0x355d('0x3d')](_0x4705a0[_0x355d('0x34')]['sort']);delete _0x4705a0[_0x355d('0x34')][_0x355d('0x3d')];_0x20ebdc['where']=qs[_0x355d('0x36')](_[_0x355d('0x3e')](_0x4705a0[_0x355d('0x34')],_0x29aa96[_0x355d('0x36')]),_0x1bc60b);if(_0x4705a0[_0x355d('0x34')][_0x355d('0x3f')]){_0x20ebdc[_0x355d('0x40')]=_[_0x355d('0x41')](_0x20ebdc[_0x355d('0x40')],{'$or':_[_0x355d('0x33')](_0x1bc60b,function(_0x45ad1b){if(_0x45ad1b['type']!==_0x355d('0x42')){var _0x4f8c04={};_0x4f8c04[_0x45ad1b[_0x355d('0x2d')]]={'$like':'%'+_0x4705a0[_0x355d('0x34')][_0x355d('0x3f')]+'%'};return _0x4f8c04;}})});}_0x20ebdc=_['merge']({},_0x20ebdc,_0x4705a0[_0x355d('0x43')]);var _0x1572ab={'where':_0x20ebdc[_0x355d('0x40')]};return db[_0x355d('0x2f')][_0x355d('0x21')](_0x1572ab)[_0x355d('0x26')](function(_0x4b7919){_0x335e6a[_0x355d('0x21')]=_0x4b7919;if(_0x4705a0['query'][_0x355d('0x44')]){_0x20ebdc[_0x355d('0x45')]=[{'all':!![]}];}return db[_0x355d('0x2f')]['findAll'](_0x20ebdc);})['then'](function(_0x2ef099){_0x335e6a[_0x355d('0x46')]=_0x2ef099;return _0x335e6a;})['then'](respondWithFilteredResult(_0x153fd1,_0x20ebdc))[_0x355d('0x47')](handleError(_0x153fd1,null));};exports[_0x355d('0x48')]=function(_0x28cafe,_0x43692d){var _0x5f5a75={'raw':![],'where':{'id':_0x28cafe['params']['id']}},_0x3628ae={};_0x3628ae[_0x355d('0x32')]=_['keys'](db[_0x355d('0x2f')]['rawAttributes']);_0x3628ae['query']=_[_0x355d('0x35')](_0x28cafe[_0x355d('0x34')]);_0x3628ae[_0x355d('0x36')]=_[_0x355d('0x37')](_0x3628ae[_0x355d('0x32')],_0x3628ae[_0x355d('0x34')]);_0x5f5a75[_0x355d('0x38')]=_['intersection'](_0x3628ae['model'],qs[_0x355d('0x39')](_0x28cafe[_0x355d('0x34')][_0x355d('0x39')]));_0x5f5a75[_0x355d('0x38')]=_0x5f5a75[_0x355d('0x38')][_0x355d('0x3a')]?_0x5f5a75['attributes']:_0x3628ae[_0x355d('0x32')];if(_0x28cafe[_0x355d('0x34')][_0x355d('0x44')]){_0x5f5a75[_0x355d('0x45')]=[{'all':!![]}];}_0x5f5a75=_['merge']({},_0x5f5a75,_0x28cafe[_0x355d('0x43')]);return db[_0x355d('0x2f')][_0x355d('0x49')](_0x5f5a75)[_0x355d('0x26')](handleEntityNotFound(_0x43692d,null))['then'](respondWithResult(_0x43692d,null))[_0x355d('0x47')](handleError(_0x43692d,null));};exports[_0x355d('0x25')]=function(_0x535918,_0x51d59a){if(_0x535918['body']['id']){delete _0x535918[_0x355d('0x4a')]['id'];}return db[_0x355d('0x2f')][_0x355d('0x49')]({'where':{'id':_0x535918[_0x355d('0x4b')]['id']}})['then'](handleEntityNotFound(_0x51d59a,null))[_0x355d('0x26')](saveUpdates(_0x535918['body'],null))['then'](respondWithResult(_0x51d59a,null))[_0x355d('0x47')](handleError(_0x51d59a,null));};exports[_0x355d('0x4c')]=function(_0x5e53be,_0x2cfe8c,_0x4e1f04){return db[_0x355d('0x4d')][_0x355d('0x4e')](function(_0x266e2c){if(_0x5e53be[_0x355d('0x4a')][_0x355d('0x4f')]===_0x355d('0x50')){_0x5e53be[_0x355d('0x4a')]['directory']=path[_0x355d('0x51')](config[_0x355d('0x52')],_0x355d('0x53'),_0x5e53be[_0x355d('0x4a')]['name']);}return db['VoiceMusicOnHold'][_0x355d('0x4c')](_0x5e53be[_0x355d('0x4a')],{'transaction':_0x266e2c})[_0x355d('0x26')](function(_0x4151ff){if(_0x5e53be[_0x355d('0x4a')][_0x355d('0x4f')]===_0x355d('0x50')){fs[_0x355d('0x54')](_0x4151ff[_0x355d('0x55')],parseInt(_0x355d('0x56'),0x8));}var _0x3ceed0=_0x5e53be[_0x355d('0x57')][_0x355d('0x28')]({'plain':!![]});if(!_0x3ceed0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3ceed0[_0x355d('0x58')]==='user'){var _0x3bfded=_0x4151ff[_0x355d('0x28')]({'plain':!![]});return db['UserProfileSection'][_0x355d('0x49')]({'where':{'name':'MusicOnHolds','userProfileId':_0x3ceed0[_0x355d('0x59')]},'raw':!![]})[_0x355d('0x26')](function(_0x28e017){if(_0x28e017&&_0x28e017[_0x355d('0x5a')]===0x0){return db[_0x355d('0x2a')][_0x355d('0x4c')]({'name':_0x3bfded[_0x355d('0x2d')],'resourceId':_0x3bfded['id'],'type':_0x28e017[_0x355d('0x2d')],'sectionId':_0x28e017['id']},{})[_0x355d('0x26')](function(){return _0x4151ff;});}else{return _0x4151ff;}})[_0x355d('0x47')](function(_0x189c4e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x189c4e);});}return _0x4151ff;});})[_0x355d('0x26')](respondWithResult(_0x2cfe8c,0xc9))['catch'](handleError(_0x2cfe8c,null));};exports[_0x355d('0x27')]=function(_0x438951,_0x837514,_0x5784a3){var _0x260a58;return db[_0x355d('0x2f')][_0x355d('0x49')]({'where':{'id':_0x438951[_0x355d('0x4b')]['id']}})['then'](function(_0x5100cf){if(_0x5100cf){return db[_0x355d('0x4d')][_0x355d('0x4e')](function(_0x17a060){return _0x5100cf['destroy']({'transaction':_0x17a060,'raw':!![]})[_0x355d('0x26')](function(_0x43126b){if(_0x43126b[_0x355d('0x55')]){fs[_0x355d('0x5b')](_0x43126b[_0x355d('0x55')])[_0x355d('0x5c')](function(_0x1f539b){fs['unlinkSync'](path[_0x355d('0x51')](_0x43126b['directory'],_0x1f539b));});fs['rmdirSync'](_0x43126b[_0x355d('0x55')]);}return _0x43126b;});})[_0x355d('0x47')](function(_0x8f9151){throw new db[(_0x355d('0x5d'))][(_0x355d('0x5e'))](_0x8f9151[_0x355d('0x5f')]);});}})[_0x355d('0x26')](handleEntityNotFound(_0x837514,null))[_0x355d('0x26')](removeEntity(_0x837514,null))[_0x355d('0x47')](handleError(_0x837514,null));};exports[_0x355d('0x60')]=function(_0x11c67c,_0x5e433f,_0x133300){return db[_0x355d('0x4d')][_0x355d('0x4e')](function(_0x309a66){var _0x564308;return db[_0x355d('0x2f')]['find']({'where':{'id':_0x11c67c[_0x355d('0x4b')]['id']}})['then'](function(_0x2febc9){if(_0x2febc9){_0x564308=_0x2febc9;return _0x2febc9[_0x355d('0x60')](_0x11c67c[_0x355d('0x4a')]['id'],{'transaction':_0x309a66});}})[_0x355d('0x26')](function(_0x4f0508){if(_0x4f0508){return db[_0x355d('0x61')][_0x355d('0x62')]({'where':{'id':_0x11c67c[_0x355d('0x4a')]['id']},'attributes':['id',_0x355d('0x2d'),'save_name',_0x355d('0x63'),_0x355d('0x64')],'raw':!![]});}})[_0x355d('0x26')](function(_0x503399){if(_0x503399){var _0xbdb43f=path[_0x355d('0x51')](config[_0x355d('0x52')],_0x355d('0x65'),util[_0x355d('0x66')](_0x355d('0x67'),path[_0x355d('0x68')](_0x503399[_0x355d('0x69')],path['extname'](_0x503399[_0x355d('0x69')])),_0x503399['converted_format']));var _0x509797=path[_0x355d('0x51')](config[_0x355d('0x52')],'server/files/moh',_0x564308[_0x355d('0x2d')],util[_0x355d('0x66')](_0x355d('0x67'),_0x503399[_0x355d('0x2d')],_0x503399['converted_format']));fs['symlinkSync'](_0xbdb43f,_0x509797);return _0x503399;}})[_0x355d('0x47')](function(_0x439980){throw new db[(_0x355d('0x5d'))][(_0x355d('0x5e'))](_0x439980[_0x355d('0x5f')]);});})['then'](handleEntityNotFound(_0x5e433f,null))[_0x355d('0x26')](respondWithResult(_0x5e433f,0xc9))[_0x355d('0x47')](handleError(_0x5e433f,null));};exports['removeSound']=function(_0x24479a,_0x266a7a,_0x4319ae){return db[_0x355d('0x4d')][_0x355d('0x4e')](function(_0xb16659){var _0x3c4f32;return db[_0x355d('0x2f')]['findOne']({'where':{'id':_0x24479a['params']['id']}})['then'](handleEntityNotFound(_0x266a7a,null))[_0x355d('0x26')](function(_0x223858){if(_0x223858){_0x3c4f32=_0x223858;return _0x223858['removeSound'](_0x24479a[_0x355d('0x4b')][_0x355d('0x6a')]);}})[_0x355d('0x26')](function(_0x314fa3){if(_0x314fa3){return db[_0x355d('0x61')]['findOne']({'where':{'id':_0x24479a['params'][_0x355d('0x6a')]},'attributes':['id',_0x355d('0x2d'),_0x355d('0x69'),'converted_format','createdAt'],'raw':!![]});}})[_0x355d('0x26')](function(_0x2eddd2){if(_0x2eddd2){fs[_0x355d('0x6b')](path['join'](_0x3c4f32[_0x355d('0x55')],util[_0x355d('0x66')](_0x355d('0x67'),_0x2eddd2[_0x355d('0x2d')],_0x2eddd2['converted_format'])));return _0x2eddd2;}})[_0x355d('0x47')](function(_0x5b0900){throw new db[(_0x355d('0x5d'))][(_0x355d('0x5e'))](_0x5b0900[_0x355d('0x5f')]);});})[_0x355d('0x26')](handleEntityNotFound(_0x266a7a,null))[_0x355d('0x26')](respondWithStatusCode(_0x266a7a,0xcc))[_0x355d('0x47')](handleError(_0x266a7a,null));};exports[_0x355d('0x6c')]=function(_0x35d908,_0x516f74,_0x1fb819){var _0x510c81={};var _0x11e233={};var _0x54f6e4;var _0x313e18;return db[_0x355d('0x2f')][_0x355d('0x62')]({'where':{'id':_0x35d908[_0x355d('0x4b')]['id']}})[_0x355d('0x26')](handleEntityNotFound(_0x516f74,null))[_0x355d('0x26')](function(_0x2fa406){if(_0x2fa406){_0x54f6e4=_0x2fa406;_0x11e233[_0x355d('0x32')]=_[_0x355d('0x35')](db[_0x355d('0x61')][_0x355d('0x6d')]);_0x11e233[_0x355d('0x34')]=_['keys'](_0x35d908[_0x355d('0x34')]);_0x11e233['filters']=_[_0x355d('0x37')](_0x11e233[_0x355d('0x32')],_0x11e233[_0x355d('0x34')]);_0x510c81[_0x355d('0x38')]=_[_0x355d('0x37')](_0x11e233['model'],qs[_0x355d('0x39')](_0x35d908[_0x355d('0x34')][_0x355d('0x39')]));_0x510c81[_0x355d('0x38')]=_0x510c81['attributes'][_0x355d('0x3a')]?_0x510c81[_0x355d('0x38')]:_0x11e233['model'];_0x510c81[_0x355d('0x3c')]=qs['sort'](_0x35d908[_0x355d('0x34')][_0x355d('0x3d')]);_0x510c81['where']=qs[_0x355d('0x36')](_[_0x355d('0x3e')](_0x35d908[_0x355d('0x34')],_0x11e233[_0x355d('0x36')]));if(_0x35d908[_0x355d('0x34')]['filter']){_0x510c81[_0x355d('0x40')]=_[_0x355d('0x41')](_0x510c81[_0x355d('0x40')],{'$or':_[_0x355d('0x33')](_0x510c81[_0x355d('0x38')],function(_0x132e13){var _0x52d88f={};_0x52d88f[_0x132e13]={'$like':'%'+_0x35d908[_0x355d('0x34')][_0x355d('0x3f')]+'%'};return _0x52d88f;})});}_0x510c81=_['merge']({},_0x510c81,_0x35d908['options']);return _0x54f6e4['getSounds'](_0x510c81);}})[_0x355d('0x26')](function(_0x2db72e){if(_0x2db72e){_0x313e18=_0x2db72e[_0x355d('0x3a')];if(!_0x35d908[_0x355d('0x34')][_0x355d('0x3b')](_0x355d('0x6e'))){_0x510c81[_0x355d('0x20')]=qs[_0x355d('0x20')](_0x35d908[_0x355d('0x34')][_0x355d('0x20')]);_0x510c81[_0x355d('0x1e')]=qs[_0x355d('0x1e')](_0x35d908[_0x355d('0x34')][_0x355d('0x1e')]);}return _0x54f6e4[_0x355d('0x6c')](_0x510c81);}})[_0x355d('0x26')](function(_0x34c61a){if(_0x34c61a){return _0x34c61a?{'count':_0x313e18,'rows':_0x34c61a}:null;}})[_0x355d('0x26')](respondWithResult(_0x516f74,null))['catch'](handleError(_0x516f74,null));};