Built motion from commit 6a92c2cd.|2.6.29
[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 _0x907f=['undefined','count','set','Content-Range','json','apply','reject','save','update','destroy','MusicOnHolds','then','status','stack','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','key','model','name','keys','filters','intersection','query','attributes','fields','length','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','find','body','sequelize','mode','files','join','root','create','mkdirSync','directory','0777','user','get','role','userProfileId','error','transaction','readdirSync','forEach','unlinkSync','rmdirSync','ValidationError','message','addSound','Sound','findOne','save_name','server/files/sounds/converted','basename','extname','converted_format','server/files/moh','format','%s.%s','symlinkSync','removeSound','id2','createdAt','Sequelize','getSounds','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','offset','limit'];(function(_0x243293,_0x37a0f3){var _0x322181=function(_0x24da51){while(--_0x24da51){_0x243293['push'](_0x243293['shift']());}};_0x322181(++_0x37a0f3);}(_0x907f,0xc9));var _0xf907=function(_0x18e7de,_0x177756){_0x18e7de=_0x18e7de-0x0;var _0x3b6215=_0x907f[_0x18e7de];return _0x3b6215;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf907('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf907('0x1'));var rp=require(_0xf907('0x2'));var moment=require(_0xf907('0x3'));var BPromise=require(_0xf907('0x4'));var Mustache=require(_0xf907('0x5'));var util=require('util');var path=require(_0xf907('0x6'));var sox=require(_0xf907('0x7'));var csv=require(_0xf907('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf907('0x9'));var _=require(_0xf907('0xa'));var squel=require(_0xf907('0xb'));var crypto=require(_0xf907('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xf907('0xd'));var toCsv=require(_0xf907('0x8'));var querystring=require('querystring');var Papa=require(_0xf907('0xe'));var Redis=require(_0xf907('0xf'));var authService=require(_0xf907('0x10'));var qs=require(_0xf907('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf907('0x12'));var logger=require(_0xf907('0x13'))(_0xf907('0x14'));var utils=require(_0xf907('0x15'));var config=require(_0xf907('0x16'));var licenseUtil=require(_0xf907('0x17'));var db=require(_0xf907('0x18'))['db'];function respondWithStatusCode(_0x3badbd,_0x4c650c){_0x4c650c=_0x4c650c||0xcc;return function(_0x166a18){if(_0x166a18){return _0x3badbd[_0xf907('0x19')](_0x4c650c);}return _0x3badbd['status'](_0x4c650c)[_0xf907('0x1a')]();};}function respondWithResult(_0x13006c,_0x2ece3b){_0x2ece3b=_0x2ece3b||0xc8;return function(_0x41cc63){if(_0x41cc63){return _0x13006c['status'](_0x2ece3b)['json'](_0x41cc63);}};}function respondWithFilteredResult(_0x30a436,_0x1b9e96){return function(_0x59dd82){if(_0x59dd82){var _0x4d64f9=typeof _0x1b9e96[_0xf907('0x1b')]==='undefined'&&typeof _0x1b9e96[_0xf907('0x1c')]===_0xf907('0x1d');var _0x25c9ed=_0x59dd82[_0xf907('0x1e')];var _0xbd66fd=_0x4d64f9?0x0:_0x1b9e96[_0xf907('0x1b')];var _0x41c575=_0x4d64f9?_0x59dd82[_0xf907('0x1e')]:_0x1b9e96[_0xf907('0x1b')]+_0x1b9e96[_0xf907('0x1c')];var _0x39c30c;if(_0x41c575>=_0x25c9ed){_0x41c575=_0x25c9ed;_0x39c30c=0xc8;}else{_0x39c30c=0xce;}_0x30a436['status'](_0x39c30c);return _0x30a436[_0xf907('0x1f')](_0xf907('0x20'),_0xbd66fd+'-'+_0x41c575+'/'+_0x25c9ed)[_0xf907('0x21')](_0x59dd82);}return null;};}function patchUpdates(_0x10a422){return function(_0x261a25){try{jsonpatch[_0xf907('0x22')](_0x261a25,_0x10a422,!![]);}catch(_0x55d20b){return BPromise[_0xf907('0x23')](_0x55d20b);}return _0x261a25[_0xf907('0x24')]();};}function saveUpdates(_0x1636ba,_0x217342){return function(_0x49b348){if(_0x49b348){return _0x49b348[_0xf907('0x25')](_0x1636ba)['then'](function(_0x399902){return _0x399902;});}return null;};}function removeEntity(_0x5c4fb3,_0x8aa958){return function(_0x355a5f){if(_0x355a5f){return _0x355a5f[_0xf907('0x26')]()['then'](function(){var _0x218b29=_0x355a5f['get']({'plain':!![]});var _0x2e2af3=_0xf907('0x27');return db['UserProfileResource'][_0xf907('0x26')]({'where':{'type':_0x2e2af3,'resourceId':_0x218b29['id']}})[_0xf907('0x28')](function(){return _0x355a5f;});})['then'](function(){_0x5c4fb3[_0xf907('0x29')](0xcc)[_0xf907('0x1a')]();});}};}function handleEntityNotFound(_0x1dd1ab,_0x16af96){return function(_0x386a7d){if(!_0x386a7d){_0x1dd1ab[_0xf907('0x19')](0x194);}return _0x386a7d;};}function handleError(_0x3a7c01,_0x1f7f4c){_0x1f7f4c=_0x1f7f4c||0x1f4;return function(_0x369bd5){logger['error'](_0x369bd5[_0xf907('0x2a')]);if(_0x369bd5['name']){delete _0x369bd5['name'];}_0x3a7c01[_0xf907('0x29')](_0x1f7f4c)[_0xf907('0x2b')](_0x369bd5);};}exports[_0xf907('0x2c')]=function(_0x12ced9,_0x5b889d){var _0x288b5a={},_0x4d5fa1={},_0x119cb0={'count':0x0,'rows':[]};var _0x31d285=_[_0xf907('0x2d')](db[_0xf907('0x2e')][_0xf907('0x2f')],function(_0x2d9cdd){return{'name':_0x2d9cdd[_0xf907('0x30')],'type':_0x2d9cdd['type'][_0xf907('0x31')]};});_0x4d5fa1[_0xf907('0x32')]=_['map'](_0x31d285,_0xf907('0x33'));_0x4d5fa1['query']=_[_0xf907('0x34')](_0x12ced9['query']);_0x4d5fa1[_0xf907('0x35')]=_[_0xf907('0x36')](_0x4d5fa1[_0xf907('0x32')],_0x4d5fa1[_0xf907('0x37')]);_0x288b5a[_0xf907('0x38')]=_[_0xf907('0x36')](_0x4d5fa1[_0xf907('0x32')],qs['fields'](_0x12ced9[_0xf907('0x37')][_0xf907('0x39')]));_0x288b5a[_0xf907('0x38')]=_0x288b5a[_0xf907('0x38')][_0xf907('0x3a')]?_0x288b5a[_0xf907('0x38')]:_0x4d5fa1[_0xf907('0x32')];if(!_0x12ced9['query']['hasOwnProperty'](_0xf907('0x3b'))){_0x288b5a[_0xf907('0x1c')]=qs[_0xf907('0x1c')](_0x12ced9[_0xf907('0x37')]['limit']);_0x288b5a[_0xf907('0x1b')]=qs['offset'](_0x12ced9[_0xf907('0x37')][_0xf907('0x1b')]);}_0x288b5a[_0xf907('0x3c')]=qs[_0xf907('0x3d')](_0x12ced9['query']['sort']);delete _0x12ced9[_0xf907('0x37')][_0xf907('0x3d')];_0x288b5a[_0xf907('0x3e')]=qs[_0xf907('0x35')](_[_0xf907('0x3f')](_0x12ced9[_0xf907('0x37')],_0x4d5fa1[_0xf907('0x35')]),_0x31d285);if(_0x12ced9['query']['filter']){_0x288b5a[_0xf907('0x3e')]=_[_0xf907('0x40')](_0x288b5a[_0xf907('0x3e')],{'$or':_[_0xf907('0x2d')](_0x31d285,function(_0x23dcae){if(_0x23dcae[_0xf907('0x41')]!==_0xf907('0x42')){var _0x5aaa95={};_0x5aaa95[_0x23dcae[_0xf907('0x33')]]={'$like':'%'+_0x12ced9['query'][_0xf907('0x43')]+'%'};return _0x5aaa95;}})});}_0x288b5a=_['merge']({},_0x288b5a,_0x12ced9[_0xf907('0x44')]);var _0x4e73d0={'where':_0x288b5a[_0xf907('0x3e')]};return db[_0xf907('0x2e')]['count'](_0x4e73d0)['then'](function(_0x17ec65){_0x119cb0[_0xf907('0x1e')]=_0x17ec65;if(_0x12ced9[_0xf907('0x37')]['includeAll']){_0x288b5a[_0xf907('0x45')]=[{'all':!![]}];}return db[_0xf907('0x2e')][_0xf907('0x46')](_0x288b5a);})[_0xf907('0x28')](function(_0x10a523){_0x119cb0[_0xf907('0x47')]=_0x10a523;return _0x119cb0;})[_0xf907('0x28')](respondWithFilteredResult(_0x5b889d,_0x288b5a))[_0xf907('0x48')](handleError(_0x5b889d,null));};exports[_0xf907('0x49')]=function(_0x4fa9f2,_0x2c6e9d){var _0x3a0800={'raw':![],'where':{'id':_0x4fa9f2[_0xf907('0x4a')]['id']}},_0x28aee0={};_0x28aee0['model']=_[_0xf907('0x34')](db['VoiceMusicOnHold'][_0xf907('0x2f')]);_0x28aee0['query']=_[_0xf907('0x34')](_0x4fa9f2[_0xf907('0x37')]);_0x28aee0[_0xf907('0x35')]=_['intersection'](_0x28aee0[_0xf907('0x32')],_0x28aee0['query']);_0x3a0800['attributes']=_[_0xf907('0x36')](_0x28aee0[_0xf907('0x32')],qs[_0xf907('0x39')](_0x4fa9f2[_0xf907('0x37')]['fields']));_0x3a0800['attributes']=_0x3a0800[_0xf907('0x38')][_0xf907('0x3a')]?_0x3a0800['attributes']:_0x28aee0[_0xf907('0x32')];if(_0x4fa9f2[_0xf907('0x37')]['includeAll']){_0x3a0800[_0xf907('0x45')]=[{'all':!![]}];}_0x3a0800=_['merge']({},_0x3a0800,_0x4fa9f2[_0xf907('0x44')]);return db[_0xf907('0x2e')][_0xf907('0x4b')](_0x3a0800)[_0xf907('0x28')](handleEntityNotFound(_0x2c6e9d,null))['then'](respondWithResult(_0x2c6e9d,null))[_0xf907('0x48')](handleError(_0x2c6e9d,null));};exports['update']=function(_0x1b57da,_0x34d3ab){if(_0x1b57da['body']['id']){delete _0x1b57da[_0xf907('0x4c')]['id'];}return db[_0xf907('0x2e')]['find']({'where':{'id':_0x1b57da[_0xf907('0x4a')]['id']}})[_0xf907('0x28')](handleEntityNotFound(_0x34d3ab,null))[_0xf907('0x28')](saveUpdates(_0x1b57da[_0xf907('0x4c')],null))['then'](respondWithResult(_0x34d3ab,null))['catch'](handleError(_0x34d3ab,null));};exports['create']=function(_0x1b036a,_0x8b1b11,_0x18b82e){return db[_0xf907('0x4d')]['transaction'](function(_0x46df3b){if(_0x1b036a[_0xf907('0x4c')][_0xf907('0x4e')]===_0xf907('0x4f')){_0x1b036a[_0xf907('0x4c')]['directory']=path[_0xf907('0x50')](config[_0xf907('0x51')],'server/files/moh',_0x1b036a[_0xf907('0x4c')][_0xf907('0x33')]);}return db[_0xf907('0x2e')][_0xf907('0x52')](_0x1b036a[_0xf907('0x4c')],{'transaction':_0x46df3b})[_0xf907('0x28')](function(_0x36654c){if(_0x1b036a[_0xf907('0x4c')][_0xf907('0x4e')]===_0xf907('0x4f')){fs[_0xf907('0x53')](_0x36654c[_0xf907('0x54')],parseInt(_0xf907('0x55'),0x8));}var _0xb3aee9=_0x1b036a[_0xf907('0x56')][_0xf907('0x57')]({'plain':!![]});if(!_0xb3aee9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xb3aee9[_0xf907('0x58')]==='user'){var _0x4d1a92=_0x36654c['get']({'plain':!![]});return db['UserProfileSection'][_0xf907('0x4b')]({'where':{'name':'MusicOnHolds','userProfileId':_0xb3aee9[_0xf907('0x59')]},'raw':!![]})['then'](function(_0x20104a){if(_0x20104a&&_0x20104a['autoAssociation']===0x0){return db['UserProfileResource'][_0xf907('0x52')]({'name':_0x4d1a92['name'],'resourceId':_0x4d1a92['id'],'type':_0x20104a['name'],'sectionId':_0x20104a['id']},{})[_0xf907('0x28')](function(){return _0x36654c;});}else{return _0x36654c;}})['catch'](function(_0x43b1a4){logger[_0xf907('0x5a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x43b1a4);});}return _0x36654c;});})[_0xf907('0x28')](respondWithResult(_0x8b1b11,0xc9))[_0xf907('0x48')](handleError(_0x8b1b11,null));};exports[_0xf907('0x26')]=function(_0x1af5c9,_0xe0cf74,_0x55cbd6){var _0x5ce886;return db[_0xf907('0x2e')][_0xf907('0x4b')]({'where':{'id':_0x1af5c9[_0xf907('0x4a')]['id']}})[_0xf907('0x28')](function(_0x53802a){if(_0x53802a){return db[_0xf907('0x4d')][_0xf907('0x5b')](function(_0xf6d7b7){return _0x53802a['destroy']({'transaction':_0xf6d7b7,'raw':!![]})[_0xf907('0x28')](function(_0x5a4190){if(_0x5a4190[_0xf907('0x54')]){fs[_0xf907('0x5c')](_0x5a4190[_0xf907('0x54')])[_0xf907('0x5d')](function(_0xf091c7){fs[_0xf907('0x5e')](path[_0xf907('0x50')](_0x5a4190[_0xf907('0x54')],_0xf091c7));});fs[_0xf907('0x5f')](_0x5a4190[_0xf907('0x54')]);}return _0x5a4190;});})[_0xf907('0x48')](function(_0x3fad93){throw new db['Sequelize'][(_0xf907('0x60'))](_0x3fad93[_0xf907('0x61')]);});}})[_0xf907('0x28')](handleEntityNotFound(_0xe0cf74,null))[_0xf907('0x28')](removeEntity(_0xe0cf74,null))[_0xf907('0x48')](handleError(_0xe0cf74,null));};exports['addSound']=function(_0x47ea59,_0x5e2491,_0x18e4fb){return db['sequelize'][_0xf907('0x5b')](function(_0x3ac9aa){var _0xdaccfa;return db[_0xf907('0x2e')][_0xf907('0x4b')]({'where':{'id':_0x47ea59['params']['id']}})[_0xf907('0x28')](function(_0x45cc66){if(_0x45cc66){_0xdaccfa=_0x45cc66;return _0x45cc66[_0xf907('0x62')](_0x47ea59[_0xf907('0x4c')]['id'],{'transaction':_0x3ac9aa});}})[_0xf907('0x28')](function(_0x3f7850){if(_0x3f7850){return db[_0xf907('0x63')][_0xf907('0x64')]({'where':{'id':_0x47ea59[_0xf907('0x4c')]['id']},'attributes':['id',_0xf907('0x33'),_0xf907('0x65'),'converted_format','createdAt'],'raw':!![]});}})[_0xf907('0x28')](function(_0x486993){if(_0x486993){var _0x147fa3=path['join'](config[_0xf907('0x51')],_0xf907('0x66'),util['format']('%s.%s',path[_0xf907('0x67')](_0x486993['save_name'],path[_0xf907('0x68')](_0x486993[_0xf907('0x65')])),_0x486993[_0xf907('0x69')]));var _0x2841f6=path[_0xf907('0x50')](config['root'],_0xf907('0x6a'),_0xdaccfa[_0xf907('0x33')],util[_0xf907('0x6b')](_0xf907('0x6c'),_0x486993['name'],_0x486993[_0xf907('0x69')]));fs[_0xf907('0x6d')](_0x147fa3,_0x2841f6);return _0x486993;}})[_0xf907('0x48')](function(_0x24d729){throw new db['Sequelize'][(_0xf907('0x60'))](_0x24d729[_0xf907('0x61')]);});})['then'](handleEntityNotFound(_0x5e2491,null))[_0xf907('0x28')](respondWithResult(_0x5e2491,0xc9))['catch'](handleError(_0x5e2491,null));};exports[_0xf907('0x6e')]=function(_0x2b9915,_0x9414d0,_0x4db6de){return db['sequelize']['transaction'](function(_0x53f4f2){var _0x326944;return db[_0xf907('0x2e')][_0xf907('0x64')]({'where':{'id':_0x2b9915[_0xf907('0x4a')]['id']}})['then'](handleEntityNotFound(_0x9414d0,null))[_0xf907('0x28')](function(_0x460a31){if(_0x460a31){_0x326944=_0x460a31;return _0x460a31[_0xf907('0x6e')](_0x2b9915[_0xf907('0x4a')][_0xf907('0x6f')]);}})[_0xf907('0x28')](function(_0x2d7505){if(_0x2d7505){return db[_0xf907('0x63')][_0xf907('0x64')]({'where':{'id':_0x2b9915[_0xf907('0x4a')]['id2']},'attributes':['id','name',_0xf907('0x65'),_0xf907('0x69'),_0xf907('0x70')],'raw':!![]});}})[_0xf907('0x28')](function(_0x16031a){if(_0x16031a){fs['unlinkSync'](path['join'](_0x326944[_0xf907('0x54')],util[_0xf907('0x6b')](_0xf907('0x6c'),_0x16031a[_0xf907('0x33')],_0x16031a['converted_format'])));return _0x16031a;}})[_0xf907('0x48')](function(_0x24d1f3){throw new db[(_0xf907('0x71'))][(_0xf907('0x60'))](_0x24d1f3['message']);});})['then'](handleEntityNotFound(_0x9414d0,null))[_0xf907('0x28')](respondWithStatusCode(_0x9414d0,0xcc))[_0xf907('0x48')](handleError(_0x9414d0,null));};exports['getSounds']=function(_0x3da1d5,_0x532da3,_0x34109b){var _0x5c02cf={};var _0x3b8159={};var _0x9e1530;var _0x398c22;return db[_0xf907('0x2e')][_0xf907('0x64')]({'where':{'id':_0x3da1d5[_0xf907('0x4a')]['id']}})[_0xf907('0x28')](handleEntityNotFound(_0x532da3,null))[_0xf907('0x28')](function(_0x5a9577){if(_0x5a9577){_0x9e1530=_0x5a9577;_0x3b8159[_0xf907('0x32')]=_[_0xf907('0x34')](db[_0xf907('0x63')][_0xf907('0x2f')]);_0x3b8159['query']=_[_0xf907('0x34')](_0x3da1d5[_0xf907('0x37')]);_0x3b8159[_0xf907('0x35')]=_[_0xf907('0x36')](_0x3b8159[_0xf907('0x32')],_0x3b8159[_0xf907('0x37')]);_0x5c02cf[_0xf907('0x38')]=_[_0xf907('0x36')](_0x3b8159[_0xf907('0x32')],qs[_0xf907('0x39')](_0x3da1d5[_0xf907('0x37')]['fields']));_0x5c02cf[_0xf907('0x38')]=_0x5c02cf['attributes'][_0xf907('0x3a')]?_0x5c02cf['attributes']:_0x3b8159[_0xf907('0x32')];_0x5c02cf[_0xf907('0x3c')]=qs[_0xf907('0x3d')](_0x3da1d5[_0xf907('0x37')][_0xf907('0x3d')]);_0x5c02cf[_0xf907('0x3e')]=qs['filters'](_[_0xf907('0x3f')](_0x3da1d5[_0xf907('0x37')],_0x3b8159[_0xf907('0x35')]));if(_0x3da1d5[_0xf907('0x37')]['filter']){_0x5c02cf['where']=_[_0xf907('0x40')](_0x5c02cf[_0xf907('0x3e')],{'$or':_[_0xf907('0x2d')](_0x5c02cf[_0xf907('0x38')],function(_0xdad718){var _0xa76d8c={};_0xa76d8c[_0xdad718]={'$like':'%'+_0x3da1d5[_0xf907('0x37')][_0xf907('0x43')]+'%'};return _0xa76d8c;})});}_0x5c02cf=_['merge']({},_0x5c02cf,_0x3da1d5[_0xf907('0x44')]);return _0x9e1530[_0xf907('0x72')](_0x5c02cf);}})['then'](function(_0x503bc3){if(_0x503bc3){_0x398c22=_0x503bc3['length'];if(!_0x3da1d5[_0xf907('0x37')]['hasOwnProperty'](_0xf907('0x3b'))){_0x5c02cf['limit']=qs[_0xf907('0x1c')](_0x3da1d5[_0xf907('0x37')]['limit']);_0x5c02cf[_0xf907('0x1b')]=qs[_0xf907('0x1b')](_0x3da1d5[_0xf907('0x37')]['offset']);}return _0x9e1530[_0xf907('0x72')](_0x5c02cf);}})['then'](function(_0x4f95bb){if(_0x4f95bb){return _0x4f95bb?{'count':_0x398c22,'rows':_0x4f95bb}:null;}})[_0xf907('0x28')](respondWithResult(_0x532da3,null))[_0xf907('0x48')](handleError(_0x532da3,null));};