c0ec867c5dd7b4c028f20ccbe424d83e8b5454ad
[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 _0xda5e=['length','nolimit','offset','order','sort','pick','where','merge','type','VIRTUAL','includeAll','include','catch','show','rawAttributes','find','body','params','create','sequelize','transaction','files','directory','join','root','server/files/moh','mode','mkdirSync','0777','role','user','UserProfileSection','userProfileId','autoAssociation','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','findOne','createdAt','%s.%s','save_name','format','converted_format','symlinkSync','removeSound','id2','Sound','getSounds','filter','hasOwnProperty','html-pdf','eml-format','rimraf','zip-dir','mustache','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','count','limit','Content-Range','apply','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','end','error','stack','name','send','index','map','VoiceMusicOnHold','key','query','keys','filters','model','attributes','intersection','fields'];(function(_0x507155,_0x3a51e5){var _0x18859f=function(_0x2dae57){while(--_0x2dae57){_0x507155['push'](_0x507155['shift']());}};_0x18859f(++_0x3a51e5);}(_0xda5e,0xa0));var _0xeda5=function(_0x300c90,_0x4f6cbf){_0x300c90=_0x300c90-0x0;var _0x1db7d2=_0xda5e[_0x300c90];return _0x1db7d2;};'use strict';var pdf=require(_0xeda5('0x0'));var emlformat=require(_0xeda5('0x1'));var rimraf=require(_0xeda5('0x2'));var zipdir=require(_0xeda5('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xeda5('0x4'));var util=require(_0xeda5('0x5'));var path=require(_0xeda5('0x6'));var sox=require(_0xeda5('0x7'));var csv=require(_0xeda5('0x8'));var ejs=require(_0xeda5('0x9'));var fs=require('fs');var _=require(_0xeda5('0xa'));var squel=require('squel');var crypto=require(_0xeda5('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xeda5('0xc'));var toCsv=require(_0xeda5('0x8'));var querystring=require(_0xeda5('0xd'));var Papa=require(_0xeda5('0xe'));var Redis=require(_0xeda5('0xf'));var authService=require(_0xeda5('0x10'));var qs=require(_0xeda5('0x11'));var as=require(_0xeda5('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xeda5('0x13'))(_0xeda5('0x14'));var utils=require('../../config/utils');var config=require(_0xeda5('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xeda5('0x16'))['db'];function respondWithStatusCode(_0x5b40b6,_0x3b05c4){_0x3b05c4=_0x3b05c4||0xcc;return function(_0x26b550){if(_0x26b550){return _0x5b40b6[_0xeda5('0x17')](_0x3b05c4);}return _0x5b40b6[_0xeda5('0x18')](_0x3b05c4)['end']();};}function respondWithResult(_0x30fe21,_0x45cde9){_0x45cde9=_0x45cde9||0xc8;return function(_0x421fa0){if(_0x421fa0){return _0x30fe21['status'](_0x45cde9)['json'](_0x421fa0);}};}function respondWithFilteredResult(_0x55f0de,_0xbba332){return function(_0x15a5a5){if(_0x15a5a5){var _0x208bb9=_0x15a5a5[_0xeda5('0x19')],_0x10eeb5=_0xbba332['offset'],_0x5c635f=_0xbba332['offset']+_0xbba332[_0xeda5('0x1a')],_0x1ceee6;if(_0x5c635f>=_0x208bb9){_0x5c635f=_0x208bb9;_0x1ceee6=0xc8;}else{_0x1ceee6=0xce;}_0x55f0de[_0xeda5('0x18')](_0x1ceee6);return _0x55f0de['set'](_0xeda5('0x1b'),_0x10eeb5+'-'+_0x5c635f+'/'+_0x208bb9)['json'](_0x15a5a5);}return null;};}function patchUpdates(_0x2c0da3){return function(_0x23099b){try{jsonpatch[_0xeda5('0x1c')](_0x23099b,_0x2c0da3,!![]);}catch(_0x1ff8fc){return BPromise['reject'](_0x1ff8fc);}return _0x23099b[_0xeda5('0x1d')]();};}function saveUpdates(_0x46ff39,_0x5e99ab){return function(_0x223f21){if(_0x223f21){return _0x223f21[_0xeda5('0x1e')](_0x46ff39)[_0xeda5('0x1f')](function(_0xe3cd67){return _0xe3cd67;});}return null;};}function removeEntity(_0x4f1c25,_0x211e9c){return function(_0x18417f){if(_0x18417f){return _0x18417f[_0xeda5('0x20')]()[_0xeda5('0x1f')](function(){var _0x5ee90f=_0x18417f[_0xeda5('0x21')]({'plain':!![]});var _0x4212fe=_0xeda5('0x22');return db[_0xeda5('0x23')]['destroy']({'where':{'type':_0x4212fe,'resourceId':_0x5ee90f['id']}})[_0xeda5('0x1f')](function(){return _0x18417f;});})['then'](function(){_0x4f1c25[_0xeda5('0x18')](0xcc)[_0xeda5('0x24')]();});}};}function handleEntityNotFound(_0x5a174d,_0xe33025){return function(_0x5d4a14){if(!_0x5d4a14){_0x5a174d['sendStatus'](0x194);}return _0x5d4a14;};}function handleError(_0x3ad616,_0x3e8b0c){_0x3e8b0c=_0x3e8b0c||0x1f4;return function(_0x3879b2){logger[_0xeda5('0x25')](_0x3879b2[_0xeda5('0x26')]);if(_0x3879b2[_0xeda5('0x27')]){delete _0x3879b2['name'];}_0x3ad616[_0xeda5('0x18')](_0x3e8b0c)[_0xeda5('0x28')](_0x3879b2);};}exports[_0xeda5('0x29')]=function(_0x2a0e3a,_0x4c6859){var _0x36582e={},_0x22a845={},_0x1e3b75={'count':0x0,'rows':[]};var _0x2f99f2=_[_0xeda5('0x2a')](db[_0xeda5('0x2b')]['rawAttributes'],function(_0x4b1f4d){return{'name':_0x4b1f4d['fieldName'],'type':_0x4b1f4d['type'][_0xeda5('0x2c')]};});_0x22a845['model']=_[_0xeda5('0x2a')](_0x2f99f2,'name');_0x22a845[_0xeda5('0x2d')]=_[_0xeda5('0x2e')](_0x2a0e3a[_0xeda5('0x2d')]);_0x22a845[_0xeda5('0x2f')]=_['intersection'](_0x22a845[_0xeda5('0x30')],_0x22a845[_0xeda5('0x2d')]);_0x36582e[_0xeda5('0x31')]=_[_0xeda5('0x32')](_0x22a845['model'],qs[_0xeda5('0x33')](_0x2a0e3a[_0xeda5('0x2d')]['fields']));_0x36582e[_0xeda5('0x31')]=_0x36582e[_0xeda5('0x31')][_0xeda5('0x34')]?_0x36582e[_0xeda5('0x31')]:_0x22a845['model'];if(!_0x2a0e3a['query']['hasOwnProperty'](_0xeda5('0x35'))){_0x36582e['limit']=qs[_0xeda5('0x1a')](_0x2a0e3a[_0xeda5('0x2d')]['limit']);_0x36582e[_0xeda5('0x36')]=qs[_0xeda5('0x36')](_0x2a0e3a[_0xeda5('0x2d')]['offset']);}_0x36582e[_0xeda5('0x37')]=qs[_0xeda5('0x38')](_0x2a0e3a['query'][_0xeda5('0x38')]);_0x36582e['where']=qs[_0xeda5('0x2f')](_[_0xeda5('0x39')](_0x2a0e3a[_0xeda5('0x2d')],_0x22a845[_0xeda5('0x2f')]),_0x2f99f2);if(_0x2a0e3a[_0xeda5('0x2d')]['filter']){_0x36582e[_0xeda5('0x3a')]=_[_0xeda5('0x3b')](_0x36582e[_0xeda5('0x3a')],{'$or':_['map'](_0x2f99f2,function(_0x5e61c3){if(_0x5e61c3[_0xeda5('0x3c')]!==_0xeda5('0x3d')){var _0x5e2bf0={};_0x5e2bf0[_0x5e61c3[_0xeda5('0x27')]]={'$like':'%'+_0x2a0e3a['query']['filter']+'%'};return _0x5e2bf0;}})});}_0x36582e=_[_0xeda5('0x3b')]({},_0x36582e,_0x2a0e3a['options']);var _0x33a6ac={'where':_0x36582e[_0xeda5('0x3a')]};return db[_0xeda5('0x2b')][_0xeda5('0x19')](_0x33a6ac)[_0xeda5('0x1f')](function(_0x1c632e){_0x1e3b75[_0xeda5('0x19')]=_0x1c632e;if(_0x2a0e3a['query'][_0xeda5('0x3e')]){_0x36582e[_0xeda5('0x3f')]=[{'all':!![]}];}return db[_0xeda5('0x2b')]['findAll'](_0x36582e);})['then'](function(_0x4b3134){_0x1e3b75['rows']=_0x4b3134;return _0x1e3b75;})[_0xeda5('0x1f')](respondWithFilteredResult(_0x4c6859,_0x36582e))[_0xeda5('0x40')](handleError(_0x4c6859,null));};exports[_0xeda5('0x41')]=function(_0x350515,_0x3ab269){var _0x124aac={'raw':![],'where':{'id':_0x350515['params']['id']}},_0x32f87d={};_0x32f87d[_0xeda5('0x30')]=_[_0xeda5('0x2e')](db['VoiceMusicOnHold'][_0xeda5('0x42')]);_0x32f87d['query']=_[_0xeda5('0x2e')](_0x350515[_0xeda5('0x2d')]);_0x32f87d['filters']=_[_0xeda5('0x32')](_0x32f87d[_0xeda5('0x30')],_0x32f87d['query']);_0x124aac[_0xeda5('0x31')]=_[_0xeda5('0x32')](_0x32f87d['model'],qs[_0xeda5('0x33')](_0x350515[_0xeda5('0x2d')][_0xeda5('0x33')]));_0x124aac[_0xeda5('0x31')]=_0x124aac[_0xeda5('0x31')][_0xeda5('0x34')]?_0x124aac['attributes']:_0x32f87d[_0xeda5('0x30')];if(_0x350515['query'][_0xeda5('0x3e')]){_0x124aac['include']=[{'all':!![]}];}_0x124aac=_[_0xeda5('0x3b')]({},_0x124aac,_0x350515['options']);return db[_0xeda5('0x2b')][_0xeda5('0x43')](_0x124aac)[_0xeda5('0x1f')](handleEntityNotFound(_0x3ab269,null))[_0xeda5('0x1f')](respondWithResult(_0x3ab269,null))[_0xeda5('0x40')](handleError(_0x3ab269,null));};exports[_0xeda5('0x1e')]=function(_0x5b1d87,_0x2122fb){if(_0x5b1d87[_0xeda5('0x44')]['id']){delete _0x5b1d87[_0xeda5('0x44')]['id'];}return db[_0xeda5('0x2b')]['find']({'where':{'id':_0x5b1d87[_0xeda5('0x45')]['id']}})[_0xeda5('0x1f')](handleEntityNotFound(_0x2122fb,null))['then'](saveUpdates(_0x5b1d87[_0xeda5('0x44')],null))[_0xeda5('0x1f')](respondWithResult(_0x2122fb,null))['catch'](handleError(_0x2122fb,null));};exports[_0xeda5('0x46')]=function(_0xc76d23,_0x13aa4e,_0x505c01){return db[_0xeda5('0x47')][_0xeda5('0x48')](function(_0x5d0297){if(_0xc76d23[_0xeda5('0x44')]['mode']===_0xeda5('0x49')){_0xc76d23['body'][_0xeda5('0x4a')]=path[_0xeda5('0x4b')](config[_0xeda5('0x4c')],_0xeda5('0x4d'),_0xc76d23[_0xeda5('0x44')][_0xeda5('0x27')]);}return db[_0xeda5('0x2b')][_0xeda5('0x46')](_0xc76d23[_0xeda5('0x44')],{'transaction':_0x5d0297})[_0xeda5('0x1f')](function(_0x23f2d3){if(_0xc76d23['body'][_0xeda5('0x4e')]===_0xeda5('0x49')){fs[_0xeda5('0x4f')](_0x23f2d3[_0xeda5('0x4a')],parseInt(_0xeda5('0x50'),0x8));}var _0x471466=_0xc76d23['user'][_0xeda5('0x21')]({'plain':!![]});if(!_0x471466)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x471466[_0xeda5('0x51')]===_0xeda5('0x52')){var _0x3fe0a4=_0x23f2d3[_0xeda5('0x21')]({'plain':!![]});return db[_0xeda5('0x53')][_0xeda5('0x43')]({'where':{'name':_0xeda5('0x22'),'userProfileId':_0x471466[_0xeda5('0x54')]},'raw':!![]})[_0xeda5('0x1f')](function(_0x1c5162){if(_0x1c5162&&_0x1c5162[_0xeda5('0x55')]===0x0){return db[_0xeda5('0x23')][_0xeda5('0x46')]({'name':_0x3fe0a4[_0xeda5('0x27')],'resourceId':_0x3fe0a4['id'],'type':_0x1c5162[_0xeda5('0x27')],'sectionId':_0x1c5162['id']},{})[_0xeda5('0x1f')](function(){return _0x23f2d3;});}else{return _0x23f2d3;}})[_0xeda5('0x40')](function(_0x828faf){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x828faf);});}return _0x23f2d3;});})[_0xeda5('0x1f')](respondWithResult(_0x13aa4e,0xc9))['catch'](handleError(_0x13aa4e,null));};exports[_0xeda5('0x20')]=function(_0x125672,_0x5c5762,_0x2de9ee){var _0x5abd57;return db[_0xeda5('0x2b')]['find']({'where':{'id':_0x125672[_0xeda5('0x45')]['id']}})[_0xeda5('0x1f')](function(_0x4d24a7){if(_0x4d24a7){return db[_0xeda5('0x47')][_0xeda5('0x48')](function(_0x4f6a97){return _0x4d24a7[_0xeda5('0x20')]({'transaction':_0x4f6a97,'raw':!![]})[_0xeda5('0x1f')](function(_0x1944c4){if(_0x1944c4['directory']){fs['readdirSync'](_0x1944c4[_0xeda5('0x4a')])[_0xeda5('0x56')](function(_0xfd4cbd){fs[_0xeda5('0x57')](path[_0xeda5('0x4b')](_0x1944c4[_0xeda5('0x4a')],_0xfd4cbd));});fs[_0xeda5('0x58')](_0x1944c4[_0xeda5('0x4a')]);}return _0x1944c4;});})[_0xeda5('0x40')](function(_0x26cef1){throw new db[(_0xeda5('0x59'))][(_0xeda5('0x5a'))](_0x26cef1[_0xeda5('0x5b')]);});}})[_0xeda5('0x1f')](handleEntityNotFound(_0x5c5762,null))['then'](removeEntity(_0x5c5762,null))[_0xeda5('0x40')](handleError(_0x5c5762,null));};exports[_0xeda5('0x5c')]=function(_0xbc53d3,_0x22e8d3,_0x1e5b04){return db['sequelize'][_0xeda5('0x48')](function(_0x4aae39){var _0x1a2a1d;return db[_0xeda5('0x2b')][_0xeda5('0x43')]({'where':{'id':_0xbc53d3[_0xeda5('0x45')]['id']}})['then'](function(_0x2a7b22){if(_0x2a7b22){_0x1a2a1d=_0x2a7b22;return _0x2a7b22[_0xeda5('0x5c')](_0xbc53d3[_0xeda5('0x44')]['id'],{'transaction':_0x4aae39});}})[_0xeda5('0x1f')](function(_0x14b605){if(_0x14b605){return db['Sound'][_0xeda5('0x5d')]({'where':{'id':_0xbc53d3['body']['id']},'attributes':['id',_0xeda5('0x27'),'save_name','converted_format',_0xeda5('0x5e')],'raw':!![]});}})[_0xeda5('0x1f')](function(_0x43b289){if(_0x43b289){var _0x3e1f5c=path['join'](config[_0xeda5('0x4c')],'server/files/sounds/converted',util['format'](_0xeda5('0x5f'),path['basename'](_0x43b289[_0xeda5('0x60')],path['extname'](_0x43b289[_0xeda5('0x60')])),_0x43b289['converted_format']));var _0xe45e00=path[_0xeda5('0x4b')](config['root'],_0xeda5('0x4d'),_0x1a2a1d['name'],util[_0xeda5('0x61')](_0xeda5('0x5f'),_0x43b289[_0xeda5('0x27')],_0x43b289[_0xeda5('0x62')]));fs[_0xeda5('0x63')](_0x3e1f5c,_0xe45e00);return _0x43b289;}})[_0xeda5('0x40')](function(_0x3d141a){throw new db[(_0xeda5('0x59'))]['ValidationError'](_0x3d141a[_0xeda5('0x5b')]);});})['then'](handleEntityNotFound(_0x22e8d3,null))[_0xeda5('0x1f')](respondWithResult(_0x22e8d3,0xc9))[_0xeda5('0x40')](handleError(_0x22e8d3,null));};exports[_0xeda5('0x64')]=function(_0x3803b2,_0xa1190e,_0x233abc){return db[_0xeda5('0x47')]['transaction'](function(_0xd76046){var _0x230292;return db[_0xeda5('0x2b')][_0xeda5('0x5d')]({'where':{'id':_0x3803b2['params']['id']}})[_0xeda5('0x1f')](handleEntityNotFound(_0xa1190e,null))['then'](function(_0x308cd1){if(_0x308cd1){_0x230292=_0x308cd1;return _0x308cd1['removeSound'](_0x3803b2[_0xeda5('0x45')][_0xeda5('0x65')]);}})[_0xeda5('0x1f')](function(_0x4cf616){if(_0x4cf616){return db[_0xeda5('0x66')]['findOne']({'where':{'id':_0x3803b2[_0xeda5('0x45')][_0xeda5('0x65')]},'attributes':['id',_0xeda5('0x27'),_0xeda5('0x60'),_0xeda5('0x62'),_0xeda5('0x5e')],'raw':!![]});}})[_0xeda5('0x1f')](function(_0x2c339e){if(_0x2c339e){fs['unlinkSync'](path['join'](_0x230292[_0xeda5('0x4a')],util[_0xeda5('0x61')]('%s.%s',_0x2c339e['name'],_0x2c339e[_0xeda5('0x62')])));return _0x2c339e;}})[_0xeda5('0x40')](function(_0x1bb4c6){throw new db[(_0xeda5('0x59'))][(_0xeda5('0x5a'))](_0x1bb4c6['message']);});})['then'](handleEntityNotFound(_0xa1190e,null))[_0xeda5('0x1f')](respondWithStatusCode(_0xa1190e,0xcc))[_0xeda5('0x40')](handleError(_0xa1190e,null));};exports[_0xeda5('0x67')]=function(_0x27f207,_0xcb796,_0x33f392){var _0xd3dc3e={};var _0x25fe2a={};var _0xb7e148;var _0x49a027;return db[_0xeda5('0x2b')][_0xeda5('0x5d')]({'where':{'id':_0x27f207['params']['id']}})['then'](handleEntityNotFound(_0xcb796,null))[_0xeda5('0x1f')](function(_0x20ab3f){if(_0x20ab3f){_0xb7e148=_0x20ab3f;_0x25fe2a[_0xeda5('0x30')]=_[_0xeda5('0x2e')](db[_0xeda5('0x66')]['rawAttributes']);_0x25fe2a['query']=_[_0xeda5('0x2e')](_0x27f207[_0xeda5('0x2d')]);_0x25fe2a[_0xeda5('0x2f')]=_[_0xeda5('0x32')](_0x25fe2a[_0xeda5('0x30')],_0x25fe2a[_0xeda5('0x2d')]);_0xd3dc3e[_0xeda5('0x31')]=_[_0xeda5('0x32')](_0x25fe2a[_0xeda5('0x30')],qs['fields'](_0x27f207['query'][_0xeda5('0x33')]));_0xd3dc3e[_0xeda5('0x31')]=_0xd3dc3e[_0xeda5('0x31')][_0xeda5('0x34')]?_0xd3dc3e[_0xeda5('0x31')]:_0x25fe2a[_0xeda5('0x30')];_0xd3dc3e['order']=qs[_0xeda5('0x38')](_0x27f207[_0xeda5('0x2d')][_0xeda5('0x38')]);_0xd3dc3e['where']=qs[_0xeda5('0x2f')](_['pick'](_0x27f207[_0xeda5('0x2d')],_0x25fe2a[_0xeda5('0x2f')]));if(_0x27f207['query'][_0xeda5('0x68')]){_0xd3dc3e[_0xeda5('0x3a')]=_['merge'](_0xd3dc3e['where'],{'$or':_['map'](_0xd3dc3e[_0xeda5('0x31')],function(_0x5ebe70){var _0x3be25d={};_0x3be25d[_0x5ebe70]={'$like':'%'+_0x27f207[_0xeda5('0x2d')]['filter']+'%'};return _0x3be25d;})});}_0xd3dc3e=_[_0xeda5('0x3b')]({},_0xd3dc3e,_0x27f207['options']);return _0xb7e148[_0xeda5('0x67')](_0xd3dc3e);}})['then'](function(_0x4aa887){if(_0x4aa887){_0x49a027=_0x4aa887['length'];if(!_0x27f207[_0xeda5('0x2d')][_0xeda5('0x69')](_0xeda5('0x35'))){_0xd3dc3e['limit']=qs[_0xeda5('0x1a')](_0x27f207[_0xeda5('0x2d')][_0xeda5('0x1a')]);_0xd3dc3e['offset']=qs[_0xeda5('0x36')](_0x27f207[_0xeda5('0x2d')]['offset']);}return _0xb7e148['getSounds'](_0xd3dc3e);}})[_0xeda5('0x1f')](function(_0x734210){if(_0x734210){return _0x734210?{'count':_0x49a027,'rows':_0x734210}:null;}})[_0xeda5('0x1f')](respondWithResult(_0xcb796,null))[_0xeda5('0x40')](handleError(_0xcb796,null));};