Built motion from commit 9d0783e6.|2.6.13
[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 _0x1962=['eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','count','offset','limit','set','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','VoiceMusicOnHold','rawAttributes','type','key','model','map','query','filters','attributes','fields','length','nolimit','sort','pick','filter','where','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','keys','intersection','include','options','find','body','create','sequelize','transaction','mode','files','directory','join','server/files/moh','mkdirSync','0777','user','role','UserProfileSection','MusicOnHolds','autoAssociation','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','addSound','Sound','findOne','save_name','converted_format','createdAt','root','server/files/sounds/converted','basename','extname','format','symlinkSync','removeSound','id2','message','getSounds','order','hasOwnProperty'];(function(_0x507403,_0x3f954d){var _0x1327c=function(_0x2aea1b){while(--_0x2aea1b){_0x507403['push'](_0x507403['shift']());}};_0x1327c(++_0x3f954d);}(_0x1962,0xda));var _0x2196=function(_0xbf4ddf,_0x66b3cb){_0xbf4ddf=_0xbf4ddf-0x0;var _0x3cb273=_0x1962[_0xbf4ddf];return _0x3cb273;};'use strict';var emlformat=require(_0x2196('0x0'));var rimraf=require(_0x2196('0x1'));var zipdir=require(_0x2196('0x2'));var jsonpatch=require(_0x2196('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2196('0x4'));var Mustache=require(_0x2196('0x5'));var util=require(_0x2196('0x6'));var path=require('path');var sox=require(_0x2196('0x7'));var csv=require(_0x2196('0x8'));var ejs=require(_0x2196('0x9'));var fs=require('fs');var fs_extra=require(_0x2196('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x2196('0xb'));var deskjs=require(_0x2196('0xc'));var toCsv=require(_0x2196('0x8'));var querystring=require(_0x2196('0xd'));var Papa=require('papaparse');var Redis=require(_0x2196('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x2196('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x2196('0x10'));var utils=require(_0x2196('0x11'));var config=require(_0x2196('0x12'));var licenseUtil=require(_0x2196('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb91e1e,_0x35c54d){_0x35c54d=_0x35c54d||0xcc;return function(_0x2beba7){if(_0x2beba7){return _0xb91e1e[_0x2196('0x14')](_0x35c54d);}return _0xb91e1e[_0x2196('0x15')](_0x35c54d)[_0x2196('0x16')]();};}function respondWithResult(_0x2e29bb,_0x20980b){_0x20980b=_0x20980b||0xc8;return function(_0xd63d9a){if(_0xd63d9a){return _0x2e29bb[_0x2196('0x15')](_0x20980b)[_0x2196('0x17')](_0xd63d9a);}};}function respondWithFilteredResult(_0x4dc1f4,_0x276f16){return function(_0x52ca7f){if(_0x52ca7f){var _0x1c10e5=typeof _0x276f16['offset']===_0x2196('0x18')&&typeof _0x276f16['limit']==='undefined';var _0x5c2243=_0x52ca7f[_0x2196('0x19')];var _0x55c2bc=_0x1c10e5?0x0:_0x276f16[_0x2196('0x1a')];var _0x1c29d7=_0x1c10e5?_0x52ca7f[_0x2196('0x19')]:_0x276f16[_0x2196('0x1a')]+_0x276f16[_0x2196('0x1b')];var _0x338621;if(_0x1c29d7>=_0x5c2243){_0x1c29d7=_0x5c2243;_0x338621=0xc8;}else{_0x338621=0xce;}_0x4dc1f4[_0x2196('0x15')](_0x338621);return _0x4dc1f4[_0x2196('0x1c')]('Content-Range',_0x55c2bc+'-'+_0x1c29d7+'/'+_0x5c2243)[_0x2196('0x17')](_0x52ca7f);}return null;};}function patchUpdates(_0x4088e6){return function(_0x573a0f){try{jsonpatch['apply'](_0x573a0f,_0x4088e6,!![]);}catch(_0x10776f){return BPromise[_0x2196('0x1d')](_0x10776f);}return _0x573a0f[_0x2196('0x1e')]();};}function saveUpdates(_0x15e3e4,_0x436008){return function(_0xe022b4){if(_0xe022b4){return _0xe022b4[_0x2196('0x1f')](_0x15e3e4)[_0x2196('0x20')](function(_0x1a1195){return _0x1a1195;});}return null;};}function removeEntity(_0x19c63d,_0x3ff18f){return function(_0x30e8ef){if(_0x30e8ef){return _0x30e8ef[_0x2196('0x21')]()[_0x2196('0x20')](function(){var _0xd60a37=_0x30e8ef[_0x2196('0x22')]({'plain':!![]});var _0x885b2d='MusicOnHolds';return db[_0x2196('0x23')][_0x2196('0x21')]({'where':{'type':_0x885b2d,'resourceId':_0xd60a37['id']}})[_0x2196('0x20')](function(){return _0x30e8ef;});})[_0x2196('0x20')](function(){_0x19c63d[_0x2196('0x15')](0xcc)[_0x2196('0x16')]();});}};}function handleEntityNotFound(_0x125db7,_0x3adf82){return function(_0x2cc398){if(!_0x2cc398){_0x125db7[_0x2196('0x14')](0x194);}return _0x2cc398;};}function handleError(_0x3747c4,_0xa92ae){_0xa92ae=_0xa92ae||0x1f4;return function(_0x12def3){logger[_0x2196('0x24')](_0x12def3[_0x2196('0x25')]);if(_0x12def3[_0x2196('0x26')]){delete _0x12def3['name'];}_0x3747c4['status'](_0xa92ae)[_0x2196('0x27')](_0x12def3);};}exports[_0x2196('0x28')]=function(_0x2dd074,_0x1f49eb){var _0x1c4bbf={},_0x912e79={},_0x385773={'count':0x0,'rows':[]};var _0x2852c1=_['map'](db[_0x2196('0x29')][_0x2196('0x2a')],function(_0x53b542){return{'name':_0x53b542['fieldName'],'type':_0x53b542[_0x2196('0x2b')][_0x2196('0x2c')]};});_0x912e79[_0x2196('0x2d')]=_[_0x2196('0x2e')](_0x2852c1,_0x2196('0x26'));_0x912e79[_0x2196('0x2f')]=_['keys'](_0x2dd074[_0x2196('0x2f')]);_0x912e79[_0x2196('0x30')]=_['intersection'](_0x912e79[_0x2196('0x2d')],_0x912e79[_0x2196('0x2f')]);_0x1c4bbf[_0x2196('0x31')]=_['intersection'](_0x912e79[_0x2196('0x2d')],qs['fields'](_0x2dd074[_0x2196('0x2f')][_0x2196('0x32')]));_0x1c4bbf[_0x2196('0x31')]=_0x1c4bbf[_0x2196('0x31')][_0x2196('0x33')]?_0x1c4bbf[_0x2196('0x31')]:_0x912e79[_0x2196('0x2d')];if(!_0x2dd074[_0x2196('0x2f')]['hasOwnProperty'](_0x2196('0x34'))){_0x1c4bbf[_0x2196('0x1b')]=qs[_0x2196('0x1b')](_0x2dd074[_0x2196('0x2f')][_0x2196('0x1b')]);_0x1c4bbf[_0x2196('0x1a')]=qs[_0x2196('0x1a')](_0x2dd074[_0x2196('0x2f')][_0x2196('0x1a')]);}_0x1c4bbf['order']=qs[_0x2196('0x35')](_0x2dd074[_0x2196('0x2f')][_0x2196('0x35')]);delete _0x2dd074[_0x2196('0x2f')][_0x2196('0x35')];_0x1c4bbf['where']=qs[_0x2196('0x30')](_[_0x2196('0x36')](_0x2dd074[_0x2196('0x2f')],_0x912e79[_0x2196('0x30')]),_0x2852c1);if(_0x2dd074[_0x2196('0x2f')][_0x2196('0x37')]){_0x1c4bbf[_0x2196('0x38')]=_[_0x2196('0x39')](_0x1c4bbf[_0x2196('0x38')],{'$or':_['map'](_0x2852c1,function(_0x1cf9cf){if(_0x1cf9cf[_0x2196('0x2b')]!==_0x2196('0x3a')){var _0xbdf003={};_0xbdf003[_0x1cf9cf[_0x2196('0x26')]]={'$like':'%'+_0x2dd074['query'][_0x2196('0x37')]+'%'};return _0xbdf003;}})});}_0x1c4bbf=_[_0x2196('0x39')]({},_0x1c4bbf,_0x2dd074['options']);var _0x55379a={'where':_0x1c4bbf[_0x2196('0x38')]};return db[_0x2196('0x29')][_0x2196('0x19')](_0x55379a)[_0x2196('0x20')](function(_0x423de7){_0x385773[_0x2196('0x19')]=_0x423de7;if(_0x2dd074['query'][_0x2196('0x3b')]){_0x1c4bbf['include']=[{'all':!![]}];}return db[_0x2196('0x29')][_0x2196('0x3c')](_0x1c4bbf);})[_0x2196('0x20')](function(_0x5c1d26){_0x385773[_0x2196('0x3d')]=_0x5c1d26;return _0x385773;})['then'](respondWithFilteredResult(_0x1f49eb,_0x1c4bbf))[_0x2196('0x3e')](handleError(_0x1f49eb,null));};exports[_0x2196('0x3f')]=function(_0x3cdbc2,_0x5732e7){var _0x5889da={'raw':![],'where':{'id':_0x3cdbc2[_0x2196('0x40')]['id']}},_0x4a5ec9={};_0x4a5ec9[_0x2196('0x2d')]=_['keys'](db[_0x2196('0x29')]['rawAttributes']);_0x4a5ec9[_0x2196('0x2f')]=_[_0x2196('0x41')](_0x3cdbc2['query']);_0x4a5ec9[_0x2196('0x30')]=_[_0x2196('0x42')](_0x4a5ec9[_0x2196('0x2d')],_0x4a5ec9['query']);_0x5889da[_0x2196('0x31')]=_[_0x2196('0x42')](_0x4a5ec9['model'],qs[_0x2196('0x32')](_0x3cdbc2['query'][_0x2196('0x32')]));_0x5889da[_0x2196('0x31')]=_0x5889da[_0x2196('0x31')][_0x2196('0x33')]?_0x5889da[_0x2196('0x31')]:_0x4a5ec9[_0x2196('0x2d')];if(_0x3cdbc2['query'][_0x2196('0x3b')]){_0x5889da[_0x2196('0x43')]=[{'all':!![]}];}_0x5889da=_[_0x2196('0x39')]({},_0x5889da,_0x3cdbc2[_0x2196('0x44')]);return db[_0x2196('0x29')][_0x2196('0x45')](_0x5889da)[_0x2196('0x20')](handleEntityNotFound(_0x5732e7,null))['then'](respondWithResult(_0x5732e7,null))[_0x2196('0x3e')](handleError(_0x5732e7,null));};exports['update']=function(_0xa5cdd5,_0x39733d){if(_0xa5cdd5[_0x2196('0x46')]['id']){delete _0xa5cdd5[_0x2196('0x46')]['id'];}return db[_0x2196('0x29')][_0x2196('0x45')]({'where':{'id':_0xa5cdd5['params']['id']}})[_0x2196('0x20')](handleEntityNotFound(_0x39733d,null))[_0x2196('0x20')](saveUpdates(_0xa5cdd5[_0x2196('0x46')],null))['then'](respondWithResult(_0x39733d,null))[_0x2196('0x3e')](handleError(_0x39733d,null));};exports[_0x2196('0x47')]=function(_0x3d8b73,_0x5a0655,_0x25163e){return db[_0x2196('0x48')][_0x2196('0x49')](function(_0xff3650){if(_0x3d8b73[_0x2196('0x46')][_0x2196('0x4a')]===_0x2196('0x4b')){_0x3d8b73[_0x2196('0x46')][_0x2196('0x4c')]=path[_0x2196('0x4d')](config['root'],_0x2196('0x4e'),_0x3d8b73[_0x2196('0x46')][_0x2196('0x26')]);}return db['VoiceMusicOnHold'][_0x2196('0x47')](_0x3d8b73[_0x2196('0x46')],{'transaction':_0xff3650})['then'](function(_0xfaf935){if(_0x3d8b73[_0x2196('0x46')][_0x2196('0x4a')]===_0x2196('0x4b')){fs[_0x2196('0x4f')](_0xfaf935['directory'],parseInt(_0x2196('0x50'),0x8));}var _0x2ddd56=_0x3d8b73[_0x2196('0x51')][_0x2196('0x22')]({'plain':!![]});if(!_0x2ddd56)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2ddd56[_0x2196('0x52')]===_0x2196('0x51')){var _0x2839f7=_0xfaf935[_0x2196('0x22')]({'plain':!![]});return db[_0x2196('0x53')][_0x2196('0x45')]({'where':{'name':_0x2196('0x54'),'userProfileId':_0x2ddd56['userProfileId']},'raw':!![]})[_0x2196('0x20')](function(_0x143864){if(_0x143864&&_0x143864[_0x2196('0x55')]===0x0){return db[_0x2196('0x23')]['create']({'name':_0x2839f7[_0x2196('0x26')],'resourceId':_0x2839f7['id'],'type':_0x143864[_0x2196('0x26')],'sectionId':_0x143864['id']},{})['then'](function(){return _0xfaf935;});}else{return _0xfaf935;}})[_0x2196('0x3e')](function(_0x23b6ea){logger[_0x2196('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x23b6ea);});}return _0xfaf935;});})[_0x2196('0x20')](respondWithResult(_0x5a0655,0xc9))[_0x2196('0x3e')](handleError(_0x5a0655,null));};exports['destroy']=function(_0x70fb8d,_0x3a9c71,_0x8df9a9){var _0x3e3f67;return db[_0x2196('0x29')][_0x2196('0x45')]({'where':{'id':_0x70fb8d['params']['id']}})[_0x2196('0x20')](function(_0x1dc134){if(_0x1dc134){return db[_0x2196('0x48')]['transaction'](function(_0x20b6df){return _0x1dc134['destroy']({'transaction':_0x20b6df,'raw':!![]})[_0x2196('0x20')](function(_0x7ffffa){if(_0x7ffffa[_0x2196('0x4c')]){fs['readdirSync'](_0x7ffffa[_0x2196('0x4c')])[_0x2196('0x56')](function(_0x147fbf){fs[_0x2196('0x57')](path[_0x2196('0x4d')](_0x7ffffa[_0x2196('0x4c')],_0x147fbf));});fs[_0x2196('0x58')](_0x7ffffa[_0x2196('0x4c')]);}return _0x7ffffa;});})[_0x2196('0x3e')](function(_0x25bfe6){throw new db[(_0x2196('0x59'))][(_0x2196('0x5a'))](_0x25bfe6['message']);});}})[_0x2196('0x20')](handleEntityNotFound(_0x3a9c71,null))['then'](removeEntity(_0x3a9c71,null))[_0x2196('0x3e')](handleError(_0x3a9c71,null));};exports['addSound']=function(_0x4b46f8,_0x460822,_0x56ae35){return db[_0x2196('0x48')][_0x2196('0x49')](function(_0x4c1b38){var _0x669fdf;return db['VoiceMusicOnHold'][_0x2196('0x45')]({'where':{'id':_0x4b46f8['params']['id']}})[_0x2196('0x20')](function(_0x86851d){if(_0x86851d){_0x669fdf=_0x86851d;return _0x86851d[_0x2196('0x5b')](_0x4b46f8['body']['id'],{'transaction':_0x4c1b38});}})[_0x2196('0x20')](function(_0x493b48){if(_0x493b48){return db[_0x2196('0x5c')][_0x2196('0x5d')]({'where':{'id':_0x4b46f8[_0x2196('0x46')]['id']},'attributes':['id','name',_0x2196('0x5e'),_0x2196('0x5f'),_0x2196('0x60')],'raw':!![]});}})[_0x2196('0x20')](function(_0x137ba8){if(_0x137ba8){var _0x9b7e2e=path[_0x2196('0x4d')](config[_0x2196('0x61')],_0x2196('0x62'),util['format']('%s.%s',path[_0x2196('0x63')](_0x137ba8[_0x2196('0x5e')],path[_0x2196('0x64')](_0x137ba8[_0x2196('0x5e')])),_0x137ba8['converted_format']));var _0x566bf4=path['join'](config[_0x2196('0x61')],_0x2196('0x4e'),_0x669fdf[_0x2196('0x26')],util[_0x2196('0x65')]('%s.%s',_0x137ba8['name'],_0x137ba8['converted_format']));fs[_0x2196('0x66')](_0x9b7e2e,_0x566bf4);return _0x137ba8;}})['catch'](function(_0x8fdb17){throw new db['Sequelize'][(_0x2196('0x5a'))](_0x8fdb17['message']);});})[_0x2196('0x20')](handleEntityNotFound(_0x460822,null))[_0x2196('0x20')](respondWithResult(_0x460822,0xc9))['catch'](handleError(_0x460822,null));};exports[_0x2196('0x67')]=function(_0x253eaa,_0x542a60,_0x5f3b37){return db[_0x2196('0x48')]['transaction'](function(_0x24bdc8){var _0x3696c7;return db[_0x2196('0x29')]['findOne']({'where':{'id':_0x253eaa[_0x2196('0x40')]['id']}})[_0x2196('0x20')](handleEntityNotFound(_0x542a60,null))[_0x2196('0x20')](function(_0x1df6b4){if(_0x1df6b4){_0x3696c7=_0x1df6b4;return _0x1df6b4['removeSound'](_0x253eaa['params'][_0x2196('0x68')]);}})[_0x2196('0x20')](function(_0x404744){if(_0x404744){return db[_0x2196('0x5c')][_0x2196('0x5d')]({'where':{'id':_0x253eaa['params'][_0x2196('0x68')]},'attributes':['id',_0x2196('0x26'),_0x2196('0x5e'),'converted_format',_0x2196('0x60')],'raw':!![]});}})['then'](function(_0x3a97a4){if(_0x3a97a4){fs['unlinkSync'](path[_0x2196('0x4d')](_0x3696c7[_0x2196('0x4c')],util[_0x2196('0x65')]('%s.%s',_0x3a97a4[_0x2196('0x26')],_0x3a97a4[_0x2196('0x5f')])));return _0x3a97a4;}})['catch'](function(_0x156f67){throw new db[(_0x2196('0x59'))]['ValidationError'](_0x156f67[_0x2196('0x69')]);});})[_0x2196('0x20')](handleEntityNotFound(_0x542a60,null))[_0x2196('0x20')](respondWithStatusCode(_0x542a60,0xcc))['catch'](handleError(_0x542a60,null));};exports[_0x2196('0x6a')]=function(_0x11ef88,_0x57baea,_0x13866c){var _0x3b1e26={};var _0x55b17d={};var _0x5551c8;var _0x457b8f;return db[_0x2196('0x29')][_0x2196('0x5d')]({'where':{'id':_0x11ef88[_0x2196('0x40')]['id']}})[_0x2196('0x20')](handleEntityNotFound(_0x57baea,null))[_0x2196('0x20')](function(_0xe481c8){if(_0xe481c8){_0x5551c8=_0xe481c8;_0x55b17d['model']=_[_0x2196('0x41')](db['Sound'][_0x2196('0x2a')]);_0x55b17d[_0x2196('0x2f')]=_[_0x2196('0x41')](_0x11ef88['query']);_0x55b17d[_0x2196('0x30')]=_[_0x2196('0x42')](_0x55b17d[_0x2196('0x2d')],_0x55b17d[_0x2196('0x2f')]);_0x3b1e26['attributes']=_[_0x2196('0x42')](_0x55b17d[_0x2196('0x2d')],qs[_0x2196('0x32')](_0x11ef88[_0x2196('0x2f')][_0x2196('0x32')]));_0x3b1e26[_0x2196('0x31')]=_0x3b1e26['attributes'][_0x2196('0x33')]?_0x3b1e26[_0x2196('0x31')]:_0x55b17d[_0x2196('0x2d')];_0x3b1e26[_0x2196('0x6b')]=qs[_0x2196('0x35')](_0x11ef88[_0x2196('0x2f')]['sort']);_0x3b1e26[_0x2196('0x38')]=qs[_0x2196('0x30')](_[_0x2196('0x36')](_0x11ef88[_0x2196('0x2f')],_0x55b17d[_0x2196('0x30')]));if(_0x11ef88['query'][_0x2196('0x37')]){_0x3b1e26['where']=_[_0x2196('0x39')](_0x3b1e26[_0x2196('0x38')],{'$or':_[_0x2196('0x2e')](_0x3b1e26[_0x2196('0x31')],function(_0x4adb5b){var _0x331a2d={};_0x331a2d[_0x4adb5b]={'$like':'%'+_0x11ef88['query']['filter']+'%'};return _0x331a2d;})});}_0x3b1e26=_[_0x2196('0x39')]({},_0x3b1e26,_0x11ef88[_0x2196('0x44')]);return _0x5551c8[_0x2196('0x6a')](_0x3b1e26);}})[_0x2196('0x20')](function(_0x11b2f9){if(_0x11b2f9){_0x457b8f=_0x11b2f9['length'];if(!_0x11ef88['query'][_0x2196('0x6c')](_0x2196('0x34'))){_0x3b1e26['limit']=qs[_0x2196('0x1b')](_0x11ef88[_0x2196('0x2f')][_0x2196('0x1b')]);_0x3b1e26['offset']=qs['offset'](_0x11ef88[_0x2196('0x2f')][_0x2196('0x1a')]);}return _0x5551c8[_0x2196('0x6a')](_0x3b1e26);}})[_0x2196('0x20')](function(_0xd8db4b){if(_0xd8db4b){return _0xd8db4b?{'count':_0x457b8f,'rows':_0xd8db4b}:null;}})[_0x2196('0x20')](respondWithResult(_0x57baea,null))['catch'](handleError(_0x57baea,null));};