048d46a82202f7d0989a39fb3bdafff1699b93ee
[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 _0x88ab=['find','body','create','transaction','mode','files','directory','join','server/files/moh','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','sequelize','readdirSync','forEach','rmdirSync','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','createdAt','basename','extname','%s.%s','symlinkSync','Sequelize','removeSound','id2','unlinkSync','format','getSounds','order','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','error','stack','name','send','index','VoiceMusicOnHold','rawAttributes','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params'];(function(_0x109a23,_0xba2f47){var _0x2c082e=function(_0x3e1e63){while(--_0x3e1e63){_0x109a23['push'](_0x109a23['shift']());}};_0x2c082e(++_0xba2f47);}(_0x88ab,0x10d));var _0xb88a=function(_0x3f0e94,_0x21a8c6){_0x3f0e94=_0x3f0e94-0x0;var _0x2e0ff4=_0x88ab[_0x3f0e94];return _0x2e0ff4;};'use strict';var pdf=require(_0xb88a('0x0'));var emlformat=require(_0xb88a('0x1'));var rimraf=require(_0xb88a('0x2'));var zipdir=require(_0xb88a('0x3'));var jsonpatch=require(_0xb88a('0x4'));var rp=require('request-promise');var moment=require(_0xb88a('0x5'));var BPromise=require(_0xb88a('0x6'));var Mustache=require(_0xb88a('0x7'));var util=require(_0xb88a('0x8'));var path=require('path');var sox=require(_0xb88a('0x9'));var csv=require(_0xb88a('0xa'));var ejs=require(_0xb88a('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xb88a('0xc'));var crypto=require(_0xb88a('0xd'));var jsforce=require(_0xb88a('0xe'));var deskjs=require(_0xb88a('0xf'));var toCsv=require(_0xb88a('0xa'));var querystring=require(_0xb88a('0x10'));var Papa=require('papaparse');var Redis=require(_0xb88a('0x11'));var authService=require(_0xb88a('0x12'));var qs=require(_0xb88a('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb88a('0x14'));var logger=require(_0xb88a('0x15'))(_0xb88a('0x16'));var utils=require(_0xb88a('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xb88a('0x18'));var db=require(_0xb88a('0x19'))['db'];function respondWithStatusCode(_0x11c698,_0x478689){_0x478689=_0x478689||0xcc;return function(_0x8383e6){if(_0x8383e6){return _0x11c698[_0xb88a('0x1a')](_0x478689);}return _0x11c698[_0xb88a('0x1b')](_0x478689)[_0xb88a('0x1c')]();};}function respondWithResult(_0x327c58,_0x4e8f5d){_0x4e8f5d=_0x4e8f5d||0xc8;return function(_0x1ad361){if(_0x1ad361){return _0x327c58[_0xb88a('0x1b')](_0x4e8f5d)[_0xb88a('0x1d')](_0x1ad361);}};}function respondWithFilteredResult(_0x1fd557,_0x276a75){return function(_0x32dff3){if(_0x32dff3){var _0xeffc3d=_0x32dff3[_0xb88a('0x1e')],_0x21bc05=_0x276a75[_0xb88a('0x1f')],_0x1209ee=_0x276a75['offset']+_0x276a75[_0xb88a('0x20')],_0x3f3475;if(_0x1209ee>=_0xeffc3d){_0x1209ee=_0xeffc3d;_0x3f3475=0xc8;}else{_0x3f3475=0xce;}_0x1fd557['status'](_0x3f3475);return _0x1fd557[_0xb88a('0x21')](_0xb88a('0x22'),_0x21bc05+'-'+_0x1209ee+'/'+_0xeffc3d)[_0xb88a('0x1d')](_0x32dff3);}return null;};}function patchUpdates(_0xe47617){return function(_0x496bd0){try{jsonpatch[_0xb88a('0x23')](_0x496bd0,_0xe47617,!![]);}catch(_0x15d92e){return BPromise[_0xb88a('0x24')](_0x15d92e);}return _0x496bd0[_0xb88a('0x25')]();};}function saveUpdates(_0x1e48b2,_0x175344){return function(_0x529e01){if(_0x529e01){return _0x529e01[_0xb88a('0x26')](_0x1e48b2)[_0xb88a('0x27')](function(_0x92feaf){return _0x92feaf;});}return null;};}function removeEntity(_0x33637b,_0xc88211){return function(_0x2ee28c){if(_0x2ee28c){return _0x2ee28c[_0xb88a('0x28')]()[_0xb88a('0x27')](function(){var _0x1beb20=_0x2ee28c[_0xb88a('0x29')]({'plain':!![]});var _0x26a2bc=_0xb88a('0x2a');return db[_0xb88a('0x2b')][_0xb88a('0x28')]({'where':{'type':_0x26a2bc,'resourceId':_0x1beb20['id']}})[_0xb88a('0x27')](function(){return _0x2ee28c;});})['then'](function(){_0x33637b[_0xb88a('0x1b')](0xcc)[_0xb88a('0x1c')]();});}};}function handleEntityNotFound(_0x375b62,_0x341dda){return function(_0x28601b){if(!_0x28601b){_0x375b62['sendStatus'](0x194);}return _0x28601b;};}function handleError(_0xc34f65,_0xddca27){_0xddca27=_0xddca27||0x1f4;return function(_0xf8a77f){logger[_0xb88a('0x2c')](_0xf8a77f[_0xb88a('0x2d')]);if(_0xf8a77f[_0xb88a('0x2e')]){delete _0xf8a77f['name'];}_0xc34f65[_0xb88a('0x1b')](_0xddca27)[_0xb88a('0x2f')](_0xf8a77f);};}exports[_0xb88a('0x30')]=function(_0x4e431f,_0x188c73){var _0x4b6fd7={},_0x1c79c1={},_0x27080f={'count':0x0,'rows':[]};var _0x361c2e=_['map'](db[_0xb88a('0x31')][_0xb88a('0x32')],function(_0x170839){return{'name':_0x170839['fieldName'],'type':_0x170839[_0xb88a('0x33')][_0xb88a('0x34')]};});_0x1c79c1[_0xb88a('0x35')]=_[_0xb88a('0x36')](_0x361c2e,_0xb88a('0x2e'));_0x1c79c1[_0xb88a('0x37')]=_[_0xb88a('0x38')](_0x4e431f['query']);_0x1c79c1['filters']=_[_0xb88a('0x39')](_0x1c79c1['model'],_0x1c79c1[_0xb88a('0x37')]);_0x4b6fd7[_0xb88a('0x3a')]=_[_0xb88a('0x39')](_0x1c79c1[_0xb88a('0x35')],qs[_0xb88a('0x3b')](_0x4e431f[_0xb88a('0x37')]['fields']));_0x4b6fd7['attributes']=_0x4b6fd7['attributes'][_0xb88a('0x3c')]?_0x4b6fd7[_0xb88a('0x3a')]:_0x1c79c1['model'];if(!_0x4e431f['query'][_0xb88a('0x3d')](_0xb88a('0x3e'))){_0x4b6fd7[_0xb88a('0x20')]=qs[_0xb88a('0x20')](_0x4e431f['query']['limit']);_0x4b6fd7[_0xb88a('0x1f')]=qs[_0xb88a('0x1f')](_0x4e431f[_0xb88a('0x37')]['offset']);}_0x4b6fd7['order']=qs[_0xb88a('0x3f')](_0x4e431f[_0xb88a('0x37')][_0xb88a('0x3f')]);_0x4b6fd7['where']=qs[_0xb88a('0x40')](_['pick'](_0x4e431f[_0xb88a('0x37')],_0x1c79c1['filters']),_0x361c2e);if(_0x4e431f[_0xb88a('0x37')][_0xb88a('0x41')]){_0x4b6fd7[_0xb88a('0x42')]=_[_0xb88a('0x43')](_0x4b6fd7['where'],{'$or':_['map'](_0x361c2e,function(_0xba0108){if(_0xba0108['type']!==_0xb88a('0x44')){var _0x1e5fb5={};_0x1e5fb5[_0xba0108[_0xb88a('0x2e')]]={'$like':'%'+_0x4e431f[_0xb88a('0x37')][_0xb88a('0x41')]+'%'};return _0x1e5fb5;}})});}_0x4b6fd7=_[_0xb88a('0x43')]({},_0x4b6fd7,_0x4e431f[_0xb88a('0x45')]);var _0x4c0ca1={'where':_0x4b6fd7['where']};return db[_0xb88a('0x31')][_0xb88a('0x1e')](_0x4c0ca1)['then'](function(_0x1b7d55){_0x27080f[_0xb88a('0x1e')]=_0x1b7d55;if(_0x4e431f[_0xb88a('0x37')][_0xb88a('0x46')]){_0x4b6fd7[_0xb88a('0x47')]=[{'all':!![]}];}return db['VoiceMusicOnHold']['findAll'](_0x4b6fd7);})[_0xb88a('0x27')](function(_0x35bd0f){_0x27080f[_0xb88a('0x48')]=_0x35bd0f;return _0x27080f;})[_0xb88a('0x27')](respondWithFilteredResult(_0x188c73,_0x4b6fd7))[_0xb88a('0x49')](handleError(_0x188c73,null));};exports[_0xb88a('0x4a')]=function(_0x2b3cc5,_0x53c6ea){var _0xe4f6fb={'raw':![],'where':{'id':_0x2b3cc5[_0xb88a('0x4b')]['id']}},_0x22031c={};_0x22031c[_0xb88a('0x35')]=_[_0xb88a('0x38')](db[_0xb88a('0x31')]['rawAttributes']);_0x22031c[_0xb88a('0x37')]=_[_0xb88a('0x38')](_0x2b3cc5['query']);_0x22031c[_0xb88a('0x40')]=_[_0xb88a('0x39')](_0x22031c[_0xb88a('0x35')],_0x22031c[_0xb88a('0x37')]);_0xe4f6fb['attributes']=_[_0xb88a('0x39')](_0x22031c[_0xb88a('0x35')],qs[_0xb88a('0x3b')](_0x2b3cc5[_0xb88a('0x37')][_0xb88a('0x3b')]));_0xe4f6fb[_0xb88a('0x3a')]=_0xe4f6fb[_0xb88a('0x3a')][_0xb88a('0x3c')]?_0xe4f6fb[_0xb88a('0x3a')]:_0x22031c[_0xb88a('0x35')];if(_0x2b3cc5['query'][_0xb88a('0x46')]){_0xe4f6fb['include']=[{'all':!![]}];}_0xe4f6fb=_['merge']({},_0xe4f6fb,_0x2b3cc5[_0xb88a('0x45')]);return db['VoiceMusicOnHold'][_0xb88a('0x4c')](_0xe4f6fb)['then'](handleEntityNotFound(_0x53c6ea,null))[_0xb88a('0x27')](respondWithResult(_0x53c6ea,null))[_0xb88a('0x49')](handleError(_0x53c6ea,null));};exports[_0xb88a('0x26')]=function(_0x54aba,_0x5912ba){if(_0x54aba[_0xb88a('0x4d')]['id']){delete _0x54aba[_0xb88a('0x4d')]['id'];}return db[_0xb88a('0x31')][_0xb88a('0x4c')]({'where':{'id':_0x54aba[_0xb88a('0x4b')]['id']}})[_0xb88a('0x27')](handleEntityNotFound(_0x5912ba,null))[_0xb88a('0x27')](saveUpdates(_0x54aba[_0xb88a('0x4d')],null))[_0xb88a('0x27')](respondWithResult(_0x5912ba,null))['catch'](handleError(_0x5912ba,null));};exports[_0xb88a('0x4e')]=function(_0x5c2548,_0x2eb742,_0x1ce5a6){return db['sequelize'][_0xb88a('0x4f')](function(_0x5502c3){if(_0x5c2548[_0xb88a('0x4d')][_0xb88a('0x50')]===_0xb88a('0x51')){_0x5c2548['body'][_0xb88a('0x52')]=path[_0xb88a('0x53')](config['root'],_0xb88a('0x54'),_0x5c2548[_0xb88a('0x4d')]['name']);}return db[_0xb88a('0x31')][_0xb88a('0x4e')](_0x5c2548[_0xb88a('0x4d')],{'transaction':_0x5502c3})['then'](function(_0x4e7915){if(_0x5c2548[_0xb88a('0x4d')]['mode']===_0xb88a('0x51')){fs['mkdirSync'](_0x4e7915[_0xb88a('0x52')],parseInt(_0xb88a('0x55'),0x8));}var _0x5e2ad5=_0x5c2548[_0xb88a('0x56')][_0xb88a('0x29')]({'plain':!![]});if(!_0x5e2ad5)throw new Error(_0xb88a('0x57'));if(_0x5e2ad5[_0xb88a('0x58')]===_0xb88a('0x56')){var _0x5fbb0a=_0x4e7915[_0xb88a('0x29')]({'plain':!![]});return db[_0xb88a('0x59')][_0xb88a('0x4c')]({'where':{'name':_0xb88a('0x2a'),'userProfileId':_0x5e2ad5[_0xb88a('0x5a')]},'raw':!![]})[_0xb88a('0x27')](function(_0x3c9d7f){if(_0x3c9d7f&&_0x3c9d7f[_0xb88a('0x5b')]===0x0){return db['UserProfileResource'][_0xb88a('0x4e')]({'name':_0x5fbb0a[_0xb88a('0x2e')],'resourceId':_0x5fbb0a['id'],'type':_0x3c9d7f['name'],'sectionId':_0x3c9d7f['id']},{})[_0xb88a('0x27')](function(){return _0x4e7915;});}else{return _0x4e7915;}})['catch'](function(_0x20b8cb){logger[_0xb88a('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x20b8cb);});}return _0x4e7915;});})['then'](respondWithResult(_0x2eb742,0xc9))[_0xb88a('0x49')](handleError(_0x2eb742,null));};exports['destroy']=function(_0x4be650,_0x21df78,_0xb93aac){var _0x4d4ace;return db[_0xb88a('0x31')][_0xb88a('0x4c')]({'where':{'id':_0x4be650[_0xb88a('0x4b')]['id']}})[_0xb88a('0x27')](function(_0x2767a9){if(_0x2767a9){return db[_0xb88a('0x5c')]['transaction'](function(_0x24a812){return _0x2767a9[_0xb88a('0x28')]({'transaction':_0x24a812,'raw':!![]})['then'](function(_0x1abc8e){if(_0x1abc8e[_0xb88a('0x52')]){fs[_0xb88a('0x5d')](_0x1abc8e[_0xb88a('0x52')])[_0xb88a('0x5e')](function(_0xf14d30){fs['unlinkSync'](path['join'](_0x1abc8e['directory'],_0xf14d30));});fs[_0xb88a('0x5f')](_0x1abc8e[_0xb88a('0x52')]);}return _0x1abc8e;});})['catch'](function(_0x519256){throw new db['Sequelize'][(_0xb88a('0x60'))](_0x519256[_0xb88a('0x61')]);});}})['then'](handleEntityNotFound(_0x21df78,null))['then'](removeEntity(_0x21df78,null))[_0xb88a('0x49')](handleError(_0x21df78,null));};exports['addSound']=function(_0x35ff35,_0x608146,_0x3b20a4){return db[_0xb88a('0x5c')]['transaction'](function(_0x487ca8){var _0x530284;return db['VoiceMusicOnHold'][_0xb88a('0x4c')]({'where':{'id':_0x35ff35[_0xb88a('0x4b')]['id']}})[_0xb88a('0x27')](function(_0x20bc6f){if(_0x20bc6f){_0x530284=_0x20bc6f;return _0x20bc6f[_0xb88a('0x62')](_0x35ff35['body']['id'],{'transaction':_0x487ca8});}})['then'](function(_0x295937){if(_0x295937){return db[_0xb88a('0x63')][_0xb88a('0x64')]({'where':{'id':_0x35ff35[_0xb88a('0x4d')]['id']},'attributes':['id',_0xb88a('0x2e'),_0xb88a('0x65'),_0xb88a('0x66'),_0xb88a('0x67')],'raw':!![]});}})[_0xb88a('0x27')](function(_0x474217){if(_0x474217){var _0x30b3dd=path[_0xb88a('0x53')](config['root'],'server/files/sounds/converted',util['format']('%s.%s',path[_0xb88a('0x68')](_0x474217['save_name'],path[_0xb88a('0x69')](_0x474217[_0xb88a('0x65')])),_0x474217[_0xb88a('0x66')]));var _0x4986b8=path['join'](config['root'],_0xb88a('0x54'),_0x530284[_0xb88a('0x2e')],util['format'](_0xb88a('0x6a'),_0x474217['name'],_0x474217['converted_format']));fs[_0xb88a('0x6b')](_0x30b3dd,_0x4986b8);return _0x474217;}})[_0xb88a('0x49')](function(_0x3a113c){throw new db[(_0xb88a('0x6c'))][(_0xb88a('0x60'))](_0x3a113c[_0xb88a('0x61')]);});})[_0xb88a('0x27')](handleEntityNotFound(_0x608146,null))[_0xb88a('0x27')](respondWithResult(_0x608146,0xc9))[_0xb88a('0x49')](handleError(_0x608146,null));};exports[_0xb88a('0x6d')]=function(_0x5e7768,_0x29cb1d,_0x2a75a1){return db[_0xb88a('0x5c')]['transaction'](function(_0x54429e){var _0x83656f;return db[_0xb88a('0x31')][_0xb88a('0x64')]({'where':{'id':_0x5e7768['params']['id']}})['then'](handleEntityNotFound(_0x29cb1d,null))[_0xb88a('0x27')](function(_0xac94c1){if(_0xac94c1){_0x83656f=_0xac94c1;return _0xac94c1['removeSound'](_0x5e7768[_0xb88a('0x4b')][_0xb88a('0x6e')]);}})['then'](function(_0x5350d8){if(_0x5350d8){return db['Sound'][_0xb88a('0x64')]({'where':{'id':_0x5e7768[_0xb88a('0x4b')][_0xb88a('0x6e')]},'attributes':['id',_0xb88a('0x2e'),'save_name','converted_format','createdAt'],'raw':!![]});}})[_0xb88a('0x27')](function(_0x5eb00d){if(_0x5eb00d){fs[_0xb88a('0x6f')](path[_0xb88a('0x53')](_0x83656f['directory'],util[_0xb88a('0x70')](_0xb88a('0x6a'),_0x5eb00d[_0xb88a('0x2e')],_0x5eb00d[_0xb88a('0x66')])));return _0x5eb00d;}})[_0xb88a('0x49')](function(_0x4b99e1){throw new db[(_0xb88a('0x6c'))][(_0xb88a('0x60'))](_0x4b99e1[_0xb88a('0x61')]);});})['then'](handleEntityNotFound(_0x29cb1d,null))[_0xb88a('0x27')](respondWithStatusCode(_0x29cb1d,0xcc))[_0xb88a('0x49')](handleError(_0x29cb1d,null));};exports[_0xb88a('0x71')]=function(_0x36b7c1,_0xa1826c,_0x1ea3a3){var _0x4e0e30={};var _0x28df57={};var _0x693880;var _0x166277;return db[_0xb88a('0x31')][_0xb88a('0x64')]({'where':{'id':_0x36b7c1[_0xb88a('0x4b')]['id']}})[_0xb88a('0x27')](handleEntityNotFound(_0xa1826c,null))[_0xb88a('0x27')](function(_0xd9ddab){if(_0xd9ddab){_0x693880=_0xd9ddab;_0x28df57[_0xb88a('0x35')]=_[_0xb88a('0x38')](db[_0xb88a('0x63')]['rawAttributes']);_0x28df57[_0xb88a('0x37')]=_[_0xb88a('0x38')](_0x36b7c1[_0xb88a('0x37')]);_0x28df57[_0xb88a('0x40')]=_[_0xb88a('0x39')](_0x28df57[_0xb88a('0x35')],_0x28df57[_0xb88a('0x37')]);_0x4e0e30[_0xb88a('0x3a')]=_['intersection'](_0x28df57[_0xb88a('0x35')],qs['fields'](_0x36b7c1[_0xb88a('0x37')][_0xb88a('0x3b')]));_0x4e0e30[_0xb88a('0x3a')]=_0x4e0e30[_0xb88a('0x3a')][_0xb88a('0x3c')]?_0x4e0e30[_0xb88a('0x3a')]:_0x28df57[_0xb88a('0x35')];_0x4e0e30[_0xb88a('0x72')]=qs['sort'](_0x36b7c1[_0xb88a('0x37')][_0xb88a('0x3f')]);_0x4e0e30[_0xb88a('0x42')]=qs[_0xb88a('0x40')](_['pick'](_0x36b7c1['query'],_0x28df57['filters']));if(_0x36b7c1[_0xb88a('0x37')][_0xb88a('0x41')]){_0x4e0e30[_0xb88a('0x42')]=_[_0xb88a('0x43')](_0x4e0e30['where'],{'$or':_[_0xb88a('0x36')](_0x4e0e30[_0xb88a('0x3a')],function(_0x3852c0){var _0x3b31e4={};_0x3b31e4[_0x3852c0]={'$like':'%'+_0x36b7c1[_0xb88a('0x37')]['filter']+'%'};return _0x3b31e4;})});}_0x4e0e30=_[_0xb88a('0x43')]({},_0x4e0e30,_0x36b7c1['options']);return _0x693880[_0xb88a('0x71')](_0x4e0e30);}})[_0xb88a('0x27')](function(_0x56c12c){if(_0x56c12c){_0x166277=_0x56c12c[_0xb88a('0x3c')];if(!_0x36b7c1[_0xb88a('0x37')][_0xb88a('0x3d')]('nolimit')){_0x4e0e30[_0xb88a('0x20')]=qs[_0xb88a('0x20')](_0x36b7c1[_0xb88a('0x37')][_0xb88a('0x20')]);_0x4e0e30['offset']=qs[_0xb88a('0x1f')](_0x36b7c1[_0xb88a('0x37')][_0xb88a('0x1f')]);}return _0x693880[_0xb88a('0x71')](_0x4e0e30);}})[_0xb88a('0x27')](function(_0x4e8b25){if(_0x4e8b25){return _0x4e8b25?{'count':_0x166277,'rows':_0x4e8b25}:null;}})[_0xb88a('0x27')](respondWithResult(_0xa1826c,null))[_0xb88a('0x49')](handleError(_0xa1826c,null));};