Built motion from commit 0900f080.|2.5.45
[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 _0x4ce2=['count','Content-Range','json','apply','reject','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','sendStatus','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','merge','where','VIRTUAL','filter','includeAll','findAll','rows','include','options','body','find','params','create','sequelize','transaction','directory','join','root','server/files/moh','mode','mkdirSync','user','role','userProfileId','autoAssociation','catch','error','readdirSync','forEach','unlinkSync','rmdirSync','message','addSound','Sound','converted_format','server/files/sounds/converted','format','%s.%s','basename','save_name','extname','symlinkSync','Sequelize','ValidationError','removeSound','findOne','id2','createdAt','getSounds','pick','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','undefined','limit'];(function(_0x18b518,_0x22e1ff){var _0x1356c5=function(_0x511d60){while(--_0x511d60){_0x18b518['push'](_0x18b518['shift']());}};_0x1356c5(++_0x22e1ff);}(_0x4ce2,0x13d));var _0x24ce=function(_0x46342b,_0xa89f38){_0x46342b=_0x46342b-0x0;var _0x1a41d4=_0x4ce2[_0x46342b];return _0x1a41d4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x24ce('0x0'));var zipdir=require(_0x24ce('0x1'));var jsonpatch=require(_0x24ce('0x2'));var rp=require(_0x24ce('0x3'));var moment=require(_0x24ce('0x4'));var BPromise=require(_0x24ce('0x5'));var Mustache=require(_0x24ce('0x6'));var util=require(_0x24ce('0x7'));var path=require(_0x24ce('0x8'));var sox=require(_0x24ce('0x9'));var csv=require(_0x24ce('0xa'));var ejs=require(_0x24ce('0xb'));var fs=require('fs');var fs_extra=require(_0x24ce('0xc'));var _=require(_0x24ce('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x24ce('0xe'));var deskjs=require(_0x24ce('0xf'));var toCsv=require(_0x24ce('0xa'));var querystring=require(_0x24ce('0x10'));var Papa=require(_0x24ce('0x11'));var Redis=require(_0x24ce('0x12'));var authService=require(_0x24ce('0x13'));var qs=require(_0x24ce('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x24ce('0x15'))(_0x24ce('0x16'));var utils=require(_0x24ce('0x17'));var config=require(_0x24ce('0x18'));var licenseUtil=require(_0x24ce('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x54700a,_0x1f0a46){_0x1f0a46=_0x1f0a46||0xcc;return function(_0x4f180a){if(_0x4f180a){return _0x54700a['sendStatus'](_0x1f0a46);}return _0x54700a[_0x24ce('0x1a')](_0x1f0a46)[_0x24ce('0x1b')]();};}function respondWithResult(_0x612c07,_0x4b8c09){_0x4b8c09=_0x4b8c09||0xc8;return function(_0x5cd067){if(_0x5cd067){return _0x612c07['status'](_0x4b8c09)['json'](_0x5cd067);}};}function respondWithFilteredResult(_0x2fc083,_0x523f1c){return function(_0x42733f){if(_0x42733f){var _0x3a06c1=typeof _0x523f1c[_0x24ce('0x1c')]===_0x24ce('0x1d')&&typeof _0x523f1c[_0x24ce('0x1e')]===_0x24ce('0x1d');var _0xc36a20=_0x42733f[_0x24ce('0x1f')];var _0x56e89e=_0x3a06c1?0x0:_0x523f1c[_0x24ce('0x1c')];var _0x36f8f3=_0x3a06c1?_0x42733f[_0x24ce('0x1f')]:_0x523f1c[_0x24ce('0x1c')]+_0x523f1c[_0x24ce('0x1e')];var _0x1181d6;if(_0x36f8f3>=_0xc36a20){_0x36f8f3=_0xc36a20;_0x1181d6=0xc8;}else{_0x1181d6=0xce;}_0x2fc083[_0x24ce('0x1a')](_0x1181d6);return _0x2fc083['set'](_0x24ce('0x20'),_0x56e89e+'-'+_0x36f8f3+'/'+_0xc36a20)[_0x24ce('0x21')](_0x42733f);}return null;};}function patchUpdates(_0xa89e19){return function(_0x2dd467){try{jsonpatch[_0x24ce('0x22')](_0x2dd467,_0xa89e19,!![]);}catch(_0x2017c5){return BPromise[_0x24ce('0x23')](_0x2017c5);}return _0x2dd467[_0x24ce('0x24')]();};}function saveUpdates(_0x3ac846,_0x3a6d37){return function(_0x571441){if(_0x571441){return _0x571441[_0x24ce('0x25')](_0x3ac846)[_0x24ce('0x26')](function(_0x5d6916){return _0x5d6916;});}return null;};}function removeEntity(_0x3aa024,_0x2bceb1){return function(_0x37cf3c){if(_0x37cf3c){return _0x37cf3c[_0x24ce('0x27')]()['then'](function(){var _0x35bdc9=_0x37cf3c[_0x24ce('0x28')]({'plain':!![]});var _0x176900=_0x24ce('0x29');return db[_0x24ce('0x2a')]['destroy']({'where':{'type':_0x176900,'resourceId':_0x35bdc9['id']}})['then'](function(){return _0x37cf3c;});})[_0x24ce('0x26')](function(){_0x3aa024[_0x24ce('0x1a')](0xcc)[_0x24ce('0x1b')]();});}};}function handleEntityNotFound(_0x550c04,_0x1f3436){return function(_0x457f6c){if(!_0x457f6c){_0x550c04[_0x24ce('0x2b')](0x194);}return _0x457f6c;};}function handleError(_0x5ccbf5,_0x1884c3){_0x1884c3=_0x1884c3||0x1f4;return function(_0x4a3a6c){logger['error'](_0x4a3a6c[_0x24ce('0x2c')]);if(_0x4a3a6c[_0x24ce('0x2d')]){delete _0x4a3a6c[_0x24ce('0x2d')];}_0x5ccbf5[_0x24ce('0x1a')](_0x1884c3)[_0x24ce('0x2e')](_0x4a3a6c);};}exports[_0x24ce('0x2f')]=function(_0x221050,_0x507875){var _0x3e5afa={},_0x5e388e={},_0x3852b4={'count':0x0,'rows':[]};var _0xbe3997=_[_0x24ce('0x30')](db[_0x24ce('0x31')][_0x24ce('0x32')],function(_0x15dadf){return{'name':_0x15dadf[_0x24ce('0x33')],'type':_0x15dadf[_0x24ce('0x34')][_0x24ce('0x35')]};});_0x5e388e[_0x24ce('0x36')]=_[_0x24ce('0x30')](_0xbe3997,_0x24ce('0x2d'));_0x5e388e['query']=_[_0x24ce('0x37')](_0x221050[_0x24ce('0x38')]);_0x5e388e['filters']=_[_0x24ce('0x39')](_0x5e388e['model'],_0x5e388e[_0x24ce('0x38')]);_0x3e5afa[_0x24ce('0x3a')]=_[_0x24ce('0x39')](_0x5e388e[_0x24ce('0x36')],qs[_0x24ce('0x3b')](_0x221050[_0x24ce('0x38')][_0x24ce('0x3b')]));_0x3e5afa['attributes']=_0x3e5afa[_0x24ce('0x3a')][_0x24ce('0x3c')]?_0x3e5afa[_0x24ce('0x3a')]:_0x5e388e[_0x24ce('0x36')];if(!_0x221050[_0x24ce('0x38')][_0x24ce('0x3d')](_0x24ce('0x3e'))){_0x3e5afa[_0x24ce('0x1e')]=qs[_0x24ce('0x1e')](_0x221050[_0x24ce('0x38')][_0x24ce('0x1e')]);_0x3e5afa[_0x24ce('0x1c')]=qs['offset'](_0x221050['query'][_0x24ce('0x1c')]);}_0x3e5afa[_0x24ce('0x3f')]=qs[_0x24ce('0x40')](_0x221050['query'][_0x24ce('0x40')]);delete _0x221050[_0x24ce('0x38')][_0x24ce('0x40')];_0x3e5afa['where']=qs[_0x24ce('0x41')](_['pick'](_0x221050['query'],_0x5e388e[_0x24ce('0x41')]),_0xbe3997);if(_0x221050['query']['filter']){_0x3e5afa['where']=_[_0x24ce('0x42')](_0x3e5afa[_0x24ce('0x43')],{'$or':_['map'](_0xbe3997,function(_0x3ec818){if(_0x3ec818[_0x24ce('0x34')]!==_0x24ce('0x44')){var _0x5816e5={};_0x5816e5[_0x3ec818[_0x24ce('0x2d')]]={'$like':'%'+_0x221050[_0x24ce('0x38')][_0x24ce('0x45')]+'%'};return _0x5816e5;}})});}_0x3e5afa=_[_0x24ce('0x42')]({},_0x3e5afa,_0x221050['options']);var _0x50098e={'where':_0x3e5afa['where']};return db[_0x24ce('0x31')][_0x24ce('0x1f')](_0x50098e)['then'](function(_0x175b45){_0x3852b4[_0x24ce('0x1f')]=_0x175b45;if(_0x221050[_0x24ce('0x38')][_0x24ce('0x46')]){_0x3e5afa['include']=[{'all':!![]}];}return db[_0x24ce('0x31')][_0x24ce('0x47')](_0x3e5afa);})[_0x24ce('0x26')](function(_0x12d355){_0x3852b4[_0x24ce('0x48')]=_0x12d355;return _0x3852b4;})[_0x24ce('0x26')](respondWithFilteredResult(_0x507875,_0x3e5afa))['catch'](handleError(_0x507875,null));};exports['show']=function(_0xd06d04,_0x25627c){var _0x2d9b8b={'raw':![],'where':{'id':_0xd06d04['params']['id']}},_0x4b9294={};_0x4b9294[_0x24ce('0x36')]=_['keys'](db['VoiceMusicOnHold'][_0x24ce('0x32')]);_0x4b9294[_0x24ce('0x38')]=_['keys'](_0xd06d04['query']);_0x4b9294[_0x24ce('0x41')]=_[_0x24ce('0x39')](_0x4b9294[_0x24ce('0x36')],_0x4b9294[_0x24ce('0x38')]);_0x2d9b8b['attributes']=_['intersection'](_0x4b9294[_0x24ce('0x36')],qs[_0x24ce('0x3b')](_0xd06d04[_0x24ce('0x38')][_0x24ce('0x3b')]));_0x2d9b8b['attributes']=_0x2d9b8b[_0x24ce('0x3a')][_0x24ce('0x3c')]?_0x2d9b8b[_0x24ce('0x3a')]:_0x4b9294[_0x24ce('0x36')];if(_0xd06d04[_0x24ce('0x38')][_0x24ce('0x46')]){_0x2d9b8b[_0x24ce('0x49')]=[{'all':!![]}];}_0x2d9b8b=_[_0x24ce('0x42')]({},_0x2d9b8b,_0xd06d04[_0x24ce('0x4a')]);return db[_0x24ce('0x31')]['find'](_0x2d9b8b)['then'](handleEntityNotFound(_0x25627c,null))[_0x24ce('0x26')](respondWithResult(_0x25627c,null))['catch'](handleError(_0x25627c,null));};exports[_0x24ce('0x25')]=function(_0x300019,_0x2bd696){if(_0x300019[_0x24ce('0x4b')]['id']){delete _0x300019[_0x24ce('0x4b')]['id'];}return db[_0x24ce('0x31')][_0x24ce('0x4c')]({'where':{'id':_0x300019[_0x24ce('0x4d')]['id']}})[_0x24ce('0x26')](handleEntityNotFound(_0x2bd696,null))[_0x24ce('0x26')](saveUpdates(_0x300019['body'],null))['then'](respondWithResult(_0x2bd696,null))['catch'](handleError(_0x2bd696,null));};exports[_0x24ce('0x4e')]=function(_0x308746,_0x614b6a,_0x50ec04){return db[_0x24ce('0x4f')][_0x24ce('0x50')](function(_0x2c868a){if(_0x308746['body']['mode']==='files'){_0x308746[_0x24ce('0x4b')][_0x24ce('0x51')]=path[_0x24ce('0x52')](config[_0x24ce('0x53')],_0x24ce('0x54'),_0x308746[_0x24ce('0x4b')][_0x24ce('0x2d')]);}return db[_0x24ce('0x31')][_0x24ce('0x4e')](_0x308746[_0x24ce('0x4b')],{'transaction':_0x2c868a})['then'](function(_0x389381){if(_0x308746['body'][_0x24ce('0x55')]==='files'){fs[_0x24ce('0x56')](_0x389381[_0x24ce('0x51')],parseInt('0777',0x8));}var _0x2abd05=_0x308746[_0x24ce('0x57')][_0x24ce('0x28')]({'plain':!![]});if(!_0x2abd05)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2abd05[_0x24ce('0x58')]===_0x24ce('0x57')){var _0x4fce12=_0x389381[_0x24ce('0x28')]({'plain':!![]});return db['UserProfileSection'][_0x24ce('0x4c')]({'where':{'name':'MusicOnHolds','userProfileId':_0x2abd05[_0x24ce('0x59')]},'raw':!![]})[_0x24ce('0x26')](function(_0x316d98){if(_0x316d98&&_0x316d98[_0x24ce('0x5a')]===0x0){return db[_0x24ce('0x2a')][_0x24ce('0x4e')]({'name':_0x4fce12[_0x24ce('0x2d')],'resourceId':_0x4fce12['id'],'type':_0x316d98['name'],'sectionId':_0x316d98['id']},{})[_0x24ce('0x26')](function(){return _0x389381;});}else{return _0x389381;}})[_0x24ce('0x5b')](function(_0xaf10b4){logger[_0x24ce('0x5c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xaf10b4);});}return _0x389381;});})['then'](respondWithResult(_0x614b6a,0xc9))['catch'](handleError(_0x614b6a,null));};exports[_0x24ce('0x27')]=function(_0x5f51ad,_0x4e6ff0,_0x336b55){var _0x194d7b;return db[_0x24ce('0x31')][_0x24ce('0x4c')]({'where':{'id':_0x5f51ad[_0x24ce('0x4d')]['id']}})['then'](function(_0x50ef11){if(_0x50ef11){return db[_0x24ce('0x4f')][_0x24ce('0x50')](function(_0x1e7bc4){return _0x50ef11[_0x24ce('0x27')]({'transaction':_0x1e7bc4,'raw':!![]})[_0x24ce('0x26')](function(_0x266a97){if(_0x266a97[_0x24ce('0x51')]){fs[_0x24ce('0x5d')](_0x266a97[_0x24ce('0x51')])[_0x24ce('0x5e')](function(_0x532014){fs[_0x24ce('0x5f')](path['join'](_0x266a97[_0x24ce('0x51')],_0x532014));});fs[_0x24ce('0x60')](_0x266a97['directory']);}return _0x266a97;});})[_0x24ce('0x5b')](function(_0xa8cb92){throw new db['Sequelize']['ValidationError'](_0xa8cb92[_0x24ce('0x61')]);});}})[_0x24ce('0x26')](handleEntityNotFound(_0x4e6ff0,null))[_0x24ce('0x26')](removeEntity(_0x4e6ff0,null))[_0x24ce('0x5b')](handleError(_0x4e6ff0,null));};exports[_0x24ce('0x62')]=function(_0x80d560,_0x47fcc1,_0x5516ec){return db[_0x24ce('0x4f')][_0x24ce('0x50')](function(_0x799324){var _0x5cbfca;return db[_0x24ce('0x31')][_0x24ce('0x4c')]({'where':{'id':_0x80d560[_0x24ce('0x4d')]['id']}})['then'](function(_0x4948c5){if(_0x4948c5){_0x5cbfca=_0x4948c5;return _0x4948c5['addSound'](_0x80d560[_0x24ce('0x4b')]['id'],{'transaction':_0x799324});}})[_0x24ce('0x26')](function(_0x1e5033){if(_0x1e5033){return db[_0x24ce('0x63')]['findOne']({'where':{'id':_0x80d560['body']['id']},'attributes':['id',_0x24ce('0x2d'),'save_name',_0x24ce('0x64'),'createdAt'],'raw':!![]});}})[_0x24ce('0x26')](function(_0x3b7076){if(_0x3b7076){var _0x2f33d9=path[_0x24ce('0x52')](config[_0x24ce('0x53')],_0x24ce('0x65'),util[_0x24ce('0x66')](_0x24ce('0x67'),path[_0x24ce('0x68')](_0x3b7076[_0x24ce('0x69')],path[_0x24ce('0x6a')](_0x3b7076['save_name'])),_0x3b7076[_0x24ce('0x64')]));var _0x6cda1d=path[_0x24ce('0x52')](config[_0x24ce('0x53')],_0x24ce('0x54'),_0x5cbfca[_0x24ce('0x2d')],util[_0x24ce('0x66')](_0x24ce('0x67'),_0x3b7076[_0x24ce('0x2d')],_0x3b7076[_0x24ce('0x64')]));fs[_0x24ce('0x6b')](_0x2f33d9,_0x6cda1d);return _0x3b7076;}})[_0x24ce('0x5b')](function(_0x1d2622){throw new db[(_0x24ce('0x6c'))][(_0x24ce('0x6d'))](_0x1d2622[_0x24ce('0x61')]);});})[_0x24ce('0x26')](handleEntityNotFound(_0x47fcc1,null))[_0x24ce('0x26')](respondWithResult(_0x47fcc1,0xc9))[_0x24ce('0x5b')](handleError(_0x47fcc1,null));};exports[_0x24ce('0x6e')]=function(_0x2a8958,_0x351dd7,_0xd9b7fd){return db[_0x24ce('0x4f')][_0x24ce('0x50')](function(_0x34b69f){var _0x3218da;return db[_0x24ce('0x31')][_0x24ce('0x6f')]({'where':{'id':_0x2a8958['params']['id']}})[_0x24ce('0x26')](handleEntityNotFound(_0x351dd7,null))['then'](function(_0x58036e){if(_0x58036e){_0x3218da=_0x58036e;return _0x58036e[_0x24ce('0x6e')](_0x2a8958[_0x24ce('0x4d')][_0x24ce('0x70')]);}})['then'](function(_0x3d87bd){if(_0x3d87bd){return db['Sound']['findOne']({'where':{'id':_0x2a8958[_0x24ce('0x4d')][_0x24ce('0x70')]},'attributes':['id','name',_0x24ce('0x69'),_0x24ce('0x64'),_0x24ce('0x71')],'raw':!![]});}})['then'](function(_0x41d9aa){if(_0x41d9aa){fs['unlinkSync'](path[_0x24ce('0x52')](_0x3218da[_0x24ce('0x51')],util[_0x24ce('0x66')]('%s.%s',_0x41d9aa[_0x24ce('0x2d')],_0x41d9aa[_0x24ce('0x64')])));return _0x41d9aa;}})['catch'](function(_0x2fced7){throw new db['Sequelize'][(_0x24ce('0x6d'))](_0x2fced7[_0x24ce('0x61')]);});})[_0x24ce('0x26')](handleEntityNotFound(_0x351dd7,null))[_0x24ce('0x26')](respondWithStatusCode(_0x351dd7,0xcc))[_0x24ce('0x5b')](handleError(_0x351dd7,null));};exports[_0x24ce('0x72')]=function(_0x44178c,_0x5cb52f,_0x504225){var _0x4c28d2={};var _0x1d76fa={};var _0x541f00;var _0x3e0350;return db['VoiceMusicOnHold'][_0x24ce('0x6f')]({'where':{'id':_0x44178c[_0x24ce('0x4d')]['id']}})[_0x24ce('0x26')](handleEntityNotFound(_0x5cb52f,null))[_0x24ce('0x26')](function(_0x21624e){if(_0x21624e){_0x541f00=_0x21624e;_0x1d76fa['model']=_[_0x24ce('0x37')](db['Sound'][_0x24ce('0x32')]);_0x1d76fa['query']=_[_0x24ce('0x37')](_0x44178c[_0x24ce('0x38')]);_0x1d76fa[_0x24ce('0x41')]=_[_0x24ce('0x39')](_0x1d76fa[_0x24ce('0x36')],_0x1d76fa['query']);_0x4c28d2[_0x24ce('0x3a')]=_['intersection'](_0x1d76fa[_0x24ce('0x36')],qs['fields'](_0x44178c['query'][_0x24ce('0x3b')]));_0x4c28d2[_0x24ce('0x3a')]=_0x4c28d2[_0x24ce('0x3a')][_0x24ce('0x3c')]?_0x4c28d2[_0x24ce('0x3a')]:_0x1d76fa[_0x24ce('0x36')];_0x4c28d2[_0x24ce('0x3f')]=qs[_0x24ce('0x40')](_0x44178c[_0x24ce('0x38')]['sort']);_0x4c28d2[_0x24ce('0x43')]=qs[_0x24ce('0x41')](_[_0x24ce('0x73')](_0x44178c[_0x24ce('0x38')],_0x1d76fa['filters']));if(_0x44178c['query']['filter']){_0x4c28d2['where']=_['merge'](_0x4c28d2['where'],{'$or':_[_0x24ce('0x30')](_0x4c28d2[_0x24ce('0x3a')],function(_0x434299){var _0x3a9e13={};_0x3a9e13[_0x434299]={'$like':'%'+_0x44178c[_0x24ce('0x38')][_0x24ce('0x45')]+'%'};return _0x3a9e13;})});}_0x4c28d2=_[_0x24ce('0x42')]({},_0x4c28d2,_0x44178c[_0x24ce('0x4a')]);return _0x541f00[_0x24ce('0x72')](_0x4c28d2);}})[_0x24ce('0x26')](function(_0x5eb0fa){if(_0x5eb0fa){_0x3e0350=_0x5eb0fa[_0x24ce('0x3c')];if(!_0x44178c[_0x24ce('0x38')][_0x24ce('0x3d')](_0x24ce('0x3e'))){_0x4c28d2[_0x24ce('0x1e')]=qs[_0x24ce('0x1e')](_0x44178c[_0x24ce('0x38')]['limit']);_0x4c28d2[_0x24ce('0x1c')]=qs[_0x24ce('0x1c')](_0x44178c[_0x24ce('0x38')]['offset']);}return _0x541f00[_0x24ce('0x72')](_0x4c28d2);}})[_0x24ce('0x26')](function(_0x27040a){if(_0x27040a){return _0x27040a?{'count':_0x3e0350,'rows':_0x27040a}:null;}})[_0x24ce('0x26')](respondWithResult(_0x5cb52f,null))['catch'](handleError(_0x5cb52f,null));};