4fb0c849bcff5d8e04dc5e387466bc71c36ab7f3
[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 _0xfd5e=['map','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','rows','catch','show','params','keys','find','body','create','sequelize','mode','files','directory','join','root','server/files/moh','mkdirSync','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','MusicOnHolds','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','unlinkSync','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','%s.%s','basename','extname','Sequelize','removeSound','id2','format','getSounds','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','destroy','end','error','stack','name','send','index','VoiceMusicOnHold','rawAttributes','fieldName','key','model'];(function(_0x446d2e,_0x4bc597){var _0x1739de=function(_0x1c137c){while(--_0x1c137c){_0x446d2e['push'](_0x446d2e['shift']());}};_0x1739de(++_0x4bc597);}(_0xfd5e,0xae));var _0xefd5=function(_0x2d44c3,_0x4ce66a){_0x2d44c3=_0x2d44c3-0x0;var _0x54cf65=_0xfd5e[_0x2d44c3];return _0x54cf65;};'use strict';var emlformat=require(_0xefd5('0x0'));var rimraf=require(_0xefd5('0x1'));var zipdir=require(_0xefd5('0x2'));var jsonpatch=require(_0xefd5('0x3'));var rp=require(_0xefd5('0x4'));var moment=require(_0xefd5('0x5'));var BPromise=require(_0xefd5('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0xefd5('0x7'));var sox=require(_0xefd5('0x8'));var csv=require(_0xefd5('0x9'));var ejs=require(_0xefd5('0xa'));var fs=require('fs');var fs_extra=require(_0xefd5('0xb'));var _=require('lodash');var squel=require(_0xefd5('0xc'));var crypto=require(_0xefd5('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xefd5('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xefd5('0xf'));var qs=require(_0xefd5('0x10'));var as=require(_0xefd5('0x11'));var hardwareService=require(_0xefd5('0x12'));var logger=require(_0xefd5('0x13'))('api');var utils=require(_0xefd5('0x14'));var config=require(_0xefd5('0x15'));var licenseUtil=require(_0xefd5('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x40e22e,_0x511079){_0x511079=_0x511079||0xcc;return function(_0x435e2d){if(_0x435e2d){return _0x40e22e[_0xefd5('0x17')](_0x511079);}return _0x40e22e[_0xefd5('0x18')](_0x511079)['end']();};}function respondWithResult(_0x485a4c,_0x1f7238){_0x1f7238=_0x1f7238||0xc8;return function(_0x7c1cfc){if(_0x7c1cfc){return _0x485a4c[_0xefd5('0x18')](_0x1f7238)[_0xefd5('0x19')](_0x7c1cfc);}};}function respondWithFilteredResult(_0x146808,_0x111d52){return function(_0x2b3cbf){if(_0x2b3cbf){var _0x49e167=typeof _0x111d52[_0xefd5('0x1a')]===_0xefd5('0x1b')&&typeof _0x111d52[_0xefd5('0x1c')]==='undefined';var _0xfebd89=_0x2b3cbf[_0xefd5('0x1d')];var _0x1b8398=_0x49e167?0x0:_0x111d52[_0xefd5('0x1a')];var _0x2780be=_0x49e167?_0x2b3cbf[_0xefd5('0x1d')]:_0x111d52[_0xefd5('0x1a')]+_0x111d52[_0xefd5('0x1c')];var _0x1e07cf;if(_0x2780be>=_0xfebd89){_0x2780be=_0xfebd89;_0x1e07cf=0xc8;}else{_0x1e07cf=0xce;}_0x146808[_0xefd5('0x18')](_0x1e07cf);return _0x146808[_0xefd5('0x1e')](_0xefd5('0x1f'),_0x1b8398+'-'+_0x2780be+'/'+_0xfebd89)[_0xefd5('0x19')](_0x2b3cbf);}return null;};}function patchUpdates(_0x5a1281){return function(_0x3fd637){try{jsonpatch[_0xefd5('0x20')](_0x3fd637,_0x5a1281,!![]);}catch(_0x4bc21e){return BPromise[_0xefd5('0x21')](_0x4bc21e);}return _0x3fd637[_0xefd5('0x22')]();};}function saveUpdates(_0x43f298,_0xb505fc){return function(_0x739f4f){if(_0x739f4f){return _0x739f4f[_0xefd5('0x23')](_0x43f298)[_0xefd5('0x24')](function(_0x4f7180){return _0x4f7180;});}return null;};}function removeEntity(_0x4cf38b,_0x37bb17){return function(_0x86bdd8){if(_0x86bdd8){return _0x86bdd8['destroy']()[_0xefd5('0x24')](function(){var _0x4f04af=_0x86bdd8[_0xefd5('0x25')]({'plain':!![]});var _0x4d9b7d='MusicOnHolds';return db['UserProfileResource'][_0xefd5('0x26')]({'where':{'type':_0x4d9b7d,'resourceId':_0x4f04af['id']}})[_0xefd5('0x24')](function(){return _0x86bdd8;});})['then'](function(){_0x4cf38b[_0xefd5('0x18')](0xcc)[_0xefd5('0x27')]();});}};}function handleEntityNotFound(_0x56b098,_0x41dbc3){return function(_0x599341){if(!_0x599341){_0x56b098[_0xefd5('0x17')](0x194);}return _0x599341;};}function handleError(_0x5a1a58,_0x207875){_0x207875=_0x207875||0x1f4;return function(_0x44abe7){logger[_0xefd5('0x28')](_0x44abe7[_0xefd5('0x29')]);if(_0x44abe7[_0xefd5('0x2a')]){delete _0x44abe7[_0xefd5('0x2a')];}_0x5a1a58['status'](_0x207875)[_0xefd5('0x2b')](_0x44abe7);};}exports[_0xefd5('0x2c')]=function(_0x8230ca,_0x531734){var _0x4bf7a6={},_0x4a9b0a={},_0x34624f={'count':0x0,'rows':[]};var _0xe27620=_['map'](db[_0xefd5('0x2d')][_0xefd5('0x2e')],function(_0x53e69f){return{'name':_0x53e69f[_0xefd5('0x2f')],'type':_0x53e69f['type'][_0xefd5('0x30')]};});_0x4a9b0a[_0xefd5('0x31')]=_[_0xefd5('0x32')](_0xe27620,'name');_0x4a9b0a[_0xefd5('0x33')]=_['keys'](_0x8230ca['query']);_0x4a9b0a[_0xefd5('0x34')]=_[_0xefd5('0x35')](_0x4a9b0a['model'],_0x4a9b0a[_0xefd5('0x33')]);_0x4bf7a6['attributes']=_['intersection'](_0x4a9b0a[_0xefd5('0x31')],qs[_0xefd5('0x36')](_0x8230ca[_0xefd5('0x33')][_0xefd5('0x36')]));_0x4bf7a6['attributes']=_0x4bf7a6[_0xefd5('0x37')][_0xefd5('0x38')]?_0x4bf7a6[_0xefd5('0x37')]:_0x4a9b0a[_0xefd5('0x31')];if(!_0x8230ca[_0xefd5('0x33')][_0xefd5('0x39')](_0xefd5('0x3a'))){_0x4bf7a6[_0xefd5('0x1c')]=qs[_0xefd5('0x1c')](_0x8230ca[_0xefd5('0x33')]['limit']);_0x4bf7a6['offset']=qs[_0xefd5('0x1a')](_0x8230ca[_0xefd5('0x33')][_0xefd5('0x1a')]);}_0x4bf7a6[_0xefd5('0x3b')]=qs['sort'](_0x8230ca['query'][_0xefd5('0x3c')]);delete _0x8230ca[_0xefd5('0x33')]['sort'];_0x4bf7a6[_0xefd5('0x3d')]=qs[_0xefd5('0x34')](_[_0xefd5('0x3e')](_0x8230ca[_0xefd5('0x33')],_0x4a9b0a[_0xefd5('0x34')]),_0xe27620);if(_0x8230ca[_0xefd5('0x33')][_0xefd5('0x3f')]){_0x4bf7a6[_0xefd5('0x3d')]=_[_0xefd5('0x40')](_0x4bf7a6['where'],{'$or':_[_0xefd5('0x32')](_0xe27620,function(_0x24e74a){if(_0x24e74a[_0xefd5('0x41')]!=='VIRTUAL'){var _0x303e2a={};_0x303e2a[_0x24e74a[_0xefd5('0x2a')]]={'$like':'%'+_0x8230ca['query']['filter']+'%'};return _0x303e2a;}})});}_0x4bf7a6=_['merge']({},_0x4bf7a6,_0x8230ca[_0xefd5('0x42')]);var _0x4243c0={'where':_0x4bf7a6[_0xefd5('0x3d')]};return db[_0xefd5('0x2d')][_0xefd5('0x1d')](_0x4243c0)[_0xefd5('0x24')](function(_0x30ebc2){_0x34624f[_0xefd5('0x1d')]=_0x30ebc2;if(_0x8230ca[_0xefd5('0x33')][_0xefd5('0x43')]){_0x4bf7a6[_0xefd5('0x44')]=[{'all':!![]}];}return db[_0xefd5('0x2d')][_0xefd5('0x45')](_0x4bf7a6);})['then'](function(_0x28978f){_0x34624f[_0xefd5('0x46')]=_0x28978f;return _0x34624f;})[_0xefd5('0x24')](respondWithFilteredResult(_0x531734,_0x4bf7a6))[_0xefd5('0x47')](handleError(_0x531734,null));};exports[_0xefd5('0x48')]=function(_0x4d108c,_0x818997){var _0x456757={'raw':![],'where':{'id':_0x4d108c[_0xefd5('0x49')]['id']}},_0x5814c2={};_0x5814c2[_0xefd5('0x31')]=_['keys'](db[_0xefd5('0x2d')][_0xefd5('0x2e')]);_0x5814c2[_0xefd5('0x33')]=_[_0xefd5('0x4a')](_0x4d108c[_0xefd5('0x33')]);_0x5814c2['filters']=_[_0xefd5('0x35')](_0x5814c2[_0xefd5('0x31')],_0x5814c2[_0xefd5('0x33')]);_0x456757[_0xefd5('0x37')]=_[_0xefd5('0x35')](_0x5814c2[_0xefd5('0x31')],qs['fields'](_0x4d108c[_0xefd5('0x33')][_0xefd5('0x36')]));_0x456757[_0xefd5('0x37')]=_0x456757[_0xefd5('0x37')][_0xefd5('0x38')]?_0x456757[_0xefd5('0x37')]:_0x5814c2[_0xefd5('0x31')];if(_0x4d108c[_0xefd5('0x33')][_0xefd5('0x43')]){_0x456757['include']=[{'all':!![]}];}_0x456757=_[_0xefd5('0x40')]({},_0x456757,_0x4d108c['options']);return db[_0xefd5('0x2d')][_0xefd5('0x4b')](_0x456757)[_0xefd5('0x24')](handleEntityNotFound(_0x818997,null))[_0xefd5('0x24')](respondWithResult(_0x818997,null))[_0xefd5('0x47')](handleError(_0x818997,null));};exports[_0xefd5('0x23')]=function(_0x4dca4e,_0x485a96){if(_0x4dca4e[_0xefd5('0x4c')]['id']){delete _0x4dca4e[_0xefd5('0x4c')]['id'];}return db[_0xefd5('0x2d')][_0xefd5('0x4b')]({'where':{'id':_0x4dca4e[_0xefd5('0x49')]['id']}})[_0xefd5('0x24')](handleEntityNotFound(_0x485a96,null))[_0xefd5('0x24')](saveUpdates(_0x4dca4e[_0xefd5('0x4c')],null))[_0xefd5('0x24')](respondWithResult(_0x485a96,null))[_0xefd5('0x47')](handleError(_0x485a96,null));};exports[_0xefd5('0x4d')]=function(_0x4cfed9,_0x4c8166,_0x189b30){return db[_0xefd5('0x4e')]['transaction'](function(_0x1e4b5f){if(_0x4cfed9['body'][_0xefd5('0x4f')]===_0xefd5('0x50')){_0x4cfed9[_0xefd5('0x4c')][_0xefd5('0x51')]=path[_0xefd5('0x52')](config[_0xefd5('0x53')],_0xefd5('0x54'),_0x4cfed9[_0xefd5('0x4c')][_0xefd5('0x2a')]);}return db['VoiceMusicOnHold'][_0xefd5('0x4d')](_0x4cfed9[_0xefd5('0x4c')],{'transaction':_0x1e4b5f})['then'](function(_0x17bec8){if(_0x4cfed9['body'][_0xefd5('0x4f')]==='files'){fs[_0xefd5('0x55')](_0x17bec8[_0xefd5('0x51')],parseInt('0777',0x8));}var _0x4afb72=_0x4cfed9[_0xefd5('0x56')]['get']({'plain':!![]});if(!_0x4afb72)throw new Error(_0xefd5('0x57'));if(_0x4afb72[_0xefd5('0x58')]===_0xefd5('0x56')){var _0x69f8d=_0x17bec8[_0xefd5('0x25')]({'plain':!![]});return db[_0xefd5('0x59')]['find']({'where':{'name':_0xefd5('0x5a'),'userProfileId':_0x4afb72['userProfileId']},'raw':!![]})[_0xefd5('0x24')](function(_0x24078c){if(_0x24078c&&_0x24078c[_0xefd5('0x5b')]===0x0){return db['UserProfileResource'][_0xefd5('0x4d')]({'name':_0x69f8d[_0xefd5('0x2a')],'resourceId':_0x69f8d['id'],'type':_0x24078c[_0xefd5('0x2a')],'sectionId':_0x24078c['id']},{})[_0xefd5('0x24')](function(){return _0x17bec8;});}else{return _0x17bec8;}})[_0xefd5('0x47')](function(_0x5daad9){logger[_0xefd5('0x28')](_0xefd5('0x5c'),_0x5daad9);});}return _0x17bec8;});})[_0xefd5('0x24')](respondWithResult(_0x4c8166,0xc9))['catch'](handleError(_0x4c8166,null));};exports[_0xefd5('0x26')]=function(_0x4e3449,_0x507cc9,_0x5359d5){var _0x2050ba;return db[_0xefd5('0x2d')][_0xefd5('0x4b')]({'where':{'id':_0x4e3449[_0xefd5('0x49')]['id']}})['then'](function(_0x564f92){if(_0x564f92){return db['sequelize'][_0xefd5('0x5d')](function(_0x401bfc){return _0x564f92[_0xefd5('0x26')]({'transaction':_0x401bfc,'raw':!![]})[_0xefd5('0x24')](function(_0x49f8ab){if(_0x49f8ab[_0xefd5('0x51')]){fs['readdirSync'](_0x49f8ab['directory'])['forEach'](function(_0x300576){fs[_0xefd5('0x5e')](path[_0xefd5('0x52')](_0x49f8ab[_0xefd5('0x51')],_0x300576));});fs['rmdirSync'](_0x49f8ab['directory']);}return _0x49f8ab;});})['catch'](function(_0x49bd00){throw new db['Sequelize'][(_0xefd5('0x5f'))](_0x49bd00[_0xefd5('0x60')]);});}})[_0xefd5('0x24')](handleEntityNotFound(_0x507cc9,null))[_0xefd5('0x24')](removeEntity(_0x507cc9,null))[_0xefd5('0x47')](handleError(_0x507cc9,null));};exports[_0xefd5('0x61')]=function(_0x2d002c,_0x59aa52,_0xd3cee4){return db[_0xefd5('0x4e')][_0xefd5('0x5d')](function(_0x111aba){var _0xc8286e;return db[_0xefd5('0x2d')]['find']({'where':{'id':_0x2d002c[_0xefd5('0x49')]['id']}})[_0xefd5('0x24')](function(_0x548e07){if(_0x548e07){_0xc8286e=_0x548e07;return _0x548e07[_0xefd5('0x61')](_0x2d002c[_0xefd5('0x4c')]['id'],{'transaction':_0x111aba});}})[_0xefd5('0x24')](function(_0x2fe398){if(_0x2fe398){return db[_0xefd5('0x62')][_0xefd5('0x63')]({'where':{'id':_0x2d002c[_0xefd5('0x4c')]['id']},'attributes':['id',_0xefd5('0x2a'),_0xefd5('0x64'),_0xefd5('0x65'),_0xefd5('0x66')],'raw':!![]});}})[_0xefd5('0x24')](function(_0x28a138){if(_0x28a138){var _0x338345=path[_0xefd5('0x52')](config['root'],_0xefd5('0x67'),util['format'](_0xefd5('0x68'),path[_0xefd5('0x69')](_0x28a138[_0xefd5('0x64')],path[_0xefd5('0x6a')](_0x28a138[_0xefd5('0x64')])),_0x28a138['converted_format']));var _0xd0f592=path[_0xefd5('0x52')](config[_0xefd5('0x53')],_0xefd5('0x54'),_0xc8286e[_0xefd5('0x2a')],util['format'](_0xefd5('0x68'),_0x28a138[_0xefd5('0x2a')],_0x28a138[_0xefd5('0x65')]));fs['symlinkSync'](_0x338345,_0xd0f592);return _0x28a138;}})[_0xefd5('0x47')](function(_0x326753){throw new db[(_0xefd5('0x6b'))][(_0xefd5('0x5f'))](_0x326753[_0xefd5('0x60')]);});})[_0xefd5('0x24')](handleEntityNotFound(_0x59aa52,null))[_0xefd5('0x24')](respondWithResult(_0x59aa52,0xc9))[_0xefd5('0x47')](handleError(_0x59aa52,null));};exports[_0xefd5('0x6c')]=function(_0xbb8c63,_0x5bd269,_0x33813a){return db[_0xefd5('0x4e')]['transaction'](function(_0x653e46){var _0x4aa167;return db['VoiceMusicOnHold'][_0xefd5('0x63')]({'where':{'id':_0xbb8c63['params']['id']}})[_0xefd5('0x24')](handleEntityNotFound(_0x5bd269,null))['then'](function(_0x2d4fc0){if(_0x2d4fc0){_0x4aa167=_0x2d4fc0;return _0x2d4fc0[_0xefd5('0x6c')](_0xbb8c63[_0xefd5('0x49')][_0xefd5('0x6d')]);}})[_0xefd5('0x24')](function(_0x56684f){if(_0x56684f){return db[_0xefd5('0x62')][_0xefd5('0x63')]({'where':{'id':_0xbb8c63[_0xefd5('0x49')][_0xefd5('0x6d')]},'attributes':['id','name','save_name',_0xefd5('0x65'),_0xefd5('0x66')],'raw':!![]});}})[_0xefd5('0x24')](function(_0x5c8f83){if(_0x5c8f83){fs[_0xefd5('0x5e')](path[_0xefd5('0x52')](_0x4aa167[_0xefd5('0x51')],util[_0xefd5('0x6e')](_0xefd5('0x68'),_0x5c8f83[_0xefd5('0x2a')],_0x5c8f83[_0xefd5('0x65')])));return _0x5c8f83;}})['catch'](function(_0x42c9ee){throw new db['Sequelize']['ValidationError'](_0x42c9ee['message']);});})[_0xefd5('0x24')](handleEntityNotFound(_0x5bd269,null))[_0xefd5('0x24')](respondWithStatusCode(_0x5bd269,0xcc))[_0xefd5('0x47')](handleError(_0x5bd269,null));};exports[_0xefd5('0x6f')]=function(_0x4f28e0,_0xf1dff4,_0x55bb6a){var _0x274390={};var _0x403272={};var _0x53cbd4;var _0x2d296a;return db[_0xefd5('0x2d')][_0xefd5('0x63')]({'where':{'id':_0x4f28e0[_0xefd5('0x49')]['id']}})[_0xefd5('0x24')](handleEntityNotFound(_0xf1dff4,null))[_0xefd5('0x24')](function(_0x46c67b){if(_0x46c67b){_0x53cbd4=_0x46c67b;_0x403272[_0xefd5('0x31')]=_[_0xefd5('0x4a')](db[_0xefd5('0x62')][_0xefd5('0x2e')]);_0x403272[_0xefd5('0x33')]=_[_0xefd5('0x4a')](_0x4f28e0['query']);_0x403272[_0xefd5('0x34')]=_[_0xefd5('0x35')](_0x403272[_0xefd5('0x31')],_0x403272[_0xefd5('0x33')]);_0x274390['attributes']=_[_0xefd5('0x35')](_0x403272[_0xefd5('0x31')],qs['fields'](_0x4f28e0[_0xefd5('0x33')][_0xefd5('0x36')]));_0x274390[_0xefd5('0x37')]=_0x274390[_0xefd5('0x37')][_0xefd5('0x38')]?_0x274390[_0xefd5('0x37')]:_0x403272[_0xefd5('0x31')];_0x274390[_0xefd5('0x3b')]=qs[_0xefd5('0x3c')](_0x4f28e0[_0xefd5('0x33')][_0xefd5('0x3c')]);_0x274390[_0xefd5('0x3d')]=qs[_0xefd5('0x34')](_[_0xefd5('0x3e')](_0x4f28e0[_0xefd5('0x33')],_0x403272[_0xefd5('0x34')]));if(_0x4f28e0[_0xefd5('0x33')][_0xefd5('0x3f')]){_0x274390[_0xefd5('0x3d')]=_[_0xefd5('0x40')](_0x274390[_0xefd5('0x3d')],{'$or':_[_0xefd5('0x32')](_0x274390[_0xefd5('0x37')],function(_0x39fe4b){var _0x4b8935={};_0x4b8935[_0x39fe4b]={'$like':'%'+_0x4f28e0[_0xefd5('0x33')][_0xefd5('0x3f')]+'%'};return _0x4b8935;})});}_0x274390=_[_0xefd5('0x40')]({},_0x274390,_0x4f28e0[_0xefd5('0x42')]);return _0x53cbd4[_0xefd5('0x6f')](_0x274390);}})[_0xefd5('0x24')](function(_0xe39211){if(_0xe39211){_0x2d296a=_0xe39211[_0xefd5('0x38')];if(!_0x4f28e0[_0xefd5('0x33')][_0xefd5('0x39')](_0xefd5('0x3a'))){_0x274390[_0xefd5('0x1c')]=qs[_0xefd5('0x1c')](_0x4f28e0[_0xefd5('0x33')][_0xefd5('0x1c')]);_0x274390['offset']=qs['offset'](_0x4f28e0[_0xefd5('0x33')]['offset']);}return _0x53cbd4[_0xefd5('0x6f')](_0x274390);}})[_0xefd5('0x24')](function(_0x3aef73){if(_0x3aef73){return _0x3aef73?{'count':_0x2d296a,'rows':_0x3aef73}:null;}})[_0xefd5('0x24')](respondWithResult(_0xf1dff4,null))[_0xefd5('0x47')](handleError(_0xf1dff4,null));};