Built motion from commit c1aa34a0.|2.6.28
[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 _0x636b=['ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','then','destroy','get','MusicOnHolds','error','stack','name','send','map','VoiceMusicOnHold','rawAttributes','fieldName','query','keys','filters','intersection','fields','attributes','length','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','catch','show','includeAll','include','body','params','sequelize','mode','files','directory','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','readdirSync','join','Sequelize','ValidationError','message','addSound','Sound','converted_format','createdAt','root','%s.%s','basename','save_name','extname','removeSound','findOne','id2','unlinkSync','format','getSounds','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x3c7a95,_0x547e8f){var _0x46a3f6=function(_0x431f6c){while(--_0x431f6c){_0x3c7a95['push'](_0x3c7a95['shift']());}};_0x46a3f6(++_0x547e8f);}(_0x636b,0x13c));var _0xb636=function(_0x523081,_0x3c7985){_0x523081=_0x523081-0x0;var _0x4051a4=_0x636b[_0x523081];return _0x4051a4;};'use strict';var emlformat=require(_0xb636('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb636('0x1'));var rp=require('request-promise');var moment=require(_0xb636('0x2'));var BPromise=require(_0xb636('0x3'));var Mustache=require(_0xb636('0x4'));var util=require(_0xb636('0x5'));var path=require(_0xb636('0x6'));var sox=require(_0xb636('0x7'));var csv=require(_0xb636('0x8'));var ejs=require(_0xb636('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb636('0xa'));var squel=require(_0xb636('0xb'));var crypto=require(_0xb636('0xc'));var jsforce=require(_0xb636('0xd'));var deskjs=require(_0xb636('0xe'));var toCsv=require(_0xb636('0x8'));var querystring=require(_0xb636('0xf'));var Papa=require(_0xb636('0x10'));var Redis=require(_0xb636('0x11'));var authService=require(_0xb636('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb636('0x13'));var logger=require(_0xb636('0x14'))(_0xb636('0x15'));var utils=require('../../config/utils');var config=require(_0xb636('0x16'));var licenseUtil=require(_0xb636('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1c347b,_0x2efd47){_0x2efd47=_0x2efd47||0xcc;return function(_0x50cc36){if(_0x50cc36){return _0x1c347b[_0xb636('0x18')](_0x2efd47);}return _0x1c347b[_0xb636('0x19')](_0x2efd47)[_0xb636('0x1a')]();};}function respondWithResult(_0x2675a3,_0x2725f7){_0x2725f7=_0x2725f7||0xc8;return function(_0x4aacd5){if(_0x4aacd5){return _0x2675a3[_0xb636('0x19')](_0x2725f7)[_0xb636('0x1b')](_0x4aacd5);}};}function respondWithFilteredResult(_0x32dae1,_0x58dc59){return function(_0x233efc){if(_0x233efc){var _0x569fb6=typeof _0x58dc59[_0xb636('0x1c')]===_0xb636('0x1d')&&typeof _0x58dc59['limit']==='undefined';var _0x414691=_0x233efc[_0xb636('0x1e')];var _0x1cf0dd=_0x569fb6?0x0:_0x58dc59[_0xb636('0x1c')];var _0x49ce88=_0x569fb6?_0x233efc[_0xb636('0x1e')]:_0x58dc59['offset']+_0x58dc59[_0xb636('0x1f')];var _0xfad92e;if(_0x49ce88>=_0x414691){_0x49ce88=_0x414691;_0xfad92e=0xc8;}else{_0xfad92e=0xce;}_0x32dae1[_0xb636('0x19')](_0xfad92e);return _0x32dae1[_0xb636('0x20')]('Content-Range',_0x1cf0dd+'-'+_0x49ce88+'/'+_0x414691)[_0xb636('0x1b')](_0x233efc);}return null;};}function patchUpdates(_0x537ef7){return function(_0xa29a0b){try{jsonpatch[_0xb636('0x21')](_0xa29a0b,_0x537ef7,!![]);}catch(_0xb9c83){return BPromise[_0xb636('0x22')](_0xb9c83);}return _0xa29a0b[_0xb636('0x23')]();};}function saveUpdates(_0x321c1e,_0x510ff0){return function(_0x584bf1){if(_0x584bf1){return _0x584bf1[_0xb636('0x24')](_0x321c1e)[_0xb636('0x25')](function(_0x5c492f){return _0x5c492f;});}return null;};}function removeEntity(_0x4dea91,_0x481e15){return function(_0x123df3){if(_0x123df3){return _0x123df3[_0xb636('0x26')]()[_0xb636('0x25')](function(){var _0x133013=_0x123df3[_0xb636('0x27')]({'plain':!![]});var _0x49fcb0=_0xb636('0x28');return db['UserProfileResource'][_0xb636('0x26')]({'where':{'type':_0x49fcb0,'resourceId':_0x133013['id']}})['then'](function(){return _0x123df3;});})[_0xb636('0x25')](function(){_0x4dea91[_0xb636('0x19')](0xcc)[_0xb636('0x1a')]();});}};}function handleEntityNotFound(_0x42b976,_0x4f1d0d){return function(_0xc4df1e){if(!_0xc4df1e){_0x42b976['sendStatus'](0x194);}return _0xc4df1e;};}function handleError(_0x476c50,_0x435200){_0x435200=_0x435200||0x1f4;return function(_0x3810b4){logger[_0xb636('0x29')](_0x3810b4[_0xb636('0x2a')]);if(_0x3810b4[_0xb636('0x2b')]){delete _0x3810b4[_0xb636('0x2b')];}_0x476c50[_0xb636('0x19')](_0x435200)[_0xb636('0x2c')](_0x3810b4);};}exports['index']=function(_0x1435dd,_0x420add){var _0x376937={},_0x2e7ccc={},_0x3eb0f3={'count':0x0,'rows':[]};var _0x16a1d9=_[_0xb636('0x2d')](db[_0xb636('0x2e')][_0xb636('0x2f')],function(_0x5c2ce1){return{'name':_0x5c2ce1[_0xb636('0x30')],'type':_0x5c2ce1['type']['key']};});_0x2e7ccc['model']=_['map'](_0x16a1d9,'name');_0x2e7ccc[_0xb636('0x31')]=_[_0xb636('0x32')](_0x1435dd[_0xb636('0x31')]);_0x2e7ccc[_0xb636('0x33')]=_['intersection'](_0x2e7ccc['model'],_0x2e7ccc[_0xb636('0x31')]);_0x376937['attributes']=_[_0xb636('0x34')](_0x2e7ccc['model'],qs['fields'](_0x1435dd[_0xb636('0x31')][_0xb636('0x35')]));_0x376937[_0xb636('0x36')]=_0x376937[_0xb636('0x36')][_0xb636('0x37')]?_0x376937['attributes']:_0x2e7ccc[_0xb636('0x38')];if(!_0x1435dd[_0xb636('0x31')][_0xb636('0x39')](_0xb636('0x3a'))){_0x376937['limit']=qs[_0xb636('0x1f')](_0x1435dd[_0xb636('0x31')][_0xb636('0x1f')]);_0x376937['offset']=qs['offset'](_0x1435dd[_0xb636('0x31')][_0xb636('0x1c')]);}_0x376937[_0xb636('0x3b')]=qs[_0xb636('0x3c')](_0x1435dd[_0xb636('0x31')]['sort']);delete _0x1435dd[_0xb636('0x31')][_0xb636('0x3c')];_0x376937[_0xb636('0x3d')]=qs[_0xb636('0x33')](_[_0xb636('0x3e')](_0x1435dd[_0xb636('0x31')],_0x2e7ccc[_0xb636('0x33')]),_0x16a1d9);if(_0x1435dd[_0xb636('0x31')][_0xb636('0x3f')]){_0x376937[_0xb636('0x3d')]=_[_0xb636('0x40')](_0x376937[_0xb636('0x3d')],{'$or':_[_0xb636('0x2d')](_0x16a1d9,function(_0x3356d8){if(_0x3356d8[_0xb636('0x41')]!=='VIRTUAL'){var _0x2ad75d={};_0x2ad75d[_0x3356d8['name']]={'$like':'%'+_0x1435dd[_0xb636('0x31')][_0xb636('0x3f')]+'%'};return _0x2ad75d;}})});}_0x376937=_[_0xb636('0x40')]({},_0x376937,_0x1435dd[_0xb636('0x42')]);var _0x5e4312={'where':_0x376937[_0xb636('0x3d')]};return db[_0xb636('0x2e')][_0xb636('0x1e')](_0x5e4312)[_0xb636('0x25')](function(_0xc03d7f){_0x3eb0f3['count']=_0xc03d7f;if(_0x1435dd['query']['includeAll']){_0x376937['include']=[{'all':!![]}];}return db[_0xb636('0x2e')]['findAll'](_0x376937);})['then'](function(_0x50f969){_0x3eb0f3['rows']=_0x50f969;return _0x3eb0f3;})[_0xb636('0x25')](respondWithFilteredResult(_0x420add,_0x376937))[_0xb636('0x43')](handleError(_0x420add,null));};exports[_0xb636('0x44')]=function(_0x55ca31,_0x2d0022){var _0x4baa73={'raw':![],'where':{'id':_0x55ca31['params']['id']}},_0x387f71={};_0x387f71[_0xb636('0x38')]=_[_0xb636('0x32')](db[_0xb636('0x2e')][_0xb636('0x2f')]);_0x387f71[_0xb636('0x31')]=_[_0xb636('0x32')](_0x55ca31[_0xb636('0x31')]);_0x387f71['filters']=_[_0xb636('0x34')](_0x387f71['model'],_0x387f71[_0xb636('0x31')]);_0x4baa73[_0xb636('0x36')]=_[_0xb636('0x34')](_0x387f71[_0xb636('0x38')],qs[_0xb636('0x35')](_0x55ca31[_0xb636('0x31')][_0xb636('0x35')]));_0x4baa73['attributes']=_0x4baa73[_0xb636('0x36')]['length']?_0x4baa73[_0xb636('0x36')]:_0x387f71['model'];if(_0x55ca31[_0xb636('0x31')][_0xb636('0x45')]){_0x4baa73[_0xb636('0x46')]=[{'all':!![]}];}_0x4baa73=_[_0xb636('0x40')]({},_0x4baa73,_0x55ca31[_0xb636('0x42')]);return db['VoiceMusicOnHold']['find'](_0x4baa73)[_0xb636('0x25')](handleEntityNotFound(_0x2d0022,null))['then'](respondWithResult(_0x2d0022,null))[_0xb636('0x43')](handleError(_0x2d0022,null));};exports[_0xb636('0x24')]=function(_0x27ebf4,_0x46b3f4){if(_0x27ebf4[_0xb636('0x47')]['id']){delete _0x27ebf4[_0xb636('0x47')]['id'];}return db[_0xb636('0x2e')]['find']({'where':{'id':_0x27ebf4[_0xb636('0x48')]['id']}})[_0xb636('0x25')](handleEntityNotFound(_0x46b3f4,null))[_0xb636('0x25')](saveUpdates(_0x27ebf4[_0xb636('0x47')],null))[_0xb636('0x25')](respondWithResult(_0x46b3f4,null))[_0xb636('0x43')](handleError(_0x46b3f4,null));};exports['create']=function(_0x54405d,_0x55fc97,_0x346fea){return db[_0xb636('0x49')]['transaction'](function(_0x14be1b){if(_0x54405d['body'][_0xb636('0x4a')]===_0xb636('0x4b')){_0x54405d['body'][_0xb636('0x4c')]=path['join'](config['root'],_0xb636('0x4d'),_0x54405d['body'][_0xb636('0x2b')]);}return db[_0xb636('0x2e')]['create'](_0x54405d[_0xb636('0x47')],{'transaction':_0x14be1b})[_0xb636('0x25')](function(_0x4e392c){if(_0x54405d[_0xb636('0x47')][_0xb636('0x4a')]===_0xb636('0x4b')){fs[_0xb636('0x4e')](_0x4e392c[_0xb636('0x4c')],parseInt(_0xb636('0x4f'),0x8));}var _0x81230f=_0x54405d[_0xb636('0x50')][_0xb636('0x27')]({'plain':!![]});if(!_0x81230f)throw new Error(_0xb636('0x51'));if(_0x81230f[_0xb636('0x52')]===_0xb636('0x50')){var _0x17e495=_0x4e392c['get']({'plain':!![]});return db[_0xb636('0x53')][_0xb636('0x54')]({'where':{'name':_0xb636('0x28'),'userProfileId':_0x81230f[_0xb636('0x55')]},'raw':!![]})[_0xb636('0x25')](function(_0x407f7b){if(_0x407f7b&&_0x407f7b[_0xb636('0x56')]===0x0){return db[_0xb636('0x57')][_0xb636('0x58')]({'name':_0x17e495[_0xb636('0x2b')],'resourceId':_0x17e495['id'],'type':_0x407f7b[_0xb636('0x2b')],'sectionId':_0x407f7b['id']},{})[_0xb636('0x25')](function(){return _0x4e392c;});}else{return _0x4e392c;}})[_0xb636('0x43')](function(_0x5b75b0){logger['error'](_0xb636('0x59'),_0x5b75b0);});}return _0x4e392c;});})[_0xb636('0x25')](respondWithResult(_0x55fc97,0xc9))[_0xb636('0x43')](handleError(_0x55fc97,null));};exports[_0xb636('0x26')]=function(_0x16b380,_0x3f16dc,_0x4725fd){var _0x567aab;return db[_0xb636('0x2e')][_0xb636('0x54')]({'where':{'id':_0x16b380[_0xb636('0x48')]['id']}})['then'](function(_0x5c47c5){if(_0x5c47c5){return db[_0xb636('0x49')][_0xb636('0x5a')](function(_0x2ef202){return _0x5c47c5[_0xb636('0x26')]({'transaction':_0x2ef202,'raw':!![]})['then'](function(_0xd6dcb4){if(_0xd6dcb4['directory']){fs[_0xb636('0x5b')](_0xd6dcb4[_0xb636('0x4c')])['forEach'](function(_0x4e78c4){fs['unlinkSync'](path[_0xb636('0x5c')](_0xd6dcb4[_0xb636('0x4c')],_0x4e78c4));});fs['rmdirSync'](_0xd6dcb4[_0xb636('0x4c')]);}return _0xd6dcb4;});})['catch'](function(_0x8c0ccd){throw new db[(_0xb636('0x5d'))][(_0xb636('0x5e'))](_0x8c0ccd[_0xb636('0x5f')]);});}})[_0xb636('0x25')](handleEntityNotFound(_0x3f16dc,null))['then'](removeEntity(_0x3f16dc,null))[_0xb636('0x43')](handleError(_0x3f16dc,null));};exports['addSound']=function(_0xa8b353,_0x22ffb5,_0x10acbe){return db[_0xb636('0x49')][_0xb636('0x5a')](function(_0x18570c){var _0x172aff;return db[_0xb636('0x2e')]['find']({'where':{'id':_0xa8b353['params']['id']}})[_0xb636('0x25')](function(_0x176219){if(_0x176219){_0x172aff=_0x176219;return _0x176219[_0xb636('0x60')](_0xa8b353[_0xb636('0x47')]['id'],{'transaction':_0x18570c});}})['then'](function(_0x5c821b){if(_0x5c821b){return db[_0xb636('0x61')]['findOne']({'where':{'id':_0xa8b353['body']['id']},'attributes':['id',_0xb636('0x2b'),'save_name',_0xb636('0x62'),_0xb636('0x63')],'raw':!![]});}})['then'](function(_0x4d452f){if(_0x4d452f){var _0x3b93c4=path['join'](config[_0xb636('0x64')],'server/files/sounds/converted',util['format'](_0xb636('0x65'),path[_0xb636('0x66')](_0x4d452f[_0xb636('0x67')],path[_0xb636('0x68')](_0x4d452f[_0xb636('0x67')])),_0x4d452f[_0xb636('0x62')]));var _0x1a7634=path[_0xb636('0x5c')](config['root'],_0xb636('0x4d'),_0x172aff[_0xb636('0x2b')],util['format']('%s.%s',_0x4d452f[_0xb636('0x2b')],_0x4d452f['converted_format']));fs['symlinkSync'](_0x3b93c4,_0x1a7634);return _0x4d452f;}})[_0xb636('0x43')](function(_0x200a7a){throw new db[(_0xb636('0x5d'))][(_0xb636('0x5e'))](_0x200a7a[_0xb636('0x5f')]);});})['then'](handleEntityNotFound(_0x22ffb5,null))['then'](respondWithResult(_0x22ffb5,0xc9))[_0xb636('0x43')](handleError(_0x22ffb5,null));};exports[_0xb636('0x69')]=function(_0x4e4a17,_0x1374a8,_0x3b2bcf){return db[_0xb636('0x49')][_0xb636('0x5a')](function(_0x268c15){var _0x126710;return db[_0xb636('0x2e')][_0xb636('0x6a')]({'where':{'id':_0x4e4a17[_0xb636('0x48')]['id']}})[_0xb636('0x25')](handleEntityNotFound(_0x1374a8,null))[_0xb636('0x25')](function(_0xadc55e){if(_0xadc55e){_0x126710=_0xadc55e;return _0xadc55e[_0xb636('0x69')](_0x4e4a17[_0xb636('0x48')][_0xb636('0x6b')]);}})[_0xb636('0x25')](function(_0x4d6629){if(_0x4d6629){return db[_0xb636('0x61')][_0xb636('0x6a')]({'where':{'id':_0x4e4a17[_0xb636('0x48')][_0xb636('0x6b')]},'attributes':['id',_0xb636('0x2b'),_0xb636('0x67'),_0xb636('0x62'),_0xb636('0x63')],'raw':!![]});}})['then'](function(_0x574ebe){if(_0x574ebe){fs[_0xb636('0x6c')](path[_0xb636('0x5c')](_0x126710[_0xb636('0x4c')],util[_0xb636('0x6d')](_0xb636('0x65'),_0x574ebe[_0xb636('0x2b')],_0x574ebe[_0xb636('0x62')])));return _0x574ebe;}})['catch'](function(_0x409166){throw new db[(_0xb636('0x5d'))]['ValidationError'](_0x409166[_0xb636('0x5f')]);});})[_0xb636('0x25')](handleEntityNotFound(_0x1374a8,null))[_0xb636('0x25')](respondWithStatusCode(_0x1374a8,0xcc))[_0xb636('0x43')](handleError(_0x1374a8,null));};exports['getSounds']=function(_0x20c9fa,_0x259abf,_0x17d769){var _0x589ce9={};var _0x30af74={};var _0x3c160b;var _0x4e777d;return db['VoiceMusicOnHold'][_0xb636('0x6a')]({'where':{'id':_0x20c9fa[_0xb636('0x48')]['id']}})[_0xb636('0x25')](handleEntityNotFound(_0x259abf,null))[_0xb636('0x25')](function(_0x43700f){if(_0x43700f){_0x3c160b=_0x43700f;_0x30af74[_0xb636('0x38')]=_['keys'](db[_0xb636('0x61')][_0xb636('0x2f')]);_0x30af74[_0xb636('0x31')]=_[_0xb636('0x32')](_0x20c9fa['query']);_0x30af74[_0xb636('0x33')]=_[_0xb636('0x34')](_0x30af74['model'],_0x30af74[_0xb636('0x31')]);_0x589ce9['attributes']=_[_0xb636('0x34')](_0x30af74['model'],qs[_0xb636('0x35')](_0x20c9fa['query']['fields']));_0x589ce9[_0xb636('0x36')]=_0x589ce9[_0xb636('0x36')][_0xb636('0x37')]?_0x589ce9[_0xb636('0x36')]:_0x30af74['model'];_0x589ce9[_0xb636('0x3b')]=qs[_0xb636('0x3c')](_0x20c9fa[_0xb636('0x31')][_0xb636('0x3c')]);_0x589ce9[_0xb636('0x3d')]=qs[_0xb636('0x33')](_['pick'](_0x20c9fa[_0xb636('0x31')],_0x30af74[_0xb636('0x33')]));if(_0x20c9fa[_0xb636('0x31')][_0xb636('0x3f')]){_0x589ce9[_0xb636('0x3d')]=_[_0xb636('0x40')](_0x589ce9[_0xb636('0x3d')],{'$or':_[_0xb636('0x2d')](_0x589ce9[_0xb636('0x36')],function(_0x3e2d70){var _0x5da6fc={};_0x5da6fc[_0x3e2d70]={'$like':'%'+_0x20c9fa[_0xb636('0x31')][_0xb636('0x3f')]+'%'};return _0x5da6fc;})});}_0x589ce9=_[_0xb636('0x40')]({},_0x589ce9,_0x20c9fa[_0xb636('0x42')]);return _0x3c160b[_0xb636('0x6e')](_0x589ce9);}})[_0xb636('0x25')](function(_0x71015c){if(_0x71015c){_0x4e777d=_0x71015c['length'];if(!_0x20c9fa[_0xb636('0x31')][_0xb636('0x39')](_0xb636('0x3a'))){_0x589ce9[_0xb636('0x1f')]=qs[_0xb636('0x1f')](_0x20c9fa[_0xb636('0x31')]['limit']);_0x589ce9[_0xb636('0x1c')]=qs[_0xb636('0x1c')](_0x20c9fa['query'][_0xb636('0x1c')]);}return _0x3c160b[_0xb636('0x6e')](_0x589ce9);}})[_0xb636('0x25')](function(_0x101fd5){if(_0x101fd5){return _0x101fd5?{'count':_0x4e777d,'rows':_0x101fd5}:null;}})[_0xb636('0x25')](respondWithResult(_0x259abf,null))[_0xb636('0x43')](handleError(_0x259abf,null));};