a91f4bf627cbda9509445d061ecdaa9c2f7a5a16
[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 _0xd681=['options','include','findAll','rows','show','includeAll','find','catch','body','params','create','sequelize','transaction','files','join','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','directory','unlinkSync','Sequelize','message','addSound','Sound','findOne','converted_format','createdAt','root','server/files/sounds/converted','format','%s.%s','basename','save_name','extname','server/files/moh','symlinkSync','removeSound','id2','ValidationError','getSounds','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','offset','limit','count','set','Content-Range','json','apply','reject','save','update','destroy','then','MusicOnHolds','name','send','index','map','VoiceMusicOnHold','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','merge','filter'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xd681,0x17b));var _0x1d68=function(_0x573d41,_0x540e13){_0x573d41=_0x573d41-0x0;var _0x205386=_0xd681[_0x573d41];return _0x205386;};'use strict';var emlformat=require(_0x1d68('0x0'));var rimraf=require(_0x1d68('0x1'));var zipdir=require(_0x1d68('0x2'));var jsonpatch=require(_0x1d68('0x3'));var rp=require(_0x1d68('0x4'));var moment=require(_0x1d68('0x5'));var BPromise=require(_0x1d68('0x6'));var Mustache=require(_0x1d68('0x7'));var util=require(_0x1d68('0x8'));var path=require(_0x1d68('0x9'));var sox=require(_0x1d68('0xa'));var csv=require(_0x1d68('0xb'));var ejs=require(_0x1d68('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x1d68('0xd'));var crypto=require(_0x1d68('0xe'));var jsforce=require(_0x1d68('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x1d68('0xb'));var querystring=require(_0x1d68('0x10'));var Papa=require(_0x1d68('0x11'));var Redis=require(_0x1d68('0x12'));var authService=require(_0x1d68('0x13'));var qs=require(_0x1d68('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1d68('0x15'));var logger=require(_0x1d68('0x16'))(_0x1d68('0x17'));var utils=require(_0x1d68('0x18'));var config=require(_0x1d68('0x19'));var licenseUtil=require(_0x1d68('0x1a'));var db=require(_0x1d68('0x1b'))['db'];function respondWithStatusCode(_0x526d67,_0x9a128f){_0x9a128f=_0x9a128f||0xcc;return function(_0x54b381){if(_0x54b381){return _0x526d67['sendStatus'](_0x9a128f);}return _0x526d67[_0x1d68('0x1c')](_0x9a128f)['end']();};}function respondWithResult(_0x798e27,_0x54d865){_0x54d865=_0x54d865||0xc8;return function(_0x1d0f16){if(_0x1d0f16){return _0x798e27[_0x1d68('0x1c')](_0x54d865)['json'](_0x1d0f16);}};}function respondWithFilteredResult(_0x3f1ed,_0x3a9b75){return function(_0x46ef6c){if(_0x46ef6c){var _0x235719=typeof _0x3a9b75[_0x1d68('0x1d')]==='undefined'&&typeof _0x3a9b75[_0x1d68('0x1e')]==='undefined';var _0x3a46ce=_0x46ef6c[_0x1d68('0x1f')];var _0x43f744=_0x235719?0x0:_0x3a9b75[_0x1d68('0x1d')];var _0x55edec=_0x235719?_0x46ef6c[_0x1d68('0x1f')]:_0x3a9b75[_0x1d68('0x1d')]+_0x3a9b75[_0x1d68('0x1e')];var _0x59658d;if(_0x55edec>=_0x3a46ce){_0x55edec=_0x3a46ce;_0x59658d=0xc8;}else{_0x59658d=0xce;}_0x3f1ed[_0x1d68('0x1c')](_0x59658d);return _0x3f1ed[_0x1d68('0x20')](_0x1d68('0x21'),_0x43f744+'-'+_0x55edec+'/'+_0x3a46ce)[_0x1d68('0x22')](_0x46ef6c);}return null;};}function patchUpdates(_0x3652b8){return function(_0x408ce2){try{jsonpatch[_0x1d68('0x23')](_0x408ce2,_0x3652b8,!![]);}catch(_0x4d0870){return BPromise[_0x1d68('0x24')](_0x4d0870);}return _0x408ce2[_0x1d68('0x25')]();};}function saveUpdates(_0x58bd78,_0x5c8949){return function(_0x590bba){if(_0x590bba){return _0x590bba[_0x1d68('0x26')](_0x58bd78)['then'](function(_0xb1ecd2){return _0xb1ecd2;});}return null;};}function removeEntity(_0x31cfdb,_0x7703d9){return function(_0xa13b5c){if(_0xa13b5c){return _0xa13b5c[_0x1d68('0x27')]()[_0x1d68('0x28')](function(){var _0x1fa127=_0xa13b5c['get']({'plain':!![]});var _0x4cd0a1=_0x1d68('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0x4cd0a1,'resourceId':_0x1fa127['id']}})[_0x1d68('0x28')](function(){return _0xa13b5c;});})[_0x1d68('0x28')](function(){_0x31cfdb[_0x1d68('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d38b3,_0x448b79){return function(_0x107e55){if(!_0x107e55){_0x4d38b3['sendStatus'](0x194);}return _0x107e55;};}function handleError(_0x342f45,_0x5e13cc){_0x5e13cc=_0x5e13cc||0x1f4;return function(_0x43487a){logger['error'](_0x43487a['stack']);if(_0x43487a[_0x1d68('0x2a')]){delete _0x43487a['name'];}_0x342f45[_0x1d68('0x1c')](_0x5e13cc)[_0x1d68('0x2b')](_0x43487a);};}exports[_0x1d68('0x2c')]=function(_0x53204a,_0x8add11){var _0xebdfab={},_0x577d5e={},_0x506f00={'count':0x0,'rows':[]};var _0x5c2f49=_[_0x1d68('0x2d')](db[_0x1d68('0x2e')][_0x1d68('0x2f')],function(_0x49387b){return{'name':_0x49387b['fieldName'],'type':_0x49387b[_0x1d68('0x30')][_0x1d68('0x31')]};});_0x577d5e[_0x1d68('0x32')]=_[_0x1d68('0x2d')](_0x5c2f49,_0x1d68('0x2a'));_0x577d5e[_0x1d68('0x33')]=_[_0x1d68('0x34')](_0x53204a[_0x1d68('0x33')]);_0x577d5e[_0x1d68('0x35')]=_[_0x1d68('0x36')](_0x577d5e['model'],_0x577d5e[_0x1d68('0x33')]);_0xebdfab['attributes']=_[_0x1d68('0x36')](_0x577d5e[_0x1d68('0x32')],qs[_0x1d68('0x37')](_0x53204a[_0x1d68('0x33')][_0x1d68('0x37')]));_0xebdfab[_0x1d68('0x38')]=_0xebdfab['attributes'][_0x1d68('0x39')]?_0xebdfab[_0x1d68('0x38')]:_0x577d5e[_0x1d68('0x32')];if(!_0x53204a[_0x1d68('0x33')]['hasOwnProperty'](_0x1d68('0x3a'))){_0xebdfab['limit']=qs[_0x1d68('0x1e')](_0x53204a[_0x1d68('0x33')][_0x1d68('0x1e')]);_0xebdfab[_0x1d68('0x1d')]=qs['offset'](_0x53204a[_0x1d68('0x33')]['offset']);}_0xebdfab[_0x1d68('0x3b')]=qs[_0x1d68('0x3c')](_0x53204a['query']['sort']);delete _0x53204a[_0x1d68('0x33')]['sort'];_0xebdfab[_0x1d68('0x3d')]=qs[_0x1d68('0x35')](_[_0x1d68('0x3e')](_0x53204a[_0x1d68('0x33')],_0x577d5e[_0x1d68('0x35')]),_0x5c2f49);if(_0x53204a['query']['filter']){_0xebdfab['where']=_[_0x1d68('0x3f')](_0xebdfab[_0x1d68('0x3d')],{'$or':_[_0x1d68('0x2d')](_0x5c2f49,function(_0x3cccfe){if(_0x3cccfe[_0x1d68('0x30')]!=='VIRTUAL'){var _0x2bd6f3={};_0x2bd6f3[_0x3cccfe[_0x1d68('0x2a')]]={'$like':'%'+_0x53204a[_0x1d68('0x33')][_0x1d68('0x40')]+'%'};return _0x2bd6f3;}})});}_0xebdfab=_[_0x1d68('0x3f')]({},_0xebdfab,_0x53204a[_0x1d68('0x41')]);var _0x4fa6ac={'where':_0xebdfab[_0x1d68('0x3d')]};return db[_0x1d68('0x2e')][_0x1d68('0x1f')](_0x4fa6ac)[_0x1d68('0x28')](function(_0x2232c7){_0x506f00[_0x1d68('0x1f')]=_0x2232c7;if(_0x53204a[_0x1d68('0x33')]['includeAll']){_0xebdfab[_0x1d68('0x42')]=[{'all':!![]}];}return db[_0x1d68('0x2e')][_0x1d68('0x43')](_0xebdfab);})[_0x1d68('0x28')](function(_0x51ab7e){_0x506f00[_0x1d68('0x44')]=_0x51ab7e;return _0x506f00;})['then'](respondWithFilteredResult(_0x8add11,_0xebdfab))['catch'](handleError(_0x8add11,null));};exports[_0x1d68('0x45')]=function(_0x3d1240,_0x4d2d0d){var _0x308c4d={'raw':![],'where':{'id':_0x3d1240['params']['id']}},_0x4a9348={};_0x4a9348[_0x1d68('0x32')]=_['keys'](db[_0x1d68('0x2e')][_0x1d68('0x2f')]);_0x4a9348[_0x1d68('0x33')]=_[_0x1d68('0x34')](_0x3d1240[_0x1d68('0x33')]);_0x4a9348['filters']=_[_0x1d68('0x36')](_0x4a9348[_0x1d68('0x32')],_0x4a9348[_0x1d68('0x33')]);_0x308c4d[_0x1d68('0x38')]=_[_0x1d68('0x36')](_0x4a9348[_0x1d68('0x32')],qs[_0x1d68('0x37')](_0x3d1240[_0x1d68('0x33')][_0x1d68('0x37')]));_0x308c4d[_0x1d68('0x38')]=_0x308c4d['attributes'][_0x1d68('0x39')]?_0x308c4d[_0x1d68('0x38')]:_0x4a9348[_0x1d68('0x32')];if(_0x3d1240[_0x1d68('0x33')][_0x1d68('0x46')]){_0x308c4d[_0x1d68('0x42')]=[{'all':!![]}];}_0x308c4d=_[_0x1d68('0x3f')]({},_0x308c4d,_0x3d1240[_0x1d68('0x41')]);return db[_0x1d68('0x2e')][_0x1d68('0x47')](_0x308c4d)[_0x1d68('0x28')](handleEntityNotFound(_0x4d2d0d,null))[_0x1d68('0x28')](respondWithResult(_0x4d2d0d,null))[_0x1d68('0x48')](handleError(_0x4d2d0d,null));};exports[_0x1d68('0x26')]=function(_0x2b03f4,_0x4f5a9a){if(_0x2b03f4['body']['id']){delete _0x2b03f4[_0x1d68('0x49')]['id'];}return db[_0x1d68('0x2e')]['find']({'where':{'id':_0x2b03f4[_0x1d68('0x4a')]['id']}})[_0x1d68('0x28')](handleEntityNotFound(_0x4f5a9a,null))[_0x1d68('0x28')](saveUpdates(_0x2b03f4['body'],null))['then'](respondWithResult(_0x4f5a9a,null))[_0x1d68('0x48')](handleError(_0x4f5a9a,null));};exports[_0x1d68('0x4b')]=function(_0x790f25,_0x55a017,_0x38e2ef){return db[_0x1d68('0x4c')][_0x1d68('0x4d')](function(_0x4f3c42){if(_0x790f25[_0x1d68('0x49')]['mode']===_0x1d68('0x4e')){_0x790f25['body']['directory']=path[_0x1d68('0x4f')](config['root'],'server/files/moh',_0x790f25['body']['name']);}return db[_0x1d68('0x2e')][_0x1d68('0x4b')](_0x790f25[_0x1d68('0x49')],{'transaction':_0x4f3c42})[_0x1d68('0x28')](function(_0x574cbb){if(_0x790f25[_0x1d68('0x49')]['mode']==='files'){fs['mkdirSync'](_0x574cbb['directory'],parseInt('0777',0x8));}var _0x248933=_0x790f25[_0x1d68('0x50')]['get']({'plain':!![]});if(!_0x248933)throw new Error(_0x1d68('0x51'));if(_0x248933[_0x1d68('0x52')]===_0x1d68('0x50')){var _0x49f3fb=_0x574cbb[_0x1d68('0x53')]({'plain':!![]});return db[_0x1d68('0x54')][_0x1d68('0x47')]({'where':{'name':_0x1d68('0x29'),'userProfileId':_0x248933[_0x1d68('0x55')]},'raw':!![]})[_0x1d68('0x28')](function(_0x5d205d){if(_0x5d205d&&_0x5d205d['autoAssociation']===0x0){return db[_0x1d68('0x56')][_0x1d68('0x4b')]({'name':_0x49f3fb[_0x1d68('0x2a')],'resourceId':_0x49f3fb['id'],'type':_0x5d205d[_0x1d68('0x2a')],'sectionId':_0x5d205d['id']},{})[_0x1d68('0x28')](function(){return _0x574cbb;});}else{return _0x574cbb;}})[_0x1d68('0x48')](function(_0x317a9a){logger[_0x1d68('0x57')](_0x1d68('0x58'),_0x317a9a);});}return _0x574cbb;});})['then'](respondWithResult(_0x55a017,0xc9))[_0x1d68('0x48')](handleError(_0x55a017,null));};exports[_0x1d68('0x27')]=function(_0x391765,_0x5a435b,_0xabf035){var _0x4d2d74;return db['VoiceMusicOnHold'][_0x1d68('0x47')]({'where':{'id':_0x391765['params']['id']}})[_0x1d68('0x28')](function(_0x5c7b39){if(_0x5c7b39){return db[_0x1d68('0x4c')][_0x1d68('0x4d')](function(_0x5840b3){return _0x5c7b39[_0x1d68('0x27')]({'transaction':_0x5840b3,'raw':!![]})[_0x1d68('0x28')](function(_0x1291d9){if(_0x1291d9[_0x1d68('0x59')]){fs['readdirSync'](_0x1291d9[_0x1d68('0x59')])['forEach'](function(_0x24c51b){fs[_0x1d68('0x5a')](path[_0x1d68('0x4f')](_0x1291d9[_0x1d68('0x59')],_0x24c51b));});fs['rmdirSync'](_0x1291d9[_0x1d68('0x59')]);}return _0x1291d9;});})[_0x1d68('0x48')](function(_0x584c92){throw new db[(_0x1d68('0x5b'))]['ValidationError'](_0x584c92[_0x1d68('0x5c')]);});}})[_0x1d68('0x28')](handleEntityNotFound(_0x5a435b,null))['then'](removeEntity(_0x5a435b,null))[_0x1d68('0x48')](handleError(_0x5a435b,null));};exports['addSound']=function(_0x3b2f4e,_0x33800f,_0x148864){return db[_0x1d68('0x4c')]['transaction'](function(_0x329cbb){var _0x358d6a;return db[_0x1d68('0x2e')]['find']({'where':{'id':_0x3b2f4e[_0x1d68('0x4a')]['id']}})['then'](function(_0x52df49){if(_0x52df49){_0x358d6a=_0x52df49;return _0x52df49[_0x1d68('0x5d')](_0x3b2f4e[_0x1d68('0x49')]['id'],{'transaction':_0x329cbb});}})['then'](function(_0x4b5a84){if(_0x4b5a84){return db[_0x1d68('0x5e')][_0x1d68('0x5f')]({'where':{'id':_0x3b2f4e['body']['id']},'attributes':['id',_0x1d68('0x2a'),'save_name',_0x1d68('0x60'),_0x1d68('0x61')],'raw':!![]});}})[_0x1d68('0x28')](function(_0x4b0f2d){if(_0x4b0f2d){var _0x5e4ea3=path[_0x1d68('0x4f')](config[_0x1d68('0x62')],_0x1d68('0x63'),util[_0x1d68('0x64')](_0x1d68('0x65'),path[_0x1d68('0x66')](_0x4b0f2d[_0x1d68('0x67')],path[_0x1d68('0x68')](_0x4b0f2d[_0x1d68('0x67')])),_0x4b0f2d[_0x1d68('0x60')]));var _0x57e5c7=path['join'](config[_0x1d68('0x62')],_0x1d68('0x69'),_0x358d6a['name'],util[_0x1d68('0x64')](_0x1d68('0x65'),_0x4b0f2d['name'],_0x4b0f2d[_0x1d68('0x60')]));fs[_0x1d68('0x6a')](_0x5e4ea3,_0x57e5c7);return _0x4b0f2d;}})[_0x1d68('0x48')](function(_0x13d412){throw new db[(_0x1d68('0x5b'))]['ValidationError'](_0x13d412['message']);});})['then'](handleEntityNotFound(_0x33800f,null))[_0x1d68('0x28')](respondWithResult(_0x33800f,0xc9))[_0x1d68('0x48')](handleError(_0x33800f,null));};exports[_0x1d68('0x6b')]=function(_0x5396c4,_0x4ad19e,_0x2cfc88){return db[_0x1d68('0x4c')]['transaction'](function(_0x16d3fa){var _0x1df867;return db[_0x1d68('0x2e')][_0x1d68('0x5f')]({'where':{'id':_0x5396c4[_0x1d68('0x4a')]['id']}})[_0x1d68('0x28')](handleEntityNotFound(_0x4ad19e,null))['then'](function(_0x3719c4){if(_0x3719c4){_0x1df867=_0x3719c4;return _0x3719c4['removeSound'](_0x5396c4[_0x1d68('0x4a')][_0x1d68('0x6c')]);}})[_0x1d68('0x28')](function(_0x3ac6f0){if(_0x3ac6f0){return db['Sound'][_0x1d68('0x5f')]({'where':{'id':_0x5396c4[_0x1d68('0x4a')]['id2']},'attributes':['id','name',_0x1d68('0x67'),_0x1d68('0x60'),_0x1d68('0x61')],'raw':!![]});}})['then'](function(_0x303947){if(_0x303947){fs[_0x1d68('0x5a')](path[_0x1d68('0x4f')](_0x1df867['directory'],util[_0x1d68('0x64')](_0x1d68('0x65'),_0x303947[_0x1d68('0x2a')],_0x303947[_0x1d68('0x60')])));return _0x303947;}})[_0x1d68('0x48')](function(_0x409bb6){throw new db[(_0x1d68('0x5b'))][(_0x1d68('0x6d'))](_0x409bb6[_0x1d68('0x5c')]);});})['then'](handleEntityNotFound(_0x4ad19e,null))[_0x1d68('0x28')](respondWithStatusCode(_0x4ad19e,0xcc))['catch'](handleError(_0x4ad19e,null));};exports[_0x1d68('0x6e')]=function(_0x2a4c1f,_0x316585,_0x16c3be){var _0x490fea={};var _0x39df3b={};var _0x36b0e4;var _0x4d94cf;return db[_0x1d68('0x2e')][_0x1d68('0x5f')]({'where':{'id':_0x2a4c1f[_0x1d68('0x4a')]['id']}})[_0x1d68('0x28')](handleEntityNotFound(_0x316585,null))[_0x1d68('0x28')](function(_0x5efd52){if(_0x5efd52){_0x36b0e4=_0x5efd52;_0x39df3b['model']=_[_0x1d68('0x34')](db[_0x1d68('0x5e')][_0x1d68('0x2f')]);_0x39df3b['query']=_['keys'](_0x2a4c1f['query']);_0x39df3b[_0x1d68('0x35')]=_[_0x1d68('0x36')](_0x39df3b[_0x1d68('0x32')],_0x39df3b[_0x1d68('0x33')]);_0x490fea['attributes']=_['intersection'](_0x39df3b[_0x1d68('0x32')],qs[_0x1d68('0x37')](_0x2a4c1f[_0x1d68('0x33')][_0x1d68('0x37')]));_0x490fea[_0x1d68('0x38')]=_0x490fea[_0x1d68('0x38')][_0x1d68('0x39')]?_0x490fea[_0x1d68('0x38')]:_0x39df3b[_0x1d68('0x32')];_0x490fea['order']=qs[_0x1d68('0x3c')](_0x2a4c1f['query'][_0x1d68('0x3c')]);_0x490fea[_0x1d68('0x3d')]=qs[_0x1d68('0x35')](_[_0x1d68('0x3e')](_0x2a4c1f[_0x1d68('0x33')],_0x39df3b[_0x1d68('0x35')]));if(_0x2a4c1f[_0x1d68('0x33')][_0x1d68('0x40')]){_0x490fea[_0x1d68('0x3d')]=_['merge'](_0x490fea[_0x1d68('0x3d')],{'$or':_[_0x1d68('0x2d')](_0x490fea[_0x1d68('0x38')],function(_0x1fefde){var _0xe1960e={};_0xe1960e[_0x1fefde]={'$like':'%'+_0x2a4c1f['query'][_0x1d68('0x40')]+'%'};return _0xe1960e;})});}_0x490fea=_['merge']({},_0x490fea,_0x2a4c1f[_0x1d68('0x41')]);return _0x36b0e4[_0x1d68('0x6e')](_0x490fea);}})['then'](function(_0x466b38){if(_0x466b38){_0x4d94cf=_0x466b38[_0x1d68('0x39')];if(!_0x2a4c1f['query']['hasOwnProperty']('nolimit')){_0x490fea['limit']=qs[_0x1d68('0x1e')](_0x2a4c1f[_0x1d68('0x33')]['limit']);_0x490fea[_0x1d68('0x1d')]=qs['offset'](_0x2a4c1f['query'][_0x1d68('0x1d')]);}return _0x36b0e4[_0x1d68('0x6e')](_0x490fea);}})[_0x1d68('0x28')](function(_0x4c6a98){if(_0x4c6a98){return _0x4c6a98?{'count':_0x4d94cf,'rows':_0x4c6a98}:null;}})[_0x1d68('0x28')](respondWithResult(_0x316585,null))[_0x1d68('0x48')](handleError(_0x316585,null));};