6b89de5b558e16fab010a27660afa6c7a6d7e465
[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 _0x35a8=['rows','catch','show','params','includeAll','body','create','sequelize','transaction','mode','join','root','server/files/moh','files','mkdirSync','directory','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','addSound','Sound','findOne','save_name','converted_format','createdAt','format','%s.%s','basename','symlinkSync','message','removeSound','id2','getSounds','order','rimraf','mustache','util','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','reject','save','update','destroy','then','get','MusicOnHolds','UserProfileResource','error','stack','name','index','map','VoiceMusicOnHold','rawAttributes','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','options','include','findAll'];(function(_0x2bbb56,_0x121360){var _0x2967d8=function(_0x2fc382){while(--_0x2fc382){_0x2bbb56['push'](_0x2bbb56['shift']());}};_0x2967d8(++_0x121360);}(_0x35a8,0x173));var _0x835a=function(_0x4e1a7d,_0x28ecaa){_0x4e1a7d=_0x4e1a7d-0x0;var _0x43b58a=_0x35a8[_0x4e1a7d];return _0x43b58a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x835a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x835a('0x1'));var util=require(_0x835a('0x2'));var path=require('path');var sox=require('sox');var csv=require(_0x835a('0x3'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x835a('0x4'));var _=require(_0x835a('0x5'));var squel=require('squel');var crypto=require(_0x835a('0x6'));var jsforce=require(_0x835a('0x7'));var deskjs=require(_0x835a('0x8'));var toCsv=require('to-csv');var querystring=require(_0x835a('0x9'));var Papa=require('papaparse');var Redis=require(_0x835a('0xa'));var authService=require(_0x835a('0xb'));var qs=require(_0x835a('0xc'));var as=require(_0x835a('0xd'));var hardwareService=require(_0x835a('0xe'));var logger=require('../../config/logger')(_0x835a('0xf'));var utils=require(_0x835a('0x10'));var config=require(_0x835a('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x835a('0x12'))['db'];function respondWithStatusCode(_0x22bc23,_0x42a1fd){_0x42a1fd=_0x42a1fd||0xcc;return function(_0x2a6979){if(_0x2a6979){return _0x22bc23[_0x835a('0x13')](_0x42a1fd);}return _0x22bc23[_0x835a('0x14')](_0x42a1fd)[_0x835a('0x15')]();};}function respondWithResult(_0x476df0,_0x3e2bda){_0x3e2bda=_0x3e2bda||0xc8;return function(_0x2c26da){if(_0x2c26da){return _0x476df0[_0x835a('0x14')](_0x3e2bda)['json'](_0x2c26da);}};}function respondWithFilteredResult(_0x598bf8,_0x3ab361){return function(_0x2b2daa){if(_0x2b2daa){var _0x925b70=typeof _0x3ab361[_0x835a('0x16')]==='undefined'&&typeof _0x3ab361[_0x835a('0x17')]===_0x835a('0x18');var _0x552c4e=_0x2b2daa[_0x835a('0x19')];var _0x53e20b=_0x925b70?0x0:_0x3ab361[_0x835a('0x16')];var _0x39cf95=_0x925b70?_0x2b2daa[_0x835a('0x19')]:_0x3ab361[_0x835a('0x16')]+_0x3ab361[_0x835a('0x17')];var _0x3ef2ae;if(_0x39cf95>=_0x552c4e){_0x39cf95=_0x552c4e;_0x3ef2ae=0xc8;}else{_0x3ef2ae=0xce;}_0x598bf8[_0x835a('0x14')](_0x3ef2ae);return _0x598bf8[_0x835a('0x1a')](_0x835a('0x1b'),_0x53e20b+'-'+_0x39cf95+'/'+_0x552c4e)[_0x835a('0x1c')](_0x2b2daa);}return null;};}function patchUpdates(_0x3a5da7){return function(_0x3dd8e8){try{jsonpatch['apply'](_0x3dd8e8,_0x3a5da7,!![]);}catch(_0x58b185){return BPromise[_0x835a('0x1d')](_0x58b185);}return _0x3dd8e8[_0x835a('0x1e')]();};}function saveUpdates(_0xe9bdd9,_0x3fc921){return function(_0x55f1c8){if(_0x55f1c8){return _0x55f1c8[_0x835a('0x1f')](_0xe9bdd9)['then'](function(_0x3b20b8){return _0x3b20b8;});}return null;};}function removeEntity(_0x49263e,_0x4ccf34){return function(_0x7a2506){if(_0x7a2506){return _0x7a2506[_0x835a('0x20')]()[_0x835a('0x21')](function(){var _0x526f8b=_0x7a2506[_0x835a('0x22')]({'plain':!![]});var _0xe9b06e=_0x835a('0x23');return db[_0x835a('0x24')][_0x835a('0x20')]({'where':{'type':_0xe9b06e,'resourceId':_0x526f8b['id']}})[_0x835a('0x21')](function(){return _0x7a2506;});})[_0x835a('0x21')](function(){_0x49263e[_0x835a('0x14')](0xcc)[_0x835a('0x15')]();});}};}function handleEntityNotFound(_0x550e76,_0x1277de){return function(_0x196084){if(!_0x196084){_0x550e76[_0x835a('0x13')](0x194);}return _0x196084;};}function handleError(_0x2f4e5f,_0x4272b5){_0x4272b5=_0x4272b5||0x1f4;return function(_0x33b82b){logger[_0x835a('0x25')](_0x33b82b[_0x835a('0x26')]);if(_0x33b82b[_0x835a('0x27')]){delete _0x33b82b[_0x835a('0x27')];}_0x2f4e5f[_0x835a('0x14')](_0x4272b5)['send'](_0x33b82b);};}exports[_0x835a('0x28')]=function(_0x34e9f2,_0xfb5bef){var _0x384edf={},_0x533dcf={},_0x308d72={'count':0x0,'rows':[]};var _0x1c129a=_[_0x835a('0x29')](db[_0x835a('0x2a')][_0x835a('0x2b')],function(_0x2e1a42){return{'name':_0x2e1a42['fieldName'],'type':_0x2e1a42['type'][_0x835a('0x2c')]};});_0x533dcf[_0x835a('0x2d')]=_[_0x835a('0x29')](_0x1c129a,_0x835a('0x27'));_0x533dcf[_0x835a('0x2e')]=_[_0x835a('0x2f')](_0x34e9f2[_0x835a('0x2e')]);_0x533dcf[_0x835a('0x30')]=_['intersection'](_0x533dcf['model'],_0x533dcf['query']);_0x384edf[_0x835a('0x31')]=_[_0x835a('0x32')](_0x533dcf['model'],qs[_0x835a('0x33')](_0x34e9f2[_0x835a('0x2e')]['fields']));_0x384edf[_0x835a('0x31')]=_0x384edf[_0x835a('0x31')][_0x835a('0x34')]?_0x384edf[_0x835a('0x31')]:_0x533dcf[_0x835a('0x2d')];if(!_0x34e9f2['query'][_0x835a('0x35')](_0x835a('0x36'))){_0x384edf[_0x835a('0x17')]=qs[_0x835a('0x17')](_0x34e9f2[_0x835a('0x2e')][_0x835a('0x17')]);_0x384edf['offset']=qs[_0x835a('0x16')](_0x34e9f2[_0x835a('0x2e')][_0x835a('0x16')]);}_0x384edf['order']=qs[_0x835a('0x37')](_0x34e9f2[_0x835a('0x2e')][_0x835a('0x37')]);delete _0x34e9f2[_0x835a('0x2e')][_0x835a('0x37')];_0x384edf[_0x835a('0x38')]=qs[_0x835a('0x30')](_[_0x835a('0x39')](_0x34e9f2[_0x835a('0x2e')],_0x533dcf[_0x835a('0x30')]),_0x1c129a);if(_0x34e9f2[_0x835a('0x2e')][_0x835a('0x3a')]){_0x384edf['where']=_[_0x835a('0x3b')](_0x384edf['where'],{'$or':_['map'](_0x1c129a,function(_0x42b2e2){if(_0x42b2e2[_0x835a('0x3c')]!==_0x835a('0x3d')){var _0x5dca5b={};_0x5dca5b[_0x42b2e2[_0x835a('0x27')]]={'$like':'%'+_0x34e9f2[_0x835a('0x2e')][_0x835a('0x3a')]+'%'};return _0x5dca5b;}})});}_0x384edf=_[_0x835a('0x3b')]({},_0x384edf,_0x34e9f2[_0x835a('0x3e')]);var _0x2accc2={'where':_0x384edf[_0x835a('0x38')]};return db[_0x835a('0x2a')]['count'](_0x2accc2)['then'](function(_0xd2bbad){_0x308d72[_0x835a('0x19')]=_0xd2bbad;if(_0x34e9f2[_0x835a('0x2e')]['includeAll']){_0x384edf[_0x835a('0x3f')]=[{'all':!![]}];}return db[_0x835a('0x2a')][_0x835a('0x40')](_0x384edf);})['then'](function(_0x474a4a){_0x308d72[_0x835a('0x41')]=_0x474a4a;return _0x308d72;})[_0x835a('0x21')](respondWithFilteredResult(_0xfb5bef,_0x384edf))[_0x835a('0x42')](handleError(_0xfb5bef,null));};exports[_0x835a('0x43')]=function(_0x22ecbd,_0x44c2f4){var _0x1fa542={'raw':![],'where':{'id':_0x22ecbd[_0x835a('0x44')]['id']}},_0x18761f={};_0x18761f['model']=_['keys'](db['VoiceMusicOnHold'][_0x835a('0x2b')]);_0x18761f[_0x835a('0x2e')]=_[_0x835a('0x2f')](_0x22ecbd['query']);_0x18761f[_0x835a('0x30')]=_[_0x835a('0x32')](_0x18761f[_0x835a('0x2d')],_0x18761f['query']);_0x1fa542[_0x835a('0x31')]=_[_0x835a('0x32')](_0x18761f[_0x835a('0x2d')],qs[_0x835a('0x33')](_0x22ecbd['query']['fields']));_0x1fa542[_0x835a('0x31')]=_0x1fa542['attributes'][_0x835a('0x34')]?_0x1fa542[_0x835a('0x31')]:_0x18761f[_0x835a('0x2d')];if(_0x22ecbd[_0x835a('0x2e')][_0x835a('0x45')]){_0x1fa542[_0x835a('0x3f')]=[{'all':!![]}];}_0x1fa542=_[_0x835a('0x3b')]({},_0x1fa542,_0x22ecbd[_0x835a('0x3e')]);return db['VoiceMusicOnHold']['find'](_0x1fa542)['then'](handleEntityNotFound(_0x44c2f4,null))['then'](respondWithResult(_0x44c2f4,null))[_0x835a('0x42')](handleError(_0x44c2f4,null));};exports[_0x835a('0x1f')]=function(_0x411b88,_0x36a983){if(_0x411b88[_0x835a('0x46')]['id']){delete _0x411b88[_0x835a('0x46')]['id'];}return db[_0x835a('0x2a')]['find']({'where':{'id':_0x411b88[_0x835a('0x44')]['id']}})[_0x835a('0x21')](handleEntityNotFound(_0x36a983,null))[_0x835a('0x21')](saveUpdates(_0x411b88[_0x835a('0x46')],null))['then'](respondWithResult(_0x36a983,null))[_0x835a('0x42')](handleError(_0x36a983,null));};exports[_0x835a('0x47')]=function(_0x4ef015,_0x57773a,_0x1e4d8b){return db[_0x835a('0x48')][_0x835a('0x49')](function(_0x528f86){if(_0x4ef015['body'][_0x835a('0x4a')]==='files'){_0x4ef015[_0x835a('0x46')]['directory']=path[_0x835a('0x4b')](config[_0x835a('0x4c')],_0x835a('0x4d'),_0x4ef015['body'][_0x835a('0x27')]);}return db[_0x835a('0x2a')][_0x835a('0x47')](_0x4ef015[_0x835a('0x46')],{'transaction':_0x528f86})[_0x835a('0x21')](function(_0x3eb836){if(_0x4ef015[_0x835a('0x46')][_0x835a('0x4a')]===_0x835a('0x4e')){fs[_0x835a('0x4f')](_0x3eb836[_0x835a('0x50')],parseInt('0777',0x8));}var _0x5caf35=_0x4ef015[_0x835a('0x51')][_0x835a('0x22')]({'plain':!![]});if(!_0x5caf35)throw new Error(_0x835a('0x52'));if(_0x5caf35[_0x835a('0x53')]===_0x835a('0x51')){var _0x3de650=_0x3eb836[_0x835a('0x22')]({'plain':!![]});return db[_0x835a('0x54')][_0x835a('0x55')]({'where':{'name':_0x835a('0x23'),'userProfileId':_0x5caf35[_0x835a('0x56')]},'raw':!![]})[_0x835a('0x21')](function(_0x13a672){if(_0x13a672&&_0x13a672['autoAssociation']===0x0){return db[_0x835a('0x24')][_0x835a('0x47')]({'name':_0x3de650[_0x835a('0x27')],'resourceId':_0x3de650['id'],'type':_0x13a672[_0x835a('0x27')],'sectionId':_0x13a672['id']},{})[_0x835a('0x21')](function(){return _0x3eb836;});}else{return _0x3eb836;}})[_0x835a('0x42')](function(_0x5d8fae){logger[_0x835a('0x25')](_0x835a('0x57'),_0x5d8fae);});}return _0x3eb836;});})[_0x835a('0x21')](respondWithResult(_0x57773a,0xc9))[_0x835a('0x42')](handleError(_0x57773a,null));};exports[_0x835a('0x20')]=function(_0xfdad5,_0x272025,_0x281504){var _0x3f9ad1;return db[_0x835a('0x2a')]['find']({'where':{'id':_0xfdad5['params']['id']}})[_0x835a('0x21')](function(_0x42546e){if(_0x42546e){return db[_0x835a('0x48')][_0x835a('0x49')](function(_0xfe068b){return _0x42546e['destroy']({'transaction':_0xfe068b,'raw':!![]})[_0x835a('0x21')](function(_0x30b253){if(_0x30b253[_0x835a('0x50')]){fs[_0x835a('0x58')](_0x30b253[_0x835a('0x50')])[_0x835a('0x59')](function(_0x2fb251){fs[_0x835a('0x5a')](path[_0x835a('0x4b')](_0x30b253[_0x835a('0x50')],_0x2fb251));});fs[_0x835a('0x5b')](_0x30b253[_0x835a('0x50')]);}return _0x30b253;});})[_0x835a('0x42')](function(_0x33183b){throw new db[(_0x835a('0x5c'))][(_0x835a('0x5d'))](_0x33183b['message']);});}})[_0x835a('0x21')](handleEntityNotFound(_0x272025,null))[_0x835a('0x21')](removeEntity(_0x272025,null))[_0x835a('0x42')](handleError(_0x272025,null));};exports[_0x835a('0x5e')]=function(_0x3aeed3,_0x30d756,_0x57c231){return db['sequelize'][_0x835a('0x49')](function(_0x2239f7){var _0x25bd70;return db[_0x835a('0x2a')][_0x835a('0x55')]({'where':{'id':_0x3aeed3['params']['id']}})['then'](function(_0x3c9a9c){if(_0x3c9a9c){_0x25bd70=_0x3c9a9c;return _0x3c9a9c[_0x835a('0x5e')](_0x3aeed3['body']['id'],{'transaction':_0x2239f7});}})['then'](function(_0x2db04d){if(_0x2db04d){return db[_0x835a('0x5f')][_0x835a('0x60')]({'where':{'id':_0x3aeed3[_0x835a('0x46')]['id']},'attributes':['id',_0x835a('0x27'),_0x835a('0x61'),_0x835a('0x62'),_0x835a('0x63')],'raw':!![]});}})[_0x835a('0x21')](function(_0x369862){if(_0x369862){var _0x4a79c1=path[_0x835a('0x4b')](config[_0x835a('0x4c')],'server/files/sounds/converted',util[_0x835a('0x64')](_0x835a('0x65'),path[_0x835a('0x66')](_0x369862[_0x835a('0x61')],path['extname'](_0x369862[_0x835a('0x61')])),_0x369862[_0x835a('0x62')]));var _0x3c1f81=path[_0x835a('0x4b')](config[_0x835a('0x4c')],'server/files/moh',_0x25bd70[_0x835a('0x27')],util[_0x835a('0x64')](_0x835a('0x65'),_0x369862[_0x835a('0x27')],_0x369862[_0x835a('0x62')]));fs[_0x835a('0x67')](_0x4a79c1,_0x3c1f81);return _0x369862;}})[_0x835a('0x42')](function(_0x628873){throw new db['Sequelize'][(_0x835a('0x5d'))](_0x628873[_0x835a('0x68')]);});})['then'](handleEntityNotFound(_0x30d756,null))[_0x835a('0x21')](respondWithResult(_0x30d756,0xc9))[_0x835a('0x42')](handleError(_0x30d756,null));};exports['removeSound']=function(_0x2ca369,_0x2b6bbe,_0x3f1042){return db['sequelize'][_0x835a('0x49')](function(_0x1a8efe){var _0x3f7c5e;return db[_0x835a('0x2a')][_0x835a('0x60')]({'where':{'id':_0x2ca369[_0x835a('0x44')]['id']}})[_0x835a('0x21')](handleEntityNotFound(_0x2b6bbe,null))[_0x835a('0x21')](function(_0xf895eb){if(_0xf895eb){_0x3f7c5e=_0xf895eb;return _0xf895eb[_0x835a('0x69')](_0x2ca369['params'][_0x835a('0x6a')]);}})[_0x835a('0x21')](function(_0x206d88){if(_0x206d88){return db[_0x835a('0x5f')][_0x835a('0x60')]({'where':{'id':_0x2ca369[_0x835a('0x44')][_0x835a('0x6a')]},'attributes':['id',_0x835a('0x27'),'save_name',_0x835a('0x62'),'createdAt'],'raw':!![]});}})[_0x835a('0x21')](function(_0x1ba27a){if(_0x1ba27a){fs[_0x835a('0x5a')](path[_0x835a('0x4b')](_0x3f7c5e[_0x835a('0x50')],util[_0x835a('0x64')](_0x835a('0x65'),_0x1ba27a[_0x835a('0x27')],_0x1ba27a[_0x835a('0x62')])));return _0x1ba27a;}})['catch'](function(_0x47f52b){throw new db['Sequelize'][(_0x835a('0x5d'))](_0x47f52b[_0x835a('0x68')]);});})[_0x835a('0x21')](handleEntityNotFound(_0x2b6bbe,null))[_0x835a('0x21')](respondWithStatusCode(_0x2b6bbe,0xcc))[_0x835a('0x42')](handleError(_0x2b6bbe,null));};exports[_0x835a('0x6b')]=function(_0x2a049a,_0x5e3d4d,_0x374962){var _0x56158={};var _0xd16f7e={};var _0x36ccb5;var _0x269075;return db[_0x835a('0x2a')]['findOne']({'where':{'id':_0x2a049a[_0x835a('0x44')]['id']}})[_0x835a('0x21')](handleEntityNotFound(_0x5e3d4d,null))[_0x835a('0x21')](function(_0x34ab79){if(_0x34ab79){_0x36ccb5=_0x34ab79;_0xd16f7e['model']=_['keys'](db[_0x835a('0x5f')][_0x835a('0x2b')]);_0xd16f7e[_0x835a('0x2e')]=_['keys'](_0x2a049a[_0x835a('0x2e')]);_0xd16f7e[_0x835a('0x30')]=_[_0x835a('0x32')](_0xd16f7e[_0x835a('0x2d')],_0xd16f7e['query']);_0x56158[_0x835a('0x31')]=_[_0x835a('0x32')](_0xd16f7e[_0x835a('0x2d')],qs[_0x835a('0x33')](_0x2a049a[_0x835a('0x2e')][_0x835a('0x33')]));_0x56158['attributes']=_0x56158[_0x835a('0x31')][_0x835a('0x34')]?_0x56158['attributes']:_0xd16f7e[_0x835a('0x2d')];_0x56158[_0x835a('0x6c')]=qs[_0x835a('0x37')](_0x2a049a[_0x835a('0x2e')][_0x835a('0x37')]);_0x56158['where']=qs[_0x835a('0x30')](_[_0x835a('0x39')](_0x2a049a[_0x835a('0x2e')],_0xd16f7e['filters']));if(_0x2a049a[_0x835a('0x2e')][_0x835a('0x3a')]){_0x56158['where']=_[_0x835a('0x3b')](_0x56158['where'],{'$or':_[_0x835a('0x29')](_0x56158['attributes'],function(_0x35e877){var _0x521ca6={};_0x521ca6[_0x35e877]={'$like':'%'+_0x2a049a[_0x835a('0x2e')][_0x835a('0x3a')]+'%'};return _0x521ca6;})});}_0x56158=_[_0x835a('0x3b')]({},_0x56158,_0x2a049a[_0x835a('0x3e')]);return _0x36ccb5[_0x835a('0x6b')](_0x56158);}})['then'](function(_0x5b3ebe){if(_0x5b3ebe){_0x269075=_0x5b3ebe['length'];if(!_0x2a049a['query'][_0x835a('0x35')]('nolimit')){_0x56158[_0x835a('0x17')]=qs[_0x835a('0x17')](_0x2a049a[_0x835a('0x2e')][_0x835a('0x17')]);_0x56158['offset']=qs[_0x835a('0x16')](_0x2a049a[_0x835a('0x2e')][_0x835a('0x16')]);}return _0x36ccb5[_0x835a('0x6b')](_0x56158);}})['then'](function(_0x4ee6b3){if(_0x4ee6b3){return _0x4ee6b3?{'count':_0x269075,'rows':_0x4ee6b3}:null;}})[_0x835a('0x21')](respondWithResult(_0x5e3d4d,null))[_0x835a('0x42')](handleError(_0x5e3d4d,null));};