585c6f115c5b63d6ba31b713438db2b3bc142792
[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 _0x3864=['find','create','sequelize','transaction','files','directory','join','server/files/moh','mode','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','MusicOnHolds','autoAssociation','readdirSync','forEach','unlinkSync','rmdirSync','ValidationError','addSound','Sound','findOne','save_name','createdAt','server/files/sounds/converted','format','%s.%s','extname','symlinkSync','message','removeSound','id2','converted_format','Sequelize','getSounds','filter','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','VoiceMusicOnHold','fieldName','type','key','keys','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','findAll','rows','params','rawAttributes','include','catch','body'];(function(_0x41cd0d,_0x4770f3){var _0x15dd9e=function(_0x322811){while(--_0x322811){_0x41cd0d['push'](_0x41cd0d['shift']());}};_0x15dd9e(++_0x4770f3);}(_0x3864,0x97));var _0x4386=function(_0x769fc6,_0x2c3c31){_0x769fc6=_0x769fc6-0x0;var _0x396fce=_0x3864[_0x769fc6];return _0x396fce;};'use strict';var emlformat=require(_0x4386('0x0'));var rimraf=require(_0x4386('0x1'));var zipdir=require(_0x4386('0x2'));var jsonpatch=require(_0x4386('0x3'));var rp=require(_0x4386('0x4'));var moment=require(_0x4386('0x5'));var BPromise=require(_0x4386('0x6'));var Mustache=require(_0x4386('0x7'));var util=require(_0x4386('0x8'));var path=require(_0x4386('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4386('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x4386('0xb'));var crypto=require(_0x4386('0xc'));var jsforce=require(_0x4386('0xd'));var deskjs=require(_0x4386('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x4386('0xf'));var authService=require(_0x4386('0x10'));var qs=require(_0x4386('0x11'));var as=require(_0x4386('0x12'));var hardwareService=require(_0x4386('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x4386('0x14'));var licenseUtil=require(_0x4386('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xe0c270,_0x37d427){_0x37d427=_0x37d427||0xcc;return function(_0xaf282d){if(_0xaf282d){return _0xe0c270[_0x4386('0x16')](_0x37d427);}return _0xe0c270[_0x4386('0x17')](_0x37d427)[_0x4386('0x18')]();};}function respondWithResult(_0x1637fd,_0x270954){_0x270954=_0x270954||0xc8;return function(_0x1a8cdc){if(_0x1a8cdc){return _0x1637fd[_0x4386('0x17')](_0x270954)[_0x4386('0x19')](_0x1a8cdc);}};}function respondWithFilteredResult(_0x35246f,_0x2f0bec){return function(_0x51d7f0){if(_0x51d7f0){var _0x3a4596=typeof _0x2f0bec[_0x4386('0x1a')]===_0x4386('0x1b')&&typeof _0x2f0bec['limit']===_0x4386('0x1b');var _0x1bebc5=_0x51d7f0['count'];var _0x29a611=_0x3a4596?0x0:_0x2f0bec[_0x4386('0x1a')];var _0xa4493b=_0x3a4596?_0x51d7f0[_0x4386('0x1c')]:_0x2f0bec[_0x4386('0x1a')]+_0x2f0bec[_0x4386('0x1d')];var _0x70185c;if(_0xa4493b>=_0x1bebc5){_0xa4493b=_0x1bebc5;_0x70185c=0xc8;}else{_0x70185c=0xce;}_0x35246f[_0x4386('0x17')](_0x70185c);return _0x35246f[_0x4386('0x1e')](_0x4386('0x1f'),_0x29a611+'-'+_0xa4493b+'/'+_0x1bebc5)['json'](_0x51d7f0);}return null;};}function patchUpdates(_0x7a98f1){return function(_0x5ccda8){try{jsonpatch[_0x4386('0x20')](_0x5ccda8,_0x7a98f1,!![]);}catch(_0x58c563){return BPromise[_0x4386('0x21')](_0x58c563);}return _0x5ccda8[_0x4386('0x22')]();};}function saveUpdates(_0x47d6d1,_0x2cf960){return function(_0x141d8c){if(_0x141d8c){return _0x141d8c[_0x4386('0x23')](_0x47d6d1)[_0x4386('0x24')](function(_0x133d40){return _0x133d40;});}return null;};}function removeEntity(_0x2f4c12,_0x3f3d53){return function(_0x468c24){if(_0x468c24){return _0x468c24[_0x4386('0x25')]()[_0x4386('0x24')](function(){var _0x2920e3=_0x468c24[_0x4386('0x26')]({'plain':!![]});var _0x1d6e0c='MusicOnHolds';return db[_0x4386('0x27')]['destroy']({'where':{'type':_0x1d6e0c,'resourceId':_0x2920e3['id']}})[_0x4386('0x24')](function(){return _0x468c24;});})['then'](function(){_0x2f4c12[_0x4386('0x17')](0xcc)[_0x4386('0x18')]();});}};}function handleEntityNotFound(_0x1911fc,_0x5a5281){return function(_0x238cb1){if(!_0x238cb1){_0x1911fc[_0x4386('0x16')](0x194);}return _0x238cb1;};}function handleError(_0x41c994,_0x461665){_0x461665=_0x461665||0x1f4;return function(_0x35507c){logger[_0x4386('0x28')](_0x35507c[_0x4386('0x29')]);if(_0x35507c[_0x4386('0x2a')]){delete _0x35507c[_0x4386('0x2a')];}_0x41c994[_0x4386('0x17')](_0x461665)[_0x4386('0x2b')](_0x35507c);};}exports[_0x4386('0x2c')]=function(_0x2ee7e0,_0x4a85a2){var _0x12439f={},_0x42d181={},_0xcd0ad7={'count':0x0,'rows':[]};var _0x50db59=_[_0x4386('0x2d')](db[_0x4386('0x2e')]['rawAttributes'],function(_0x349036){return{'name':_0x349036[_0x4386('0x2f')],'type':_0x349036[_0x4386('0x30')][_0x4386('0x31')]};});_0x42d181['model']=_[_0x4386('0x2d')](_0x50db59,'name');_0x42d181['query']=_[_0x4386('0x32')](_0x2ee7e0[_0x4386('0x33')]);_0x42d181[_0x4386('0x34')]=_[_0x4386('0x35')](_0x42d181['model'],_0x42d181['query']);_0x12439f[_0x4386('0x36')]=_[_0x4386('0x35')](_0x42d181[_0x4386('0x37')],qs[_0x4386('0x38')](_0x2ee7e0[_0x4386('0x33')][_0x4386('0x38')]));_0x12439f[_0x4386('0x36')]=_0x12439f['attributes'][_0x4386('0x39')]?_0x12439f['attributes']:_0x42d181[_0x4386('0x37')];if(!_0x2ee7e0[_0x4386('0x33')][_0x4386('0x3a')](_0x4386('0x3b'))){_0x12439f[_0x4386('0x1d')]=qs[_0x4386('0x1d')](_0x2ee7e0[_0x4386('0x33')][_0x4386('0x1d')]);_0x12439f['offset']=qs[_0x4386('0x1a')](_0x2ee7e0[_0x4386('0x33')]['offset']);}_0x12439f[_0x4386('0x3c')]=qs[_0x4386('0x3d')](_0x2ee7e0[_0x4386('0x33')][_0x4386('0x3d')]);delete _0x2ee7e0[_0x4386('0x33')][_0x4386('0x3d')];_0x12439f[_0x4386('0x3e')]=qs[_0x4386('0x34')](_[_0x4386('0x3f')](_0x2ee7e0['query'],_0x42d181[_0x4386('0x34')]),_0x50db59);if(_0x2ee7e0[_0x4386('0x33')]['filter']){_0x12439f[_0x4386('0x3e')]=_[_0x4386('0x40')](_0x12439f['where'],{'$or':_['map'](_0x50db59,function(_0x5f3005){if(_0x5f3005['type']!==_0x4386('0x41')){var _0x5c7e4a={};_0x5c7e4a[_0x5f3005['name']]={'$like':'%'+_0x2ee7e0[_0x4386('0x33')]['filter']+'%'};return _0x5c7e4a;}})});}_0x12439f=_[_0x4386('0x40')]({},_0x12439f,_0x2ee7e0[_0x4386('0x42')]);var _0x586c63={'where':_0x12439f[_0x4386('0x3e')]};return db[_0x4386('0x2e')]['count'](_0x586c63)[_0x4386('0x24')](function(_0x108e1c){_0xcd0ad7[_0x4386('0x1c')]=_0x108e1c;if(_0x2ee7e0['query'][_0x4386('0x43')]){_0x12439f['include']=[{'all':!![]}];}return db[_0x4386('0x2e')][_0x4386('0x44')](_0x12439f);})[_0x4386('0x24')](function(_0x29ae36){_0xcd0ad7[_0x4386('0x45')]=_0x29ae36;return _0xcd0ad7;})[_0x4386('0x24')](respondWithFilteredResult(_0x4a85a2,_0x12439f))['catch'](handleError(_0x4a85a2,null));};exports['show']=function(_0x1be0f3,_0x54f8d6){var _0x11f833={'raw':![],'where':{'id':_0x1be0f3[_0x4386('0x46')]['id']}},_0x571910={};_0x571910[_0x4386('0x37')]=_[_0x4386('0x32')](db[_0x4386('0x2e')][_0x4386('0x47')]);_0x571910[_0x4386('0x33')]=_[_0x4386('0x32')](_0x1be0f3['query']);_0x571910[_0x4386('0x34')]=_['intersection'](_0x571910[_0x4386('0x37')],_0x571910[_0x4386('0x33')]);_0x11f833[_0x4386('0x36')]=_[_0x4386('0x35')](_0x571910[_0x4386('0x37')],qs[_0x4386('0x38')](_0x1be0f3[_0x4386('0x33')][_0x4386('0x38')]));_0x11f833[_0x4386('0x36')]=_0x11f833[_0x4386('0x36')][_0x4386('0x39')]?_0x11f833[_0x4386('0x36')]:_0x571910[_0x4386('0x37')];if(_0x1be0f3[_0x4386('0x33')][_0x4386('0x43')]){_0x11f833[_0x4386('0x48')]=[{'all':!![]}];}_0x11f833=_[_0x4386('0x40')]({},_0x11f833,_0x1be0f3[_0x4386('0x42')]);return db[_0x4386('0x2e')]['find'](_0x11f833)[_0x4386('0x24')](handleEntityNotFound(_0x54f8d6,null))[_0x4386('0x24')](respondWithResult(_0x54f8d6,null))[_0x4386('0x49')](handleError(_0x54f8d6,null));};exports[_0x4386('0x23')]=function(_0x1798e7,_0x4ddced){if(_0x1798e7[_0x4386('0x4a')]['id']){delete _0x1798e7[_0x4386('0x4a')]['id'];}return db['VoiceMusicOnHold'][_0x4386('0x4b')]({'where':{'id':_0x1798e7[_0x4386('0x46')]['id']}})[_0x4386('0x24')](handleEntityNotFound(_0x4ddced,null))[_0x4386('0x24')](saveUpdates(_0x1798e7[_0x4386('0x4a')],null))['then'](respondWithResult(_0x4ddced,null))['catch'](handleError(_0x4ddced,null));};exports[_0x4386('0x4c')]=function(_0x44a779,_0x268e59,_0x16f17e){return db[_0x4386('0x4d')][_0x4386('0x4e')](function(_0x398460){if(_0x44a779['body']['mode']===_0x4386('0x4f')){_0x44a779[_0x4386('0x4a')][_0x4386('0x50')]=path[_0x4386('0x51')](config['root'],_0x4386('0x52'),_0x44a779[_0x4386('0x4a')][_0x4386('0x2a')]);}return db['VoiceMusicOnHold'][_0x4386('0x4c')](_0x44a779[_0x4386('0x4a')],{'transaction':_0x398460})[_0x4386('0x24')](function(_0x3a88d9){if(_0x44a779[_0x4386('0x4a')][_0x4386('0x53')]===_0x4386('0x4f')){fs[_0x4386('0x54')](_0x3a88d9[_0x4386('0x50')],parseInt(_0x4386('0x55'),0x8));}var _0x2190bd=_0x44a779[_0x4386('0x56')][_0x4386('0x26')]({'plain':!![]});if(!_0x2190bd)throw new Error(_0x4386('0x57'));if(_0x2190bd[_0x4386('0x58')]===_0x4386('0x56')){var _0x342857=_0x3a88d9[_0x4386('0x26')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0x4386('0x59'),'userProfileId':_0x2190bd['userProfileId']},'raw':!![]})[_0x4386('0x24')](function(_0x7c828d){if(_0x7c828d&&_0x7c828d[_0x4386('0x5a')]===0x0){return db[_0x4386('0x27')][_0x4386('0x4c')]({'name':_0x342857['name'],'resourceId':_0x342857['id'],'type':_0x7c828d[_0x4386('0x2a')],'sectionId':_0x7c828d['id']},{})[_0x4386('0x24')](function(){return _0x3a88d9;});}else{return _0x3a88d9;}})[_0x4386('0x49')](function(_0x2c83a9){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2c83a9);});}return _0x3a88d9;});})[_0x4386('0x24')](respondWithResult(_0x268e59,0xc9))[_0x4386('0x49')](handleError(_0x268e59,null));};exports[_0x4386('0x25')]=function(_0x184376,_0x4c85a1,_0xeed951){var _0x22403e;return db[_0x4386('0x2e')][_0x4386('0x4b')]({'where':{'id':_0x184376['params']['id']}})[_0x4386('0x24')](function(_0x212093){if(_0x212093){return db[_0x4386('0x4d')][_0x4386('0x4e')](function(_0x10d720){return _0x212093['destroy']({'transaction':_0x10d720,'raw':!![]})[_0x4386('0x24')](function(_0x24ce14){if(_0x24ce14[_0x4386('0x50')]){fs[_0x4386('0x5b')](_0x24ce14[_0x4386('0x50')])[_0x4386('0x5c')](function(_0x4b6a17){fs[_0x4386('0x5d')](path['join'](_0x24ce14[_0x4386('0x50')],_0x4b6a17));});fs[_0x4386('0x5e')](_0x24ce14['directory']);}return _0x24ce14;});})[_0x4386('0x49')](function(_0x21bc23){throw new db['Sequelize'][(_0x4386('0x5f'))](_0x21bc23['message']);});}})[_0x4386('0x24')](handleEntityNotFound(_0x4c85a1,null))[_0x4386('0x24')](removeEntity(_0x4c85a1,null))['catch'](handleError(_0x4c85a1,null));};exports[_0x4386('0x60')]=function(_0x3eff80,_0x83dedb,_0x1928f7){return db[_0x4386('0x4d')][_0x4386('0x4e')](function(_0x108357){var _0x352c96;return db[_0x4386('0x2e')][_0x4386('0x4b')]({'where':{'id':_0x3eff80['params']['id']}})['then'](function(_0x1b66f0){if(_0x1b66f0){_0x352c96=_0x1b66f0;return _0x1b66f0[_0x4386('0x60')](_0x3eff80[_0x4386('0x4a')]['id'],{'transaction':_0x108357});}})[_0x4386('0x24')](function(_0x3d1b3a){if(_0x3d1b3a){return db[_0x4386('0x61')][_0x4386('0x62')]({'where':{'id':_0x3eff80['body']['id']},'attributes':['id',_0x4386('0x2a'),_0x4386('0x63'),'converted_format',_0x4386('0x64')],'raw':!![]});}})['then'](function(_0x1bccc4){if(_0x1bccc4){var _0x2dbcd4=path[_0x4386('0x51')](config['root'],_0x4386('0x65'),util[_0x4386('0x66')](_0x4386('0x67'),path['basename'](_0x1bccc4[_0x4386('0x63')],path[_0x4386('0x68')](_0x1bccc4[_0x4386('0x63')])),_0x1bccc4['converted_format']));var _0x2b0a7d=path[_0x4386('0x51')](config['root'],'server/files/moh',_0x352c96['name'],util[_0x4386('0x66')](_0x4386('0x67'),_0x1bccc4[_0x4386('0x2a')],_0x1bccc4['converted_format']));fs[_0x4386('0x69')](_0x2dbcd4,_0x2b0a7d);return _0x1bccc4;}})[_0x4386('0x49')](function(_0x56e91e){throw new db['Sequelize'][(_0x4386('0x5f'))](_0x56e91e[_0x4386('0x6a')]);});})[_0x4386('0x24')](handleEntityNotFound(_0x83dedb,null))[_0x4386('0x24')](respondWithResult(_0x83dedb,0xc9))['catch'](handleError(_0x83dedb,null));};exports['removeSound']=function(_0x4b396f,_0x5beb9d,_0x1877a5){return db[_0x4386('0x4d')][_0x4386('0x4e')](function(_0x7d41cb){var _0x59a94b;return db[_0x4386('0x2e')]['findOne']({'where':{'id':_0x4b396f[_0x4386('0x46')]['id']}})[_0x4386('0x24')](handleEntityNotFound(_0x5beb9d,null))['then'](function(_0x19b9c4){if(_0x19b9c4){_0x59a94b=_0x19b9c4;return _0x19b9c4[_0x4386('0x6b')](_0x4b396f['params']['id2']);}})[_0x4386('0x24')](function(_0x221845){if(_0x221845){return db[_0x4386('0x61')][_0x4386('0x62')]({'where':{'id':_0x4b396f['params'][_0x4386('0x6c')]},'attributes':['id',_0x4386('0x2a'),_0x4386('0x63'),_0x4386('0x6d'),'createdAt'],'raw':!![]});}})[_0x4386('0x24')](function(_0xc1a010){if(_0xc1a010){fs['unlinkSync'](path[_0x4386('0x51')](_0x59a94b[_0x4386('0x50')],util[_0x4386('0x66')](_0x4386('0x67'),_0xc1a010['name'],_0xc1a010[_0x4386('0x6d')])));return _0xc1a010;}})[_0x4386('0x49')](function(_0x622d88){throw new db[(_0x4386('0x6e'))]['ValidationError'](_0x622d88['message']);});})[_0x4386('0x24')](handleEntityNotFound(_0x5beb9d,null))[_0x4386('0x24')](respondWithStatusCode(_0x5beb9d,0xcc))[_0x4386('0x49')](handleError(_0x5beb9d,null));};exports[_0x4386('0x6f')]=function(_0x3cbdba,_0x5d65d7,_0x127d7b){var _0x253f9a={};var _0x4e78b1={};var _0x49cdda;var _0x2ddb4d;return db[_0x4386('0x2e')][_0x4386('0x62')]({'where':{'id':_0x3cbdba[_0x4386('0x46')]['id']}})['then'](handleEntityNotFound(_0x5d65d7,null))[_0x4386('0x24')](function(_0x31605b){if(_0x31605b){_0x49cdda=_0x31605b;_0x4e78b1['model']=_[_0x4386('0x32')](db[_0x4386('0x61')][_0x4386('0x47')]);_0x4e78b1['query']=_[_0x4386('0x32')](_0x3cbdba[_0x4386('0x33')]);_0x4e78b1['filters']=_[_0x4386('0x35')](_0x4e78b1[_0x4386('0x37')],_0x4e78b1[_0x4386('0x33')]);_0x253f9a[_0x4386('0x36')]=_['intersection'](_0x4e78b1[_0x4386('0x37')],qs['fields'](_0x3cbdba['query'][_0x4386('0x38')]));_0x253f9a[_0x4386('0x36')]=_0x253f9a[_0x4386('0x36')][_0x4386('0x39')]?_0x253f9a[_0x4386('0x36')]:_0x4e78b1[_0x4386('0x37')];_0x253f9a[_0x4386('0x3c')]=qs[_0x4386('0x3d')](_0x3cbdba[_0x4386('0x33')][_0x4386('0x3d')]);_0x253f9a['where']=qs[_0x4386('0x34')](_[_0x4386('0x3f')](_0x3cbdba[_0x4386('0x33')],_0x4e78b1['filters']));if(_0x3cbdba[_0x4386('0x33')][_0x4386('0x70')]){_0x253f9a[_0x4386('0x3e')]=_[_0x4386('0x40')](_0x253f9a[_0x4386('0x3e')],{'$or':_[_0x4386('0x2d')](_0x253f9a['attributes'],function(_0x1c7f4c){var _0x2ba494={};_0x2ba494[_0x1c7f4c]={'$like':'%'+_0x3cbdba[_0x4386('0x33')][_0x4386('0x70')]+'%'};return _0x2ba494;})});}_0x253f9a=_[_0x4386('0x40')]({},_0x253f9a,_0x3cbdba['options']);return _0x49cdda[_0x4386('0x6f')](_0x253f9a);}})[_0x4386('0x24')](function(_0x2c7b93){if(_0x2c7b93){_0x2ddb4d=_0x2c7b93['length'];if(!_0x3cbdba[_0x4386('0x33')][_0x4386('0x3a')]('nolimit')){_0x253f9a['limit']=qs[_0x4386('0x1d')](_0x3cbdba[_0x4386('0x33')]['limit']);_0x253f9a[_0x4386('0x1a')]=qs[_0x4386('0x1a')](_0x3cbdba[_0x4386('0x33')][_0x4386('0x1a')]);}return _0x49cdda[_0x4386('0x6f')](_0x253f9a);}})[_0x4386('0x24')](function(_0x38dcca){if(_0x38dcca){return _0x38dcca?{'count':_0x2ddb4d,'rows':_0x38dcca}:null;}})[_0x4386('0x24')](respondWithResult(_0x5d65d7,null))['catch'](handleError(_0x5d65d7,null));};