a3192aa357013f15ce665865d604f071bea2fa3b
[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 _0xe737=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','autoAssociation','error','transaction','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','addSound','Sound','findOne','root','server/files/sounds/converted','format','%s.%s','basename','save_name','converted_format','ValidationError','message','removeSound','id2','createdAt','getSounds','order','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','json','undefined','count','offset','set','Content-Range','apply','save','update','then','destroy','MusicOnHolds','UserProfileResource','status','sendStatus','stack','name','send','index','map','VoiceMusicOnHold','type','key','model','keys','query','filters','attributes','intersection','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','VIRTUAL','include','findAll','rows','catch','show','params','rawAttributes','fields','includeAll','merge','options','find','body','create','sequelize','files','directory','join','server/files/moh','mkdirSync','0777','user'];(function(_0x249d7c,_0x17163a){var _0x20f24b=function(_0x5db7c4){while(--_0x5db7c4){_0x249d7c['push'](_0x249d7c['shift']());}};_0x20f24b(++_0x17163a);}(_0xe737,0x17a));var _0x7e73=function(_0xa8f760,_0x1c5d6a){_0xa8f760=_0xa8f760-0x0;var _0x51bbb5=_0xe737[_0xa8f760];return _0x51bbb5;};'use strict';var emlformat=require(_0x7e73('0x0'));var rimraf=require(_0x7e73('0x1'));var zipdir=require(_0x7e73('0x2'));var jsonpatch=require(_0x7e73('0x3'));var rp=require('request-promise');var moment=require(_0x7e73('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x7e73('0x5'));var util=require(_0x7e73('0x6'));var path=require(_0x7e73('0x7'));var sox=require(_0x7e73('0x8'));var csv=require(_0x7e73('0x9'));var ejs=require(_0x7e73('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7e73('0xb'));var squel=require(_0x7e73('0xc'));var crypto=require(_0x7e73('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x7e73('0xe'));var toCsv=require(_0x7e73('0x9'));var querystring=require(_0x7e73('0xf'));var Papa=require(_0x7e73('0x10'));var Redis=require('ioredis');var authService=require(_0x7e73('0x11'));var qs=require(_0x7e73('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x7e73('0x13'))(_0x7e73('0x14'));var utils=require(_0x7e73('0x15'));var config=require(_0x7e73('0x16'));var licenseUtil=require(_0x7e73('0x17'));var db=require(_0x7e73('0x18'))['db'];function respondWithStatusCode(_0x3804db,_0x334476){_0x334476=_0x334476||0xcc;return function(_0xeea5df){if(_0xeea5df){return _0x3804db['sendStatus'](_0x334476);}return _0x3804db['status'](_0x334476)[_0x7e73('0x19')]();};}function respondWithResult(_0x5ae307,_0x5df356){_0x5df356=_0x5df356||0xc8;return function(_0x2aa44b){if(_0x2aa44b){return _0x5ae307['status'](_0x5df356)[_0x7e73('0x1a')](_0x2aa44b);}};}function respondWithFilteredResult(_0x3f99c5,_0x14e71f){return function(_0x232553){if(_0x232553){var _0x160e44=typeof _0x14e71f['offset']===_0x7e73('0x1b')&&typeof _0x14e71f['limit']===_0x7e73('0x1b');var _0x1f03ac=_0x232553[_0x7e73('0x1c')];var _0x4dda63=_0x160e44?0x0:_0x14e71f[_0x7e73('0x1d')];var _0x9012eb=_0x160e44?_0x232553['count']:_0x14e71f[_0x7e73('0x1d')]+_0x14e71f['limit'];var _0xc4d42a;if(_0x9012eb>=_0x1f03ac){_0x9012eb=_0x1f03ac;_0xc4d42a=0xc8;}else{_0xc4d42a=0xce;}_0x3f99c5['status'](_0xc4d42a);return _0x3f99c5[_0x7e73('0x1e')](_0x7e73('0x1f'),_0x4dda63+'-'+_0x9012eb+'/'+_0x1f03ac)[_0x7e73('0x1a')](_0x232553);}return null;};}function patchUpdates(_0x22727b){return function(_0x444fa9){try{jsonpatch[_0x7e73('0x20')](_0x444fa9,_0x22727b,!![]);}catch(_0x105e06){return BPromise['reject'](_0x105e06);}return _0x444fa9[_0x7e73('0x21')]();};}function saveUpdates(_0x1e3c4f,_0x2eba0c){return function(_0x3b1eb2){if(_0x3b1eb2){return _0x3b1eb2[_0x7e73('0x22')](_0x1e3c4f)[_0x7e73('0x23')](function(_0x2f6c12){return _0x2f6c12;});}return null;};}function removeEntity(_0x307265,_0xc599f3){return function(_0x3b3257){if(_0x3b3257){return _0x3b3257[_0x7e73('0x24')]()[_0x7e73('0x23')](function(){var _0x932446=_0x3b3257['get']({'plain':!![]});var _0xeb6377=_0x7e73('0x25');return db[_0x7e73('0x26')][_0x7e73('0x24')]({'where':{'type':_0xeb6377,'resourceId':_0x932446['id']}})['then'](function(){return _0x3b3257;});})[_0x7e73('0x23')](function(){_0x307265[_0x7e73('0x27')](0xcc)[_0x7e73('0x19')]();});}};}function handleEntityNotFound(_0x5224d3,_0x353f33){return function(_0xbe722e){if(!_0xbe722e){_0x5224d3[_0x7e73('0x28')](0x194);}return _0xbe722e;};}function handleError(_0x5b1ce3,_0x1935e7){_0x1935e7=_0x1935e7||0x1f4;return function(_0x281873){logger['error'](_0x281873[_0x7e73('0x29')]);if(_0x281873['name']){delete _0x281873[_0x7e73('0x2a')];}_0x5b1ce3[_0x7e73('0x27')](_0x1935e7)[_0x7e73('0x2b')](_0x281873);};}exports[_0x7e73('0x2c')]=function(_0x29842a,_0x21c4e2){var _0x321c3c={},_0x33df14={},_0x519e39={'count':0x0,'rows':[]};var _0x4e8b17=_[_0x7e73('0x2d')](db[_0x7e73('0x2e')]['rawAttributes'],function(_0x2ad95a){return{'name':_0x2ad95a['fieldName'],'type':_0x2ad95a[_0x7e73('0x2f')][_0x7e73('0x30')]};});_0x33df14[_0x7e73('0x31')]=_[_0x7e73('0x2d')](_0x4e8b17,_0x7e73('0x2a'));_0x33df14['query']=_[_0x7e73('0x32')](_0x29842a[_0x7e73('0x33')]);_0x33df14[_0x7e73('0x34')]=_['intersection'](_0x33df14[_0x7e73('0x31')],_0x33df14[_0x7e73('0x33')]);_0x321c3c[_0x7e73('0x35')]=_[_0x7e73('0x36')](_0x33df14['model'],qs['fields'](_0x29842a['query']['fields']));_0x321c3c[_0x7e73('0x35')]=_0x321c3c[_0x7e73('0x35')][_0x7e73('0x37')]?_0x321c3c[_0x7e73('0x35')]:_0x33df14['model'];if(!_0x29842a['query'][_0x7e73('0x38')](_0x7e73('0x39'))){_0x321c3c[_0x7e73('0x3a')]=qs['limit'](_0x29842a['query'][_0x7e73('0x3a')]);_0x321c3c['offset']=qs[_0x7e73('0x1d')](_0x29842a[_0x7e73('0x33')]['offset']);}_0x321c3c['order']=qs['sort'](_0x29842a[_0x7e73('0x33')][_0x7e73('0x3b')]);delete _0x29842a[_0x7e73('0x33')][_0x7e73('0x3b')];_0x321c3c[_0x7e73('0x3c')]=qs['filters'](_[_0x7e73('0x3d')](_0x29842a['query'],_0x33df14[_0x7e73('0x34')]),_0x4e8b17);if(_0x29842a[_0x7e73('0x33')][_0x7e73('0x3e')]){_0x321c3c[_0x7e73('0x3c')]=_['merge'](_0x321c3c[_0x7e73('0x3c')],{'$or':_['map'](_0x4e8b17,function(_0x2a1e68){if(_0x2a1e68[_0x7e73('0x2f')]!==_0x7e73('0x3f')){var _0x50799a={};_0x50799a[_0x2a1e68['name']]={'$like':'%'+_0x29842a[_0x7e73('0x33')][_0x7e73('0x3e')]+'%'};return _0x50799a;}})});}_0x321c3c=_['merge']({},_0x321c3c,_0x29842a['options']);var _0x478bd5={'where':_0x321c3c['where']};return db['VoiceMusicOnHold']['count'](_0x478bd5)[_0x7e73('0x23')](function(_0x25a558){_0x519e39['count']=_0x25a558;if(_0x29842a['query']['includeAll']){_0x321c3c[_0x7e73('0x40')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x7e73('0x41')](_0x321c3c);})[_0x7e73('0x23')](function(_0x14126f){_0x519e39[_0x7e73('0x42')]=_0x14126f;return _0x519e39;})[_0x7e73('0x23')](respondWithFilteredResult(_0x21c4e2,_0x321c3c))[_0x7e73('0x43')](handleError(_0x21c4e2,null));};exports[_0x7e73('0x44')]=function(_0x55554e,_0xdfd448){var _0x40fb38={'raw':![],'where':{'id':_0x55554e[_0x7e73('0x45')]['id']}},_0x3675e0={};_0x3675e0['model']=_[_0x7e73('0x32')](db['VoiceMusicOnHold'][_0x7e73('0x46')]);_0x3675e0[_0x7e73('0x33')]=_[_0x7e73('0x32')](_0x55554e[_0x7e73('0x33')]);_0x3675e0['filters']=_['intersection'](_0x3675e0[_0x7e73('0x31')],_0x3675e0[_0x7e73('0x33')]);_0x40fb38[_0x7e73('0x35')]=_[_0x7e73('0x36')](_0x3675e0[_0x7e73('0x31')],qs[_0x7e73('0x47')](_0x55554e[_0x7e73('0x33')][_0x7e73('0x47')]));_0x40fb38[_0x7e73('0x35')]=_0x40fb38[_0x7e73('0x35')]['length']?_0x40fb38[_0x7e73('0x35')]:_0x3675e0[_0x7e73('0x31')];if(_0x55554e[_0x7e73('0x33')][_0x7e73('0x48')]){_0x40fb38[_0x7e73('0x40')]=[{'all':!![]}];}_0x40fb38=_[_0x7e73('0x49')]({},_0x40fb38,_0x55554e[_0x7e73('0x4a')]);return db['VoiceMusicOnHold'][_0x7e73('0x4b')](_0x40fb38)[_0x7e73('0x23')](handleEntityNotFound(_0xdfd448,null))[_0x7e73('0x23')](respondWithResult(_0xdfd448,null))[_0x7e73('0x43')](handleError(_0xdfd448,null));};exports['update']=function(_0x9859f2,_0x2990b2){if(_0x9859f2[_0x7e73('0x4c')]['id']){delete _0x9859f2[_0x7e73('0x4c')]['id'];}return db['VoiceMusicOnHold'][_0x7e73('0x4b')]({'where':{'id':_0x9859f2['params']['id']}})[_0x7e73('0x23')](handleEntityNotFound(_0x2990b2,null))['then'](saveUpdates(_0x9859f2[_0x7e73('0x4c')],null))[_0x7e73('0x23')](respondWithResult(_0x2990b2,null))[_0x7e73('0x43')](handleError(_0x2990b2,null));};exports[_0x7e73('0x4d')]=function(_0x2cabba,_0x4823b6,_0x103a38){return db[_0x7e73('0x4e')]['transaction'](function(_0x5155e4){if(_0x2cabba[_0x7e73('0x4c')]['mode']===_0x7e73('0x4f')){_0x2cabba[_0x7e73('0x4c')][_0x7e73('0x50')]=path[_0x7e73('0x51')](config['root'],_0x7e73('0x52'),_0x2cabba[_0x7e73('0x4c')][_0x7e73('0x2a')]);}return db[_0x7e73('0x2e')]['create'](_0x2cabba[_0x7e73('0x4c')],{'transaction':_0x5155e4})['then'](function(_0x5f1363){if(_0x2cabba[_0x7e73('0x4c')]['mode']===_0x7e73('0x4f')){fs[_0x7e73('0x53')](_0x5f1363[_0x7e73('0x50')],parseInt(_0x7e73('0x54'),0x8));}var _0x394872=_0x2cabba[_0x7e73('0x55')]['get']({'plain':!![]});if(!_0x394872)throw new Error(_0x7e73('0x56'));if(_0x394872[_0x7e73('0x57')]===_0x7e73('0x55')){var _0x554597=_0x5f1363[_0x7e73('0x58')]({'plain':!![]});return db[_0x7e73('0x59')]['find']({'where':{'name':'MusicOnHolds','userProfileId':_0x394872[_0x7e73('0x5a')]},'raw':!![]})[_0x7e73('0x23')](function(_0x1df1c9){if(_0x1df1c9&&_0x1df1c9[_0x7e73('0x5b')]===0x0){return db[_0x7e73('0x26')]['create']({'name':_0x554597[_0x7e73('0x2a')],'resourceId':_0x554597['id'],'type':_0x1df1c9[_0x7e73('0x2a')],'sectionId':_0x1df1c9['id']},{})[_0x7e73('0x23')](function(){return _0x5f1363;});}else{return _0x5f1363;}})[_0x7e73('0x43')](function(_0x5af90e){logger[_0x7e73('0x5c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5af90e);});}return _0x5f1363;});})[_0x7e73('0x23')](respondWithResult(_0x4823b6,0xc9))[_0x7e73('0x43')](handleError(_0x4823b6,null));};exports[_0x7e73('0x24')]=function(_0x29d21d,_0x17e71e,_0x269642){var _0x11534b;return db[_0x7e73('0x2e')][_0x7e73('0x4b')]({'where':{'id':_0x29d21d[_0x7e73('0x45')]['id']}})[_0x7e73('0x23')](function(_0x1794c5){if(_0x1794c5){return db['sequelize'][_0x7e73('0x5d')](function(_0x46e5c6){return _0x1794c5['destroy']({'transaction':_0x46e5c6,'raw':!![]})[_0x7e73('0x23')](function(_0x3d82be){if(_0x3d82be[_0x7e73('0x50')]){fs[_0x7e73('0x5e')](_0x3d82be['directory'])[_0x7e73('0x5f')](function(_0x2d64a6){fs[_0x7e73('0x60')](path[_0x7e73('0x51')](_0x3d82be[_0x7e73('0x50')],_0x2d64a6));});fs[_0x7e73('0x61')](_0x3d82be[_0x7e73('0x50')]);}return _0x3d82be;});})[_0x7e73('0x43')](function(_0x3e25f2){throw new db[(_0x7e73('0x62'))]['ValidationError'](_0x3e25f2['message']);});}})[_0x7e73('0x23')](handleEntityNotFound(_0x17e71e,null))[_0x7e73('0x23')](removeEntity(_0x17e71e,null))[_0x7e73('0x43')](handleError(_0x17e71e,null));};exports[_0x7e73('0x63')]=function(_0x155fb0,_0x46125b,_0xc6dea4){return db['sequelize'][_0x7e73('0x5d')](function(_0x56f1d5){var _0x4fab22;return db[_0x7e73('0x2e')][_0x7e73('0x4b')]({'where':{'id':_0x155fb0[_0x7e73('0x45')]['id']}})[_0x7e73('0x23')](function(_0x3c9691){if(_0x3c9691){_0x4fab22=_0x3c9691;return _0x3c9691[_0x7e73('0x63')](_0x155fb0[_0x7e73('0x4c')]['id'],{'transaction':_0x56f1d5});}})[_0x7e73('0x23')](function(_0x9d1674){if(_0x9d1674){return db[_0x7e73('0x64')][_0x7e73('0x65')]({'where':{'id':_0x155fb0['body']['id']},'attributes':['id','name','save_name','converted_format','createdAt'],'raw':!![]});}})[_0x7e73('0x23')](function(_0x525c3a){if(_0x525c3a){var _0xb05fe=path['join'](config[_0x7e73('0x66')],_0x7e73('0x67'),util[_0x7e73('0x68')](_0x7e73('0x69'),path[_0x7e73('0x6a')](_0x525c3a[_0x7e73('0x6b')],path['extname'](_0x525c3a['save_name'])),_0x525c3a[_0x7e73('0x6c')]));var _0x20b7f6=path[_0x7e73('0x51')](config['root'],_0x7e73('0x52'),_0x4fab22[_0x7e73('0x2a')],util['format'](_0x7e73('0x69'),_0x525c3a[_0x7e73('0x2a')],_0x525c3a[_0x7e73('0x6c')]));fs['symlinkSync'](_0xb05fe,_0x20b7f6);return _0x525c3a;}})['catch'](function(_0x38d485){throw new db[(_0x7e73('0x62'))][(_0x7e73('0x6d'))](_0x38d485[_0x7e73('0x6e')]);});})[_0x7e73('0x23')](handleEntityNotFound(_0x46125b,null))[_0x7e73('0x23')](respondWithResult(_0x46125b,0xc9))['catch'](handleError(_0x46125b,null));};exports['removeSound']=function(_0x1e5cfb,_0x18e4e5,_0x286a9e){return db[_0x7e73('0x4e')][_0x7e73('0x5d')](function(_0x5218ad){var _0x11ae7a;return db[_0x7e73('0x2e')][_0x7e73('0x65')]({'where':{'id':_0x1e5cfb['params']['id']}})[_0x7e73('0x23')](handleEntityNotFound(_0x18e4e5,null))['then'](function(_0x551fef){if(_0x551fef){_0x11ae7a=_0x551fef;return _0x551fef[_0x7e73('0x6f')](_0x1e5cfb[_0x7e73('0x45')][_0x7e73('0x70')]);}})[_0x7e73('0x23')](function(_0x3a404d){if(_0x3a404d){return db['Sound'][_0x7e73('0x65')]({'where':{'id':_0x1e5cfb['params'][_0x7e73('0x70')]},'attributes':['id',_0x7e73('0x2a'),_0x7e73('0x6b'),_0x7e73('0x6c'),_0x7e73('0x71')],'raw':!![]});}})[_0x7e73('0x23')](function(_0x4238b7){if(_0x4238b7){fs['unlinkSync'](path[_0x7e73('0x51')](_0x11ae7a[_0x7e73('0x50')],util[_0x7e73('0x68')](_0x7e73('0x69'),_0x4238b7[_0x7e73('0x2a')],_0x4238b7['converted_format'])));return _0x4238b7;}})[_0x7e73('0x43')](function(_0x278859){throw new db[(_0x7e73('0x62'))]['ValidationError'](_0x278859[_0x7e73('0x6e')]);});})['then'](handleEntityNotFound(_0x18e4e5,null))[_0x7e73('0x23')](respondWithStatusCode(_0x18e4e5,0xcc))[_0x7e73('0x43')](handleError(_0x18e4e5,null));};exports[_0x7e73('0x72')]=function(_0xf76d01,_0x3e1cf9,_0x600d82){var _0x126118={};var _0x252bec={};var _0x3f367c;var _0x1b9300;return db[_0x7e73('0x2e')][_0x7e73('0x65')]({'where':{'id':_0xf76d01[_0x7e73('0x45')]['id']}})[_0x7e73('0x23')](handleEntityNotFound(_0x3e1cf9,null))[_0x7e73('0x23')](function(_0x42de31){if(_0x42de31){_0x3f367c=_0x42de31;_0x252bec[_0x7e73('0x31')]=_[_0x7e73('0x32')](db[_0x7e73('0x64')][_0x7e73('0x46')]);_0x252bec[_0x7e73('0x33')]=_['keys'](_0xf76d01['query']);_0x252bec[_0x7e73('0x34')]=_[_0x7e73('0x36')](_0x252bec[_0x7e73('0x31')],_0x252bec[_0x7e73('0x33')]);_0x126118[_0x7e73('0x35')]=_['intersection'](_0x252bec[_0x7e73('0x31')],qs[_0x7e73('0x47')](_0xf76d01[_0x7e73('0x33')][_0x7e73('0x47')]));_0x126118['attributes']=_0x126118[_0x7e73('0x35')][_0x7e73('0x37')]?_0x126118['attributes']:_0x252bec[_0x7e73('0x31')];_0x126118[_0x7e73('0x73')]=qs[_0x7e73('0x3b')](_0xf76d01[_0x7e73('0x33')][_0x7e73('0x3b')]);_0x126118[_0x7e73('0x3c')]=qs[_0x7e73('0x34')](_[_0x7e73('0x3d')](_0xf76d01[_0x7e73('0x33')],_0x252bec[_0x7e73('0x34')]));if(_0xf76d01[_0x7e73('0x33')]['filter']){_0x126118['where']=_[_0x7e73('0x49')](_0x126118['where'],{'$or':_['map'](_0x126118[_0x7e73('0x35')],function(_0x455f6b){var _0x3696f5={};_0x3696f5[_0x455f6b]={'$like':'%'+_0xf76d01[_0x7e73('0x33')][_0x7e73('0x3e')]+'%'};return _0x3696f5;})});}_0x126118=_[_0x7e73('0x49')]({},_0x126118,_0xf76d01[_0x7e73('0x4a')]);return _0x3f367c[_0x7e73('0x72')](_0x126118);}})[_0x7e73('0x23')](function(_0x5d18b6){if(_0x5d18b6){_0x1b9300=_0x5d18b6[_0x7e73('0x37')];if(!_0xf76d01[_0x7e73('0x33')][_0x7e73('0x38')]('nolimit')){_0x126118[_0x7e73('0x3a')]=qs[_0x7e73('0x3a')](_0xf76d01[_0x7e73('0x33')]['limit']);_0x126118[_0x7e73('0x1d')]=qs[_0x7e73('0x1d')](_0xf76d01['query'][_0x7e73('0x1d')]);}return _0x3f367c[_0x7e73('0x72')](_0x126118);}})[_0x7e73('0x23')](function(_0x3d00c4){if(_0x3d00c4){return _0x3d00c4?{'count':_0x1b9300,'rows':_0x3d00c4}:null;}})[_0x7e73('0x23')](respondWithResult(_0x3e1cf9,null))[_0x7e73('0x43')](handleError(_0x3e1cf9,null));};