Built motion from commit 1ea47bf4.|2.6.34
[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 _0xdc4e=['root','server/files/sounds/converted','extname','symlinkSync','removeSound','id2','Sound','format','getSounds','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','update','then','destroy','MusicOnHolds','stack','name','send','index','VoiceMusicOnHold','rawAttributes','fieldName','type','key','map','keys','intersection','model','fields','query','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','filters','catch','body','create','mode','files','directory','server/files/moh','mkdirSync','0777','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','sequelize','transaction','readdirSync','unlinkSync','join','rmdirSync','Sequelize','ValidationError','message','addSound','findOne','save_name','converted_format','createdAt'];(function(_0x2ba9e8,_0x5893d5){var _0x440e97=function(_0x3c1915){while(--_0x3c1915){_0x2ba9e8['push'](_0x2ba9e8['shift']());}};_0x440e97(++_0x5893d5);}(_0xdc4e,0x80));var _0xedc4=function(_0x1e9bf3,_0x4e14f5){_0x1e9bf3=_0x1e9bf3-0x0;var _0x4864c1=_0xdc4e[_0x1e9bf3];return _0x4864c1;};'use strict';var emlformat=require(_0xedc4('0x0'));var rimraf=require(_0xedc4('0x1'));var zipdir=require(_0xedc4('0x2'));var jsonpatch=require(_0xedc4('0x3'));var rp=require(_0xedc4('0x4'));var moment=require(_0xedc4('0x5'));var BPromise=require(_0xedc4('0x6'));var Mustache=require(_0xedc4('0x7'));var util=require(_0xedc4('0x8'));var path=require(_0xedc4('0x9'));var sox=require(_0xedc4('0xa'));var csv=require(_0xedc4('0xb'));var ejs=require(_0xedc4('0xc'));var fs=require('fs');var fs_extra=require(_0xedc4('0xd'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xedc4('0xe'));var jsforce=require(_0xedc4('0xf'));var deskjs=require(_0xedc4('0x10'));var toCsv=require(_0xedc4('0xb'));var querystring=require(_0xedc4('0x11'));var Papa=require('papaparse');var Redis=require(_0xedc4('0x12'));var authService=require(_0xedc4('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xedc4('0x14'));var hardwareService=require(_0xedc4('0x15'));var logger=require(_0xedc4('0x16'))(_0xedc4('0x17'));var utils=require(_0xedc4('0x18'));var config=require(_0xedc4('0x19'));var licenseUtil=require(_0xedc4('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x483676,_0x31b678){_0x31b678=_0x31b678||0xcc;return function(_0x376d08){if(_0x376d08){return _0x483676[_0xedc4('0x1b')](_0x31b678);}return _0x483676[_0xedc4('0x1c')](_0x31b678)[_0xedc4('0x1d')]();};}function respondWithResult(_0x5792ef,_0x46f2b9){_0x46f2b9=_0x46f2b9||0xc8;return function(_0x15324d){if(_0x15324d){return _0x5792ef['status'](_0x46f2b9)[_0xedc4('0x1e')](_0x15324d);}};}function respondWithFilteredResult(_0x57e7bc,_0x3e5449){return function(_0x1fb140){if(_0x1fb140){var _0x15dec0=typeof _0x3e5449['offset']==='undefined'&&typeof _0x3e5449[_0xedc4('0x1f')]===_0xedc4('0x20');var _0x245aba=_0x1fb140[_0xedc4('0x21')];var _0x1dca32=_0x15dec0?0x0:_0x3e5449[_0xedc4('0x22')];var _0x548743=_0x15dec0?_0x1fb140['count']:_0x3e5449[_0xedc4('0x22')]+_0x3e5449[_0xedc4('0x1f')];var _0x298efe;if(_0x548743>=_0x245aba){_0x548743=_0x245aba;_0x298efe=0xc8;}else{_0x298efe=0xce;}_0x57e7bc[_0xedc4('0x1c')](_0x298efe);return _0x57e7bc[_0xedc4('0x23')](_0xedc4('0x24'),_0x1dca32+'-'+_0x548743+'/'+_0x245aba)['json'](_0x1fb140);}return null;};}function patchUpdates(_0x2404e6){return function(_0x2f0bcb){try{jsonpatch[_0xedc4('0x25')](_0x2f0bcb,_0x2404e6,!![]);}catch(_0x202ebe){return BPromise[_0xedc4('0x26')](_0x202ebe);}return _0x2f0bcb['save']();};}function saveUpdates(_0x41314e,_0x4f6a7d){return function(_0x26dc51){if(_0x26dc51){return _0x26dc51[_0xedc4('0x27')](_0x41314e)[_0xedc4('0x28')](function(_0x4a2483){return _0x4a2483;});}return null;};}function removeEntity(_0x46b3cb,_0x133ca1){return function(_0x2ce153){if(_0x2ce153){return _0x2ce153[_0xedc4('0x29')]()[_0xedc4('0x28')](function(){var _0x332c5b=_0x2ce153['get']({'plain':!![]});var _0x13fb09=_0xedc4('0x2a');return db['UserProfileResource'][_0xedc4('0x29')]({'where':{'type':_0x13fb09,'resourceId':_0x332c5b['id']}})[_0xedc4('0x28')](function(){return _0x2ce153;});})['then'](function(){_0x46b3cb[_0xedc4('0x1c')](0xcc)[_0xedc4('0x1d')]();});}};}function handleEntityNotFound(_0x2a00e6,_0x5b85b8){return function(_0xbb52df){if(!_0xbb52df){_0x2a00e6[_0xedc4('0x1b')](0x194);}return _0xbb52df;};}function handleError(_0x54e4b1,_0x4b5fe6){_0x4b5fe6=_0x4b5fe6||0x1f4;return function(_0x290e06){logger['error'](_0x290e06[_0xedc4('0x2b')]);if(_0x290e06[_0xedc4('0x2c')]){delete _0x290e06[_0xedc4('0x2c')];}_0x54e4b1[_0xedc4('0x1c')](_0x4b5fe6)[_0xedc4('0x2d')](_0x290e06);};}exports[_0xedc4('0x2e')]=function(_0x5a08ed,_0x4bafa4){var _0x3522c1={},_0x592931={},_0x1a23c7={'count':0x0,'rows':[]};var _0x2b1a46=_['map'](db[_0xedc4('0x2f')][_0xedc4('0x30')],function(_0x10f387){return{'name':_0x10f387[_0xedc4('0x31')],'type':_0x10f387[_0xedc4('0x32')][_0xedc4('0x33')]};});_0x592931['model']=_[_0xedc4('0x34')](_0x2b1a46,_0xedc4('0x2c'));_0x592931['query']=_[_0xedc4('0x35')](_0x5a08ed['query']);_0x592931['filters']=_[_0xedc4('0x36')](_0x592931[_0xedc4('0x37')],_0x592931['query']);_0x3522c1['attributes']=_[_0xedc4('0x36')](_0x592931[_0xedc4('0x37')],qs[_0xedc4('0x38')](_0x5a08ed[_0xedc4('0x39')][_0xedc4('0x38')]));_0x3522c1[_0xedc4('0x3a')]=_0x3522c1[_0xedc4('0x3a')][_0xedc4('0x3b')]?_0x3522c1[_0xedc4('0x3a')]:_0x592931['model'];if(!_0x5a08ed[_0xedc4('0x39')][_0xedc4('0x3c')]('nolimit')){_0x3522c1[_0xedc4('0x1f')]=qs['limit'](_0x5a08ed[_0xedc4('0x39')][_0xedc4('0x1f')]);_0x3522c1[_0xedc4('0x22')]=qs[_0xedc4('0x22')](_0x5a08ed[_0xedc4('0x39')][_0xedc4('0x22')]);}_0x3522c1[_0xedc4('0x3d')]=qs[_0xedc4('0x3e')](_0x5a08ed['query']['sort']);delete _0x5a08ed[_0xedc4('0x39')][_0xedc4('0x3e')];_0x3522c1[_0xedc4('0x3f')]=qs['filters'](_[_0xedc4('0x40')](_0x5a08ed[_0xedc4('0x39')],_0x592931['filters']),_0x2b1a46);if(_0x5a08ed[_0xedc4('0x39')][_0xedc4('0x41')]){_0x3522c1[_0xedc4('0x3f')]=_[_0xedc4('0x42')](_0x3522c1[_0xedc4('0x3f')],{'$or':_['map'](_0x2b1a46,function(_0x2fe46f){if(_0x2fe46f['type']!==_0xedc4('0x43')){var _0x4be5b6={};_0x4be5b6[_0x2fe46f[_0xedc4('0x2c')]]={'$like':'%'+_0x5a08ed[_0xedc4('0x39')][_0xedc4('0x41')]+'%'};return _0x4be5b6;}})});}_0x3522c1=_[_0xedc4('0x42')]({},_0x3522c1,_0x5a08ed[_0xedc4('0x44')]);var _0x56edaf={'where':_0x3522c1['where']};return db[_0xedc4('0x2f')][_0xedc4('0x21')](_0x56edaf)[_0xedc4('0x28')](function(_0x3ea26e){_0x1a23c7[_0xedc4('0x21')]=_0x3ea26e;if(_0x5a08ed[_0xedc4('0x39')][_0xedc4('0x45')]){_0x3522c1['include']=[{'all':!![]}];}return db[_0xedc4('0x2f')][_0xedc4('0x46')](_0x3522c1);})['then'](function(_0x4c5009){_0x1a23c7[_0xedc4('0x47')]=_0x4c5009;return _0x1a23c7;})[_0xedc4('0x28')](respondWithFilteredResult(_0x4bafa4,_0x3522c1))['catch'](handleError(_0x4bafa4,null));};exports[_0xedc4('0x48')]=function(_0x3048c4,_0x30f706){var _0x59132b={'raw':![],'where':{'id':_0x3048c4['params']['id']}},_0x54079d={};_0x54079d[_0xedc4('0x37')]=_[_0xedc4('0x35')](db[_0xedc4('0x2f')][_0xedc4('0x30')]);_0x54079d[_0xedc4('0x39')]=_[_0xedc4('0x35')](_0x3048c4[_0xedc4('0x39')]);_0x54079d[_0xedc4('0x49')]=_['intersection'](_0x54079d[_0xedc4('0x37')],_0x54079d[_0xedc4('0x39')]);_0x59132b[_0xedc4('0x3a')]=_[_0xedc4('0x36')](_0x54079d[_0xedc4('0x37')],qs[_0xedc4('0x38')](_0x3048c4[_0xedc4('0x39')][_0xedc4('0x38')]));_0x59132b[_0xedc4('0x3a')]=_0x59132b[_0xedc4('0x3a')]['length']?_0x59132b['attributes']:_0x54079d[_0xedc4('0x37')];if(_0x3048c4[_0xedc4('0x39')]['includeAll']){_0x59132b['include']=[{'all':!![]}];}_0x59132b=_[_0xedc4('0x42')]({},_0x59132b,_0x3048c4[_0xedc4('0x44')]);return db[_0xedc4('0x2f')]['find'](_0x59132b)[_0xedc4('0x28')](handleEntityNotFound(_0x30f706,null))[_0xedc4('0x28')](respondWithResult(_0x30f706,null))[_0xedc4('0x4a')](handleError(_0x30f706,null));};exports[_0xedc4('0x27')]=function(_0x4f94c7,_0x37d281){if(_0x4f94c7[_0xedc4('0x4b')]['id']){delete _0x4f94c7[_0xedc4('0x4b')]['id'];}return db[_0xedc4('0x2f')]['find']({'where':{'id':_0x4f94c7['params']['id']}})[_0xedc4('0x28')](handleEntityNotFound(_0x37d281,null))[_0xedc4('0x28')](saveUpdates(_0x4f94c7[_0xedc4('0x4b')],null))[_0xedc4('0x28')](respondWithResult(_0x37d281,null))['catch'](handleError(_0x37d281,null));};exports[_0xedc4('0x4c')]=function(_0x1ee7e6,_0x1c4238,_0x420269){return db['sequelize']['transaction'](function(_0xa753b4){if(_0x1ee7e6['body'][_0xedc4('0x4d')]===_0xedc4('0x4e')){_0x1ee7e6[_0xedc4('0x4b')][_0xedc4('0x4f')]=path['join'](config['root'],_0xedc4('0x50'),_0x1ee7e6[_0xedc4('0x4b')][_0xedc4('0x2c')]);}return db[_0xedc4('0x2f')][_0xedc4('0x4c')](_0x1ee7e6[_0xedc4('0x4b')],{'transaction':_0xa753b4})[_0xedc4('0x28')](function(_0x4612b0){if(_0x1ee7e6['body']['mode']===_0xedc4('0x4e')){fs[_0xedc4('0x51')](_0x4612b0['directory'],parseInt(_0xedc4('0x52'),0x8));}var _0x2a5b0e=_0x1ee7e6[_0xedc4('0x53')][_0xedc4('0x54')]({'plain':!![]});if(!_0x2a5b0e)throw new Error(_0xedc4('0x55'));if(_0x2a5b0e[_0xedc4('0x56')]==='user'){var _0x466d00=_0x4612b0['get']({'plain':!![]});return db['UserProfileSection'][_0xedc4('0x57')]({'where':{'name':'MusicOnHolds','userProfileId':_0x2a5b0e[_0xedc4('0x58')]},'raw':!![]})[_0xedc4('0x28')](function(_0x49e6d1){if(_0x49e6d1&&_0x49e6d1[_0xedc4('0x59')]===0x0){return db[_0xedc4('0x5a')]['create']({'name':_0x466d00['name'],'resourceId':_0x466d00['id'],'type':_0x49e6d1['name'],'sectionId':_0x49e6d1['id']},{})[_0xedc4('0x28')](function(){return _0x4612b0;});}else{return _0x4612b0;}})['catch'](function(_0x3b7fca){logger[_0xedc4('0x5b')](_0xedc4('0x5c'),_0x3b7fca);});}return _0x4612b0;});})[_0xedc4('0x28')](respondWithResult(_0x1c4238,0xc9))[_0xedc4('0x4a')](handleError(_0x1c4238,null));};exports[_0xedc4('0x29')]=function(_0x35c49b,_0x53e2fb,_0xe067f2){var _0x6bef2b;return db[_0xedc4('0x2f')][_0xedc4('0x57')]({'where':{'id':_0x35c49b[_0xedc4('0x5d')]['id']}})[_0xedc4('0x28')](function(_0x35110e){if(_0x35110e){return db[_0xedc4('0x5e')][_0xedc4('0x5f')](function(_0x4459e4){return _0x35110e['destroy']({'transaction':_0x4459e4,'raw':!![]})[_0xedc4('0x28')](function(_0x33e26f){if(_0x33e26f[_0xedc4('0x4f')]){fs[_0xedc4('0x60')](_0x33e26f[_0xedc4('0x4f')])['forEach'](function(_0x175941){fs[_0xedc4('0x61')](path[_0xedc4('0x62')](_0x33e26f[_0xedc4('0x4f')],_0x175941));});fs[_0xedc4('0x63')](_0x33e26f[_0xedc4('0x4f')]);}return _0x33e26f;});})['catch'](function(_0x5ac66e){throw new db[(_0xedc4('0x64'))][(_0xedc4('0x65'))](_0x5ac66e[_0xedc4('0x66')]);});}})[_0xedc4('0x28')](handleEntityNotFound(_0x53e2fb,null))[_0xedc4('0x28')](removeEntity(_0x53e2fb,null))[_0xedc4('0x4a')](handleError(_0x53e2fb,null));};exports[_0xedc4('0x67')]=function(_0x206e5e,_0x31d85d,_0x32defc){return db[_0xedc4('0x5e')][_0xedc4('0x5f')](function(_0x4f09ec){var _0x28394e;return db[_0xedc4('0x2f')][_0xedc4('0x57')]({'where':{'id':_0x206e5e[_0xedc4('0x5d')]['id']}})[_0xedc4('0x28')](function(_0x2d1776){if(_0x2d1776){_0x28394e=_0x2d1776;return _0x2d1776[_0xedc4('0x67')](_0x206e5e[_0xedc4('0x4b')]['id'],{'transaction':_0x4f09ec});}})[_0xedc4('0x28')](function(_0x29de74){if(_0x29de74){return db['Sound'][_0xedc4('0x68')]({'where':{'id':_0x206e5e[_0xedc4('0x4b')]['id']},'attributes':['id',_0xedc4('0x2c'),_0xedc4('0x69'),_0xedc4('0x6a'),_0xedc4('0x6b')],'raw':!![]});}})[_0xedc4('0x28')](function(_0x570821){if(_0x570821){var _0x166501=path[_0xedc4('0x62')](config[_0xedc4('0x6c')],_0xedc4('0x6d'),util['format']('%s.%s',path['basename'](_0x570821['save_name'],path[_0xedc4('0x6e')](_0x570821[_0xedc4('0x69')])),_0x570821[_0xedc4('0x6a')]));var _0x59fa3c=path[_0xedc4('0x62')](config[_0xedc4('0x6c')],'server/files/moh',_0x28394e[_0xedc4('0x2c')],util['format']('%s.%s',_0x570821[_0xedc4('0x2c')],_0x570821['converted_format']));fs[_0xedc4('0x6f')](_0x166501,_0x59fa3c);return _0x570821;}})[_0xedc4('0x4a')](function(_0x2146a0){throw new db[(_0xedc4('0x64'))][(_0xedc4('0x65'))](_0x2146a0[_0xedc4('0x66')]);});})['then'](handleEntityNotFound(_0x31d85d,null))[_0xedc4('0x28')](respondWithResult(_0x31d85d,0xc9))[_0xedc4('0x4a')](handleError(_0x31d85d,null));};exports['removeSound']=function(_0x239ca0,_0x1d848e,_0x2be500){return db[_0xedc4('0x5e')][_0xedc4('0x5f')](function(_0x44b464){var _0x2634be;return db[_0xedc4('0x2f')][_0xedc4('0x68')]({'where':{'id':_0x239ca0[_0xedc4('0x5d')]['id']}})[_0xedc4('0x28')](handleEntityNotFound(_0x1d848e,null))[_0xedc4('0x28')](function(_0x546dd4){if(_0x546dd4){_0x2634be=_0x546dd4;return _0x546dd4[_0xedc4('0x70')](_0x239ca0[_0xedc4('0x5d')][_0xedc4('0x71')]);}})[_0xedc4('0x28')](function(_0x16feb6){if(_0x16feb6){return db[_0xedc4('0x72')][_0xedc4('0x68')]({'where':{'id':_0x239ca0[_0xedc4('0x5d')][_0xedc4('0x71')]},'attributes':['id',_0xedc4('0x2c'),_0xedc4('0x69'),_0xedc4('0x6a'),_0xedc4('0x6b')],'raw':!![]});}})[_0xedc4('0x28')](function(_0x46e039){if(_0x46e039){fs[_0xedc4('0x61')](path[_0xedc4('0x62')](_0x2634be['directory'],util[_0xedc4('0x73')]('%s.%s',_0x46e039[_0xedc4('0x2c')],_0x46e039['converted_format'])));return _0x46e039;}})[_0xedc4('0x4a')](function(_0x3bda1c){throw new db['Sequelize'][(_0xedc4('0x65'))](_0x3bda1c[_0xedc4('0x66')]);});})[_0xedc4('0x28')](handleEntityNotFound(_0x1d848e,null))[_0xedc4('0x28')](respondWithStatusCode(_0x1d848e,0xcc))[_0xedc4('0x4a')](handleError(_0x1d848e,null));};exports[_0xedc4('0x74')]=function(_0x44f4c9,_0x41d1f3,_0x177614){var _0xb94996={};var _0x2cd53b={};var _0x3aeb6a;var _0x43cc66;return db['VoiceMusicOnHold'][_0xedc4('0x68')]({'where':{'id':_0x44f4c9[_0xedc4('0x5d')]['id']}})[_0xedc4('0x28')](handleEntityNotFound(_0x41d1f3,null))['then'](function(_0x5aca45){if(_0x5aca45){_0x3aeb6a=_0x5aca45;_0x2cd53b[_0xedc4('0x37')]=_['keys'](db[_0xedc4('0x72')][_0xedc4('0x30')]);_0x2cd53b['query']=_[_0xedc4('0x35')](_0x44f4c9[_0xedc4('0x39')]);_0x2cd53b['filters']=_[_0xedc4('0x36')](_0x2cd53b[_0xedc4('0x37')],_0x2cd53b[_0xedc4('0x39')]);_0xb94996['attributes']=_[_0xedc4('0x36')](_0x2cd53b['model'],qs[_0xedc4('0x38')](_0x44f4c9[_0xedc4('0x39')]['fields']));_0xb94996[_0xedc4('0x3a')]=_0xb94996[_0xedc4('0x3a')][_0xedc4('0x3b')]?_0xb94996[_0xedc4('0x3a')]:_0x2cd53b[_0xedc4('0x37')];_0xb94996['order']=qs[_0xedc4('0x3e')](_0x44f4c9[_0xedc4('0x39')][_0xedc4('0x3e')]);_0xb94996[_0xedc4('0x3f')]=qs[_0xedc4('0x49')](_[_0xedc4('0x40')](_0x44f4c9[_0xedc4('0x39')],_0x2cd53b[_0xedc4('0x49')]));if(_0x44f4c9[_0xedc4('0x39')][_0xedc4('0x41')]){_0xb94996[_0xedc4('0x3f')]=_[_0xedc4('0x42')](_0xb94996[_0xedc4('0x3f')],{'$or':_['map'](_0xb94996['attributes'],function(_0x36b1d7){var _0x171f46={};_0x171f46[_0x36b1d7]={'$like':'%'+_0x44f4c9[_0xedc4('0x39')][_0xedc4('0x41')]+'%'};return _0x171f46;})});}_0xb94996=_[_0xedc4('0x42')]({},_0xb94996,_0x44f4c9[_0xedc4('0x44')]);return _0x3aeb6a[_0xedc4('0x74')](_0xb94996);}})['then'](function(_0x39ae99){if(_0x39ae99){_0x43cc66=_0x39ae99[_0xedc4('0x3b')];if(!_0x44f4c9[_0xedc4('0x39')]['hasOwnProperty'](_0xedc4('0x75'))){_0xb94996[_0xedc4('0x1f')]=qs[_0xedc4('0x1f')](_0x44f4c9[_0xedc4('0x39')][_0xedc4('0x1f')]);_0xb94996[_0xedc4('0x22')]=qs[_0xedc4('0x22')](_0x44f4c9[_0xedc4('0x39')][_0xedc4('0x22')]);}return _0x3aeb6a[_0xedc4('0x74')](_0xb94996);}})[_0xedc4('0x28')](function(_0x2cfa89){if(_0x2cfa89){return _0x2cfa89?{'count':_0x43cc66,'rows':_0x2cfa89}:null;}})[_0xedc4('0x28')](respondWithResult(_0x41d1f3,null))[_0xedc4('0x4a')](handleError(_0x41d1f3,null));};