Built motion from commit 43538d75.|2.5.35
[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 _0x36bc=['UserProfileSection','autoAssociation','readdirSync','forEach','unlinkSync','join','rmdirSync','Sequelize','message','addSound','findOne','save_name','createdAt','server/files/sounds/converted','%s.%s','extname','format','symlinkSync','ValidationError','removeSound','id2','Sound','converted_format','getSounds','nolimit','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','end','status','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','get','MusicOnHolds','UserProfileResource','sendStatus','error','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','key','model','filters','query','attributes','intersection','fields','length','hasOwnProperty','order','sort','pick','filter','where','type','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','keys','find','update','body','create','sequelize','transaction','mode','files','directory','root','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x43cdee,_0x9b962a){var _0x44eb0f=function(_0x21cf8e){while(--_0x21cf8e){_0x43cdee['push'](_0x43cdee['shift']());}};_0x44eb0f(++_0x9b962a);}(_0x36bc,0x178));var _0xc36b=function(_0x2bf141,_0x31eac7){_0x2bf141=_0x2bf141-0x0;var _0x48277b=_0x36bc[_0x2bf141];return _0x48277b;};'use strict';var emlformat=require(_0xc36b('0x0'));var rimraf=require(_0xc36b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc36b('0x2'));var rp=require(_0xc36b('0x3'));var moment=require(_0xc36b('0x4'));var BPromise=require(_0xc36b('0x5'));var Mustache=require(_0xc36b('0x6'));var util=require(_0xc36b('0x7'));var path=require(_0xc36b('0x8'));var sox=require(_0xc36b('0x9'));var csv=require('to-csv');var ejs=require(_0xc36b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc36b('0xb'));var squel=require(_0xc36b('0xc'));var crypto=require('crypto');var jsforce=require(_0xc36b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc36b('0xe'));var querystring=require(_0xc36b('0xf'));var Papa=require(_0xc36b('0x10'));var Redis=require(_0xc36b('0x11'));var authService=require(_0xc36b('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xc36b('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc36b('0x14'))(_0xc36b('0x15'));var utils=require(_0xc36b('0x16'));var config=require(_0xc36b('0x17'));var licenseUtil=require(_0xc36b('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x578ef3,_0x520492){_0x520492=_0x520492||0xcc;return function(_0x23dc7f){if(_0x23dc7f){return _0x578ef3['sendStatus'](_0x520492);}return _0x578ef3['status'](_0x520492)[_0xc36b('0x19')]();};}function respondWithResult(_0xe0214b,_0x585ca9){_0x585ca9=_0x585ca9||0xc8;return function(_0x29a009){if(_0x29a009){return _0xe0214b[_0xc36b('0x1a')](_0x585ca9)[_0xc36b('0x1b')](_0x29a009);}};}function respondWithFilteredResult(_0x4c67e4,_0x391c0e){return function(_0x422da8){if(_0x422da8){var _0x1b7382=typeof _0x391c0e[_0xc36b('0x1c')]===_0xc36b('0x1d')&&typeof _0x391c0e[_0xc36b('0x1e')]===_0xc36b('0x1d');var _0x28ec39=_0x422da8[_0xc36b('0x1f')];var _0x1fd2f7=_0x1b7382?0x0:_0x391c0e[_0xc36b('0x1c')];var _0x3c6231=_0x1b7382?_0x422da8[_0xc36b('0x1f')]:_0x391c0e[_0xc36b('0x1c')]+_0x391c0e['limit'];var _0x370fdf;if(_0x3c6231>=_0x28ec39){_0x3c6231=_0x28ec39;_0x370fdf=0xc8;}else{_0x370fdf=0xce;}_0x4c67e4[_0xc36b('0x1a')](_0x370fdf);return _0x4c67e4[_0xc36b('0x20')]('Content-Range',_0x1fd2f7+'-'+_0x3c6231+'/'+_0x28ec39)[_0xc36b('0x1b')](_0x422da8);}return null;};}function patchUpdates(_0x4812c8){return function(_0x1d550c){try{jsonpatch[_0xc36b('0x21')](_0x1d550c,_0x4812c8,!![]);}catch(_0x4031ab){return BPromise[_0xc36b('0x22')](_0x4031ab);}return _0x1d550c[_0xc36b('0x23')]();};}function saveUpdates(_0x33b41a,_0x361895){return function(_0x45960a){if(_0x45960a){return _0x45960a['update'](_0x33b41a)[_0xc36b('0x24')](function(_0x1a3969){return _0x1a3969;});}return null;};}function removeEntity(_0x4a78c5,_0x2c3d0d){return function(_0x3b3d77){if(_0x3b3d77){return _0x3b3d77[_0xc36b('0x25')]()[_0xc36b('0x24')](function(){var _0x52387e=_0x3b3d77[_0xc36b('0x26')]({'plain':!![]});var _0x3c5c97=_0xc36b('0x27');return db[_0xc36b('0x28')][_0xc36b('0x25')]({'where':{'type':_0x3c5c97,'resourceId':_0x52387e['id']}})[_0xc36b('0x24')](function(){return _0x3b3d77;});})['then'](function(){_0x4a78c5[_0xc36b('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x25b3b6,_0x50d60a){return function(_0x5e5666){if(!_0x5e5666){_0x25b3b6[_0xc36b('0x29')](0x194);}return _0x5e5666;};}function handleError(_0x3ec615,_0x2132ef){_0x2132ef=_0x2132ef||0x1f4;return function(_0x5c4cd6){logger[_0xc36b('0x2a')](_0x5c4cd6[_0xc36b('0x2b')]);if(_0x5c4cd6[_0xc36b('0x2c')]){delete _0x5c4cd6[_0xc36b('0x2c')];}_0x3ec615[_0xc36b('0x1a')](_0x2132ef)[_0xc36b('0x2d')](_0x5c4cd6);};}exports[_0xc36b('0x2e')]=function(_0x135b25,_0x3ef61e){var _0xcb38f9={},_0x41446={},_0x1cddb9={'count':0x0,'rows':[]};var _0x1b7e74=_[_0xc36b('0x2f')](db[_0xc36b('0x30')][_0xc36b('0x31')],function(_0x5789e5){return{'name':_0x5789e5[_0xc36b('0x32')],'type':_0x5789e5['type'][_0xc36b('0x33')]};});_0x41446[_0xc36b('0x34')]=_['map'](_0x1b7e74,_0xc36b('0x2c'));_0x41446['query']=_['keys'](_0x135b25['query']);_0x41446[_0xc36b('0x35')]=_['intersection'](_0x41446[_0xc36b('0x34')],_0x41446[_0xc36b('0x36')]);_0xcb38f9[_0xc36b('0x37')]=_[_0xc36b('0x38')](_0x41446[_0xc36b('0x34')],qs[_0xc36b('0x39')](_0x135b25[_0xc36b('0x36')][_0xc36b('0x39')]));_0xcb38f9[_0xc36b('0x37')]=_0xcb38f9['attributes'][_0xc36b('0x3a')]?_0xcb38f9[_0xc36b('0x37')]:_0x41446[_0xc36b('0x34')];if(!_0x135b25[_0xc36b('0x36')][_0xc36b('0x3b')]('nolimit')){_0xcb38f9[_0xc36b('0x1e')]=qs[_0xc36b('0x1e')](_0x135b25[_0xc36b('0x36')][_0xc36b('0x1e')]);_0xcb38f9[_0xc36b('0x1c')]=qs['offset'](_0x135b25[_0xc36b('0x36')]['offset']);}_0xcb38f9[_0xc36b('0x3c')]=qs['sort'](_0x135b25[_0xc36b('0x36')]['sort']);delete _0x135b25['query'][_0xc36b('0x3d')];_0xcb38f9['where']=qs[_0xc36b('0x35')](_[_0xc36b('0x3e')](_0x135b25[_0xc36b('0x36')],_0x41446[_0xc36b('0x35')]),_0x1b7e74);if(_0x135b25[_0xc36b('0x36')][_0xc36b('0x3f')]){_0xcb38f9[_0xc36b('0x40')]=_['merge'](_0xcb38f9[_0xc36b('0x40')],{'$or':_['map'](_0x1b7e74,function(_0x50bb44){if(_0x50bb44[_0xc36b('0x41')]!==_0xc36b('0x42')){var _0x5a97d7={};_0x5a97d7[_0x50bb44[_0xc36b('0x2c')]]={'$like':'%'+_0x135b25['query'][_0xc36b('0x3f')]+'%'};return _0x5a97d7;}})});}_0xcb38f9=_[_0xc36b('0x43')]({},_0xcb38f9,_0x135b25[_0xc36b('0x44')]);var _0x542fdd={'where':_0xcb38f9[_0xc36b('0x40')]};return db[_0xc36b('0x30')][_0xc36b('0x1f')](_0x542fdd)['then'](function(_0x2eb586){_0x1cddb9[_0xc36b('0x1f')]=_0x2eb586;if(_0x135b25['query'][_0xc36b('0x45')]){_0xcb38f9[_0xc36b('0x46')]=[{'all':!![]}];}return db[_0xc36b('0x30')][_0xc36b('0x47')](_0xcb38f9);})[_0xc36b('0x24')](function(_0x2b818a){_0x1cddb9['rows']=_0x2b818a;return _0x1cddb9;})[_0xc36b('0x24')](respondWithFilteredResult(_0x3ef61e,_0xcb38f9))[_0xc36b('0x48')](handleError(_0x3ef61e,null));};exports[_0xc36b('0x49')]=function(_0x36fd56,_0x579e0c){var _0x3ef761={'raw':![],'where':{'id':_0x36fd56[_0xc36b('0x4a')]['id']}},_0x438205={};_0x438205[_0xc36b('0x34')]=_[_0xc36b('0x4b')](db['VoiceMusicOnHold'][_0xc36b('0x31')]);_0x438205['query']=_[_0xc36b('0x4b')](_0x36fd56['query']);_0x438205[_0xc36b('0x35')]=_['intersection'](_0x438205[_0xc36b('0x34')],_0x438205['query']);_0x3ef761[_0xc36b('0x37')]=_[_0xc36b('0x38')](_0x438205[_0xc36b('0x34')],qs[_0xc36b('0x39')](_0x36fd56['query'][_0xc36b('0x39')]));_0x3ef761[_0xc36b('0x37')]=_0x3ef761[_0xc36b('0x37')]['length']?_0x3ef761[_0xc36b('0x37')]:_0x438205['model'];if(_0x36fd56[_0xc36b('0x36')][_0xc36b('0x45')]){_0x3ef761[_0xc36b('0x46')]=[{'all':!![]}];}_0x3ef761=_['merge']({},_0x3ef761,_0x36fd56['options']);return db[_0xc36b('0x30')][_0xc36b('0x4c')](_0x3ef761)['then'](handleEntityNotFound(_0x579e0c,null))[_0xc36b('0x24')](respondWithResult(_0x579e0c,null))[_0xc36b('0x48')](handleError(_0x579e0c,null));};exports[_0xc36b('0x4d')]=function(_0x16a720,_0x44a9bb){if(_0x16a720['body']['id']){delete _0x16a720[_0xc36b('0x4e')]['id'];}return db[_0xc36b('0x30')]['find']({'where':{'id':_0x16a720[_0xc36b('0x4a')]['id']}})[_0xc36b('0x24')](handleEntityNotFound(_0x44a9bb,null))[_0xc36b('0x24')](saveUpdates(_0x16a720['body'],null))[_0xc36b('0x24')](respondWithResult(_0x44a9bb,null))[_0xc36b('0x48')](handleError(_0x44a9bb,null));};exports[_0xc36b('0x4f')]=function(_0x518a14,_0xae1624,_0x2c3a06){return db[_0xc36b('0x50')][_0xc36b('0x51')](function(_0x17b609){if(_0x518a14[_0xc36b('0x4e')][_0xc36b('0x52')]===_0xc36b('0x53')){_0x518a14['body'][_0xc36b('0x54')]=path['join'](config[_0xc36b('0x55')],_0xc36b('0x56'),_0x518a14[_0xc36b('0x4e')][_0xc36b('0x2c')]);}return db['VoiceMusicOnHold'][_0xc36b('0x4f')](_0x518a14[_0xc36b('0x4e')],{'transaction':_0x17b609})[_0xc36b('0x24')](function(_0x26b2ff){if(_0x518a14[_0xc36b('0x4e')][_0xc36b('0x52')]==='files'){fs[_0xc36b('0x57')](_0x26b2ff[_0xc36b('0x54')],parseInt(_0xc36b('0x58'),0x8));}var _0x23c42e=_0x518a14[_0xc36b('0x59')][_0xc36b('0x26')]({'plain':!![]});if(!_0x23c42e)throw new Error(_0xc36b('0x5a'));if(_0x23c42e[_0xc36b('0x5b')]==='user'){var _0x485754=_0x26b2ff[_0xc36b('0x26')]({'plain':!![]});return db[_0xc36b('0x5c')][_0xc36b('0x4c')]({'where':{'name':'MusicOnHolds','userProfileId':_0x23c42e['userProfileId']},'raw':!![]})[_0xc36b('0x24')](function(_0x20f8a0){if(_0x20f8a0&&_0x20f8a0[_0xc36b('0x5d')]===0x0){return db[_0xc36b('0x28')][_0xc36b('0x4f')]({'name':_0x485754[_0xc36b('0x2c')],'resourceId':_0x485754['id'],'type':_0x20f8a0[_0xc36b('0x2c')],'sectionId':_0x20f8a0['id']},{})[_0xc36b('0x24')](function(){return _0x26b2ff;});}else{return _0x26b2ff;}})['catch'](function(_0x4ba9bc){logger[_0xc36b('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4ba9bc);});}return _0x26b2ff;});})[_0xc36b('0x24')](respondWithResult(_0xae1624,0xc9))[_0xc36b('0x48')](handleError(_0xae1624,null));};exports[_0xc36b('0x25')]=function(_0x4f5611,_0x39d29a,_0xc7d906){var _0x379ba3;return db['VoiceMusicOnHold'][_0xc36b('0x4c')]({'where':{'id':_0x4f5611['params']['id']}})['then'](function(_0x28c851){if(_0x28c851){return db[_0xc36b('0x50')][_0xc36b('0x51')](function(_0x3d2337){return _0x28c851[_0xc36b('0x25')]({'transaction':_0x3d2337,'raw':!![]})[_0xc36b('0x24')](function(_0x3e91a0){if(_0x3e91a0['directory']){fs[_0xc36b('0x5e')](_0x3e91a0[_0xc36b('0x54')])[_0xc36b('0x5f')](function(_0x49560e){fs[_0xc36b('0x60')](path[_0xc36b('0x61')](_0x3e91a0[_0xc36b('0x54')],_0x49560e));});fs[_0xc36b('0x62')](_0x3e91a0[_0xc36b('0x54')]);}return _0x3e91a0;});})[_0xc36b('0x48')](function(_0xbd4369){throw new db[(_0xc36b('0x63'))]['ValidationError'](_0xbd4369[_0xc36b('0x64')]);});}})[_0xc36b('0x24')](handleEntityNotFound(_0x39d29a,null))[_0xc36b('0x24')](removeEntity(_0x39d29a,null))[_0xc36b('0x48')](handleError(_0x39d29a,null));};exports['addSound']=function(_0x3ba76a,_0x573fca,_0xac654){return db['sequelize'][_0xc36b('0x51')](function(_0x28c4e2){var _0x170262;return db[_0xc36b('0x30')][_0xc36b('0x4c')]({'where':{'id':_0x3ba76a[_0xc36b('0x4a')]['id']}})[_0xc36b('0x24')](function(_0x235eb0){if(_0x235eb0){_0x170262=_0x235eb0;return _0x235eb0[_0xc36b('0x65')](_0x3ba76a[_0xc36b('0x4e')]['id'],{'transaction':_0x28c4e2});}})['then'](function(_0x53a084){if(_0x53a084){return db['Sound'][_0xc36b('0x66')]({'where':{'id':_0x3ba76a['body']['id']},'attributes':['id','name',_0xc36b('0x67'),'converted_format',_0xc36b('0x68')],'raw':!![]});}})[_0xc36b('0x24')](function(_0xef47d3){if(_0xef47d3){var _0x458861=path[_0xc36b('0x61')](config[_0xc36b('0x55')],_0xc36b('0x69'),util['format'](_0xc36b('0x6a'),path['basename'](_0xef47d3[_0xc36b('0x67')],path[_0xc36b('0x6b')](_0xef47d3[_0xc36b('0x67')])),_0xef47d3['converted_format']));var _0x1f2453=path[_0xc36b('0x61')](config[_0xc36b('0x55')],_0xc36b('0x56'),_0x170262[_0xc36b('0x2c')],util[_0xc36b('0x6c')](_0xc36b('0x6a'),_0xef47d3['name'],_0xef47d3['converted_format']));fs[_0xc36b('0x6d')](_0x458861,_0x1f2453);return _0xef47d3;}})[_0xc36b('0x48')](function(_0x40dc45){throw new db['Sequelize'][(_0xc36b('0x6e'))](_0x40dc45[_0xc36b('0x64')]);});})[_0xc36b('0x24')](handleEntityNotFound(_0x573fca,null))[_0xc36b('0x24')](respondWithResult(_0x573fca,0xc9))[_0xc36b('0x48')](handleError(_0x573fca,null));};exports[_0xc36b('0x6f')]=function(_0xbddd88,_0x106e51,_0x155f18){return db['sequelize'][_0xc36b('0x51')](function(_0x576e1a){var _0x4a35c3;return db[_0xc36b('0x30')][_0xc36b('0x66')]({'where':{'id':_0xbddd88[_0xc36b('0x4a')]['id']}})[_0xc36b('0x24')](handleEntityNotFound(_0x106e51,null))[_0xc36b('0x24')](function(_0x50e276){if(_0x50e276){_0x4a35c3=_0x50e276;return _0x50e276['removeSound'](_0xbddd88[_0xc36b('0x4a')][_0xc36b('0x70')]);}})[_0xc36b('0x24')](function(_0x534096){if(_0x534096){return db[_0xc36b('0x71')][_0xc36b('0x66')]({'where':{'id':_0xbddd88[_0xc36b('0x4a')][_0xc36b('0x70')]},'attributes':['id',_0xc36b('0x2c'),_0xc36b('0x67'),_0xc36b('0x72'),_0xc36b('0x68')],'raw':!![]});}})[_0xc36b('0x24')](function(_0x3d5999){if(_0x3d5999){fs['unlinkSync'](path[_0xc36b('0x61')](_0x4a35c3[_0xc36b('0x54')],util[_0xc36b('0x6c')](_0xc36b('0x6a'),_0x3d5999[_0xc36b('0x2c')],_0x3d5999[_0xc36b('0x72')])));return _0x3d5999;}})[_0xc36b('0x48')](function(_0x551734){throw new db['Sequelize']['ValidationError'](_0x551734[_0xc36b('0x64')]);});})[_0xc36b('0x24')](handleEntityNotFound(_0x106e51,null))['then'](respondWithStatusCode(_0x106e51,0xcc))[_0xc36b('0x48')](handleError(_0x106e51,null));};exports[_0xc36b('0x73')]=function(_0x248b42,_0x55b8f4,_0x12d5dc){var _0x1376ce={};var _0x32292e={};var _0x56413f;var _0x540fc4;return db[_0xc36b('0x30')][_0xc36b('0x66')]({'where':{'id':_0x248b42[_0xc36b('0x4a')]['id']}})['then'](handleEntityNotFound(_0x55b8f4,null))[_0xc36b('0x24')](function(_0x35ff1a){if(_0x35ff1a){_0x56413f=_0x35ff1a;_0x32292e['model']=_['keys'](db[_0xc36b('0x71')][_0xc36b('0x31')]);_0x32292e['query']=_[_0xc36b('0x4b')](_0x248b42[_0xc36b('0x36')]);_0x32292e['filters']=_[_0xc36b('0x38')](_0x32292e[_0xc36b('0x34')],_0x32292e[_0xc36b('0x36')]);_0x1376ce[_0xc36b('0x37')]=_[_0xc36b('0x38')](_0x32292e['model'],qs[_0xc36b('0x39')](_0x248b42[_0xc36b('0x36')][_0xc36b('0x39')]));_0x1376ce['attributes']=_0x1376ce[_0xc36b('0x37')][_0xc36b('0x3a')]?_0x1376ce[_0xc36b('0x37')]:_0x32292e[_0xc36b('0x34')];_0x1376ce[_0xc36b('0x3c')]=qs['sort'](_0x248b42[_0xc36b('0x36')][_0xc36b('0x3d')]);_0x1376ce['where']=qs[_0xc36b('0x35')](_[_0xc36b('0x3e')](_0x248b42[_0xc36b('0x36')],_0x32292e[_0xc36b('0x35')]));if(_0x248b42['query'][_0xc36b('0x3f')]){_0x1376ce['where']=_[_0xc36b('0x43')](_0x1376ce[_0xc36b('0x40')],{'$or':_[_0xc36b('0x2f')](_0x1376ce['attributes'],function(_0x17d19e){var _0x3f6632={};_0x3f6632[_0x17d19e]={'$like':'%'+_0x248b42[_0xc36b('0x36')]['filter']+'%'};return _0x3f6632;})});}_0x1376ce=_[_0xc36b('0x43')]({},_0x1376ce,_0x248b42[_0xc36b('0x44')]);return _0x56413f[_0xc36b('0x73')](_0x1376ce);}})[_0xc36b('0x24')](function(_0x2cd50c){if(_0x2cd50c){_0x540fc4=_0x2cd50c[_0xc36b('0x3a')];if(!_0x248b42[_0xc36b('0x36')]['hasOwnProperty'](_0xc36b('0x74'))){_0x1376ce['limit']=qs[_0xc36b('0x1e')](_0x248b42[_0xc36b('0x36')][_0xc36b('0x1e')]);_0x1376ce[_0xc36b('0x1c')]=qs[_0xc36b('0x1c')](_0x248b42[_0xc36b('0x36')]['offset']);}return _0x56413f[_0xc36b('0x73')](_0x1376ce);}})['then'](function(_0x3af546){if(_0x3af546){return _0x3af546?{'count':_0x540fc4,'rows':_0x3af546}:null;}})['then'](respondWithResult(_0x55b8f4,null))['catch'](handleError(_0x55b8f4,null));};