Built motion from commit 5ad77b03.|2.6.3
[motion2.git] / server / api / network / network.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 _0x05ea=['../../config/logger','api','../../config/environment','../../mysqldb','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','status','json','offset','undefined','limit','count','Content-Range','update','destroy','end','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','Network','findAll','rows','show','params','keys','includeAll','create','body','toUpperCase','STUN','join','root','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','render','readFileSync','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','find','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','util','lodash','../../components/parsers/qs'];(function(_0x2a7d7f,_0x130785){var _0x21ed50=function(_0x1921af){while(--_0x1921af){_0x2a7d7f['push'](_0x2a7d7f['shift']());}};_0x21ed50(++_0x130785);}(_0x05ea,0x151));var _0xa05e=function(_0x8ae98b,_0x155f88){_0x8ae98b=_0x8ae98b-0x0;var _0xc30bd4=_0x05ea[_0x8ae98b];return _0xc30bd4;};'use strict';var util=require(_0xa05e('0x0'));var path=require('path');var ejs=require('ejs');var fs=require('fs');var _=require(_0xa05e('0x1'));var qs=require(_0xa05e('0x2'));var logger=require(_0xa05e('0x3'))(_0xa05e('0x4'));var config=require(_0xa05e('0x5'));var db=require(_0xa05e('0x6'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xa05e('0x7')][_0xa05e('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x273200,_0x259f8e,_0x4eba6c,_0x3a2696){return new Promise(function(_0x1802b7,_0x4fa79){var _0x5ca464=_0x3a2696||client;return _0x5ca464['request'](_0x273200,_0x4eba6c)[_0xa05e('0x9')](function(_0x2ab6e4){logger[_0xa05e('0xa')](_0xa05e('0xb'),_0x259f8e,_0xa05e('0xc'));logger['debug'](_0xa05e('0xd'),_0x259f8e,'request\x20sent',JSON[_0xa05e('0xe')](_0x2ab6e4));if(_0x2ab6e4[_0xa05e('0xf')]){if(_0x2ab6e4[_0xa05e('0xf')]['code']===0x1f4){logger[_0xa05e('0xf')](_0xa05e('0xb'),_0x259f8e,_0x2ab6e4[_0xa05e('0xf')][_0xa05e('0x10')]);return _0x4fa79(_0x2ab6e4[_0xa05e('0xf')][_0xa05e('0x10')]);}logger[_0xa05e('0xf')](_0xa05e('0xb'),_0x259f8e,_0x2ab6e4[_0xa05e('0xf')][_0xa05e('0x10')]);return _0x1802b7(_0x2ab6e4[_0xa05e('0xf')]['message']);}else{logger['info'](_0xa05e('0xb'),_0x259f8e,_0xa05e('0xc'));_0x1802b7(_0x2ab6e4['result']['message']);}})[_0xa05e('0x11')](function(_0x4bbfd2){logger['error'](_0xa05e('0xb'),_0x259f8e,_0x4bbfd2);_0x4fa79(_0x4bbfd2);});});}function respondWithResult(_0x3fad2e,_0x5262e6){_0x5262e6=_0x5262e6||0xc8;return function(_0x345dba){if(_0x345dba){return _0x3fad2e[_0xa05e('0x12')](_0x5262e6)[_0xa05e('0x13')](_0x345dba);}};}function respondWithFilteredResult(_0x287f2a,_0x5dac8d){return function(_0x1dd63e){if(_0x1dd63e){var _0x4dc5d3=typeof _0x5dac8d[_0xa05e('0x14')]===_0xa05e('0x15')&&typeof _0x5dac8d[_0xa05e('0x16')]==='undefined';var _0x1c8c68=_0x1dd63e['count'];var _0x17a430=_0x4dc5d3?0x0:_0x5dac8d[_0xa05e('0x14')];var _0x11daf5=_0x4dc5d3?_0x1dd63e[_0xa05e('0x17')]:_0x5dac8d[_0xa05e('0x14')]+_0x5dac8d[_0xa05e('0x16')];var _0x369ee8;if(_0x11daf5>=_0x1c8c68){_0x11daf5=_0x1c8c68;_0x369ee8=0xc8;}else{_0x369ee8=0xce;}_0x287f2a['status'](_0x369ee8);return _0x287f2a['set'](_0xa05e('0x18'),_0x17a430+'-'+_0x11daf5+'/'+_0x1c8c68)[_0xa05e('0x13')](_0x1dd63e);}return null;};}function saveUpdates(_0x5ddd72){return function(_0x534de3){if(_0x534de3){return _0x534de3[_0xa05e('0x19')](_0x5ddd72)[_0xa05e('0x9')](function(_0x5bd4bc){return _0x5bd4bc;});}return null;};}function removeEntity(_0x133945){return function(_0x4f0081){if(_0x4f0081){return _0x4f0081[_0xa05e('0x1a')]()[_0xa05e('0x9')](function(){_0x133945[_0xa05e('0x12')](0xcc)[_0xa05e('0x1b')]();});}};}function handleEntityNotFound(_0x1b5dc9){return function(_0x3613ec){if(!_0x3613ec){_0x1b5dc9[_0xa05e('0x1c')](0x194);}return _0x3613ec;};}function handleError(_0x26b468,_0x2f5ca4){_0x2f5ca4=_0x2f5ca4||0x1f4;return function(_0x150fd8){logger[_0xa05e('0xf')](_0x150fd8[_0xa05e('0x1d')]);if(_0x150fd8[_0xa05e('0x1e')]){delete _0x150fd8[_0xa05e('0x1e')];}_0x26b468[_0xa05e('0x12')](_0x2f5ca4)[_0xa05e('0x1f')](_0x150fd8);};}exports[_0xa05e('0x20')]=function(_0x54a1fd,_0x5226cc){var _0x3a96e1={},_0x621260={},_0x133aca={'count':0x0,'rows':[]};var _0x264a60=_[_0xa05e('0x21')](db['Network'][_0xa05e('0x22')],function(_0xfb14ec){return{'name':_0xfb14ec[_0xa05e('0x23')],'type':_0xfb14ec[_0xa05e('0x24')]['key']};});_0x621260[_0xa05e('0x25')]=_[_0xa05e('0x21')](_0x264a60,'name');_0x621260[_0xa05e('0x26')]=_['keys'](_0x54a1fd[_0xa05e('0x26')]);_0x621260[_0xa05e('0x27')]=_[_0xa05e('0x28')](_0x621260[_0xa05e('0x25')],_0x621260[_0xa05e('0x26')]);_0x3a96e1[_0xa05e('0x29')]=_[_0xa05e('0x28')](_0x621260[_0xa05e('0x25')],qs['fields'](_0x54a1fd[_0xa05e('0x26')][_0xa05e('0x2a')]));_0x3a96e1['attributes']=_0x3a96e1[_0xa05e('0x29')][_0xa05e('0x2b')]?_0x3a96e1[_0xa05e('0x29')]:_0x621260['model'];if(!_0x54a1fd[_0xa05e('0x26')][_0xa05e('0x2c')](_0xa05e('0x2d'))){_0x3a96e1[_0xa05e('0x16')]=qs[_0xa05e('0x16')](_0x54a1fd[_0xa05e('0x26')][_0xa05e('0x16')]);_0x3a96e1[_0xa05e('0x14')]=qs[_0xa05e('0x14')](_0x54a1fd[_0xa05e('0x26')]['offset']);}_0x3a96e1[_0xa05e('0x2e')]=qs['sort'](_0x54a1fd[_0xa05e('0x26')][_0xa05e('0x2f')]);_0x3a96e1[_0xa05e('0x30')]=qs[_0xa05e('0x27')](_[_0xa05e('0x31')](_0x54a1fd[_0xa05e('0x26')],_0x621260[_0xa05e('0x27')]),_0x264a60);if(_0x54a1fd[_0xa05e('0x26')][_0xa05e('0x32')]){_0x3a96e1[_0xa05e('0x30')]=_['merge'](_0x3a96e1['where'],{'$or':_[_0xa05e('0x21')](_0x264a60,function(_0x38585c){if(_0x38585c[_0xa05e('0x24')]!==_0xa05e('0x33')){var _0x461ec8={};_0x461ec8[_0x38585c[_0xa05e('0x1e')]]={'$like':'%'+_0x54a1fd[_0xa05e('0x26')][_0xa05e('0x32')]+'%'};return _0x461ec8;}})});}_0x3a96e1=_[_0xa05e('0x34')]({},_0x3a96e1,_0x54a1fd[_0xa05e('0x35')]);var _0x3df8c9={'where':_0x3a96e1[_0xa05e('0x30')]};return db['Network'][_0xa05e('0x17')](_0x3df8c9)[_0xa05e('0x9')](function(_0x1892d2){_0x133aca[_0xa05e('0x17')]=_0x1892d2;if(_0x54a1fd[_0xa05e('0x26')]['includeAll']){_0x3a96e1[_0xa05e('0x36')]=[{'all':!![]}];}return db[_0xa05e('0x37')][_0xa05e('0x38')](_0x3a96e1);})[_0xa05e('0x9')](function(_0x436946){_0x133aca[_0xa05e('0x39')]=_0x436946;return _0x133aca;})[_0xa05e('0x9')](respondWithFilteredResult(_0x5226cc,_0x3a96e1))[_0xa05e('0x11')](handleError(_0x5226cc,null));};exports[_0xa05e('0x3a')]=function(_0x2fa193,_0x10c7e0){var _0x3f383e={'raw':!![],'where':{'id':_0x2fa193[_0xa05e('0x3b')]['id']}},_0x5b3cee={};_0x5b3cee[_0xa05e('0x25')]=_['keys'](db['Network'][_0xa05e('0x22')]);_0x5b3cee[_0xa05e('0x26')]=_[_0xa05e('0x3c')](_0x2fa193[_0xa05e('0x26')]);_0x5b3cee[_0xa05e('0x27')]=_[_0xa05e('0x28')](_0x5b3cee['model'],_0x5b3cee[_0xa05e('0x26')]);_0x3f383e[_0xa05e('0x29')]=_[_0xa05e('0x28')](_0x5b3cee[_0xa05e('0x25')],qs['fields'](_0x2fa193['query'][_0xa05e('0x2a')]));_0x3f383e[_0xa05e('0x29')]=_0x3f383e[_0xa05e('0x29')][_0xa05e('0x2b')]?_0x3f383e['attributes']:_0x5b3cee[_0xa05e('0x25')];if(_0x2fa193[_0xa05e('0x26')][_0xa05e('0x3d')]){_0x3f383e[_0xa05e('0x36')]=[{'all':!![]}];}_0x3f383e=_[_0xa05e('0x34')]({},_0x3f383e,_0x2fa193[_0xa05e('0x35')]);return db['Network']['find'](_0x3f383e)[_0xa05e('0x9')](handleEntityNotFound(_0x10c7e0,null))[_0xa05e('0x9')](respondWithResult(_0x10c7e0,null))[_0xa05e('0x11')](handleError(_0x10c7e0,null));};exports[_0xa05e('0x3e')]=function(_0x188ce7,_0x438c0f){var _0x178c2b;return db[_0xa05e('0x37')][_0xa05e('0x3e')](_0x188ce7[_0xa05e('0x3f')],{'raw':!![]})[_0xa05e('0x9')](function(_0x24d726){_0x178c2b=_0x24d726;return db[_0xa05e('0x37')][_0xa05e('0x38')]({'where':{'type':_0x188ce7[_0xa05e('0x3f')][_0xa05e('0x24')]},'raw':!![]});})['then'](function(_0x5cd1ce){if(_0x178c2b[_0xa05e('0x24')][_0xa05e('0x40')]()==_0xa05e('0x41')){var _0x4f2991=fs['readFileSync'](path[_0xa05e('0x42')](config[_0xa05e('0x43')],_0xa05e('0x44')),_0xa05e('0x45'));var _0x5290e8=ejs['render'](_0x4f2991,{'networks':_0x5cd1ce||[]});fs[_0xa05e('0x46')](_0xa05e('0x47'),_0x5290e8);return respondWithRpcPromise(_0xa05e('0x48'),_0xa05e('0x3e'),{'module':_0xa05e('0x49')});}else if(_0x178c2b[_0xa05e('0x24')][_0xa05e('0x40')]()==_0xa05e('0x4a')){var _0x212c2b=fs['readFileSync'](path[_0xa05e('0x42')](config['root'],_0xa05e('0x4b')),_0xa05e('0x45'));var _0x3734bf=ejs[_0xa05e('0x4c')](_0x212c2b,{'networks':_0x5cd1ce||[]});fs[_0xa05e('0x46')]('/etc/asterisk/turn_xcally.conf',_0x3734bf);return respondWithRpcPromise(_0xa05e('0x48'),_0xa05e('0x3e'),{'module':'res_stun_monitor.so'});}else{var _0x19640e=fs[_0xa05e('0x4d')](path[_0xa05e('0x42')](config[_0xa05e('0x43')],'server/files/templates/network.ejs'),_0xa05e('0x45'));var _0x1a83c2=ejs[_0xa05e('0x4c')](_0x19640e,{'networks':_0x5cd1ce||[]});fs[_0xa05e('0x46')](util[_0xa05e('0x4e')](_0xa05e('0x4f'),_0x188ce7[_0xa05e('0x3f')][_0xa05e('0x24')][_0xa05e('0x50')]()),_0x1a83c2);return respondWithRpcPromise(_0xa05e('0x48'),_0xa05e('0x3e'),{'module':_0xa05e('0x51')});}})[_0xa05e('0x9')](function(){return _0x178c2b;})['then'](respondWithResult(_0x438c0f,0xc9))[_0xa05e('0x11')](handleError(_0x438c0f,null));};exports[_0xa05e('0x19')]=function(_0x5cfc40,_0x5588d3){var _0x1361f6;return db[_0xa05e('0x37')][_0xa05e('0x52')]({'where':{'id':_0x5cfc40['params']['id']}})[_0xa05e('0x9')](handleEntityNotFound(_0x5588d3,null))[_0xa05e('0x9')](saveUpdates(_0x5cfc40[_0xa05e('0x3f')],null))['then'](function(_0x4f7e36){if(_0x4f7e36){_0x1361f6=_0x4f7e36;return db['Network']['findAll']({'where':{'type':_0x1361f6['type']},'raw':!![]});}return null;})[_0xa05e('0x9')](function(_0x3b8c2e){if(_0x1361f6[_0xa05e('0x24')][_0xa05e('0x40')]()=='STUN'){var _0x41c72d=fs[_0xa05e('0x4d')](path[_0xa05e('0x42')](config[_0xa05e('0x43')],_0xa05e('0x44')),_0xa05e('0x45'));var _0x1fd12c=ejs[_0xa05e('0x4c')](_0x41c72d,{'networks':_0x3b8c2e||[]});fs[_0xa05e('0x46')](_0xa05e('0x47'),_0x1fd12c);return respondWithRpcPromise(_0xa05e('0x48'),'update',{'module':_0xa05e('0x49')});}else if(_0x1361f6[_0xa05e('0x24')][_0xa05e('0x40')]()==_0xa05e('0x4a')){var _0x3e9d0e=fs[_0xa05e('0x4d')](path[_0xa05e('0x42')](config['root'],_0xa05e('0x4b')),_0xa05e('0x45'));var _0x1f8b24=ejs['render'](_0x3e9d0e,{'networks':_0x3b8c2e||[]});fs[_0xa05e('0x46')](_0xa05e('0x53'),_0x1f8b24);return respondWithRpcPromise(_0xa05e('0x48'),_0xa05e('0x19'),{'module':_0xa05e('0x49')});}else{var _0x42c58c=fs['readFileSync'](path[_0xa05e('0x42')](config[_0xa05e('0x43')],_0xa05e('0x54')),_0xa05e('0x45'));var _0x22b716=ejs[_0xa05e('0x4c')](_0x42c58c,{'networks':_0x3b8c2e||[]});fs['writeFileSync'](util[_0xa05e('0x4e')](_0xa05e('0x4f'),_0x5cfc40[_0xa05e('0x3f')]['type'][_0xa05e('0x50')]()),_0x22b716);return respondWithRpcPromise(_0xa05e('0x48'),_0xa05e('0x19'),{'module':_0xa05e('0x51')});}})[_0xa05e('0x9')](function(_0x3ef8fd){if(_0x3ef8fd){return _0x1361f6;}return null;})['then'](respondWithResult(_0x5588d3,null))[_0xa05e('0x11')](handleError(_0x5588d3,null));};exports[_0xa05e('0x1a')]=function(_0x406c64,_0x141a73){var _0x279047;return db['Network']['find']({'where':{'id':_0x406c64[_0xa05e('0x3b')]['id']}})[_0xa05e('0x9')](function(_0x36d125){_0x279047=_0x36d125;return _0x36d125;})[_0xa05e('0x9')](handleEntityNotFound(_0x141a73,null))[_0xa05e('0x9')](removeEntity(_0x141a73,null))[_0xa05e('0x9')](function(){if(_0x279047){return db['Network']['findAll']({'where':{'type':_0x279047['type']},'raw':!![]});}})['then'](function(_0x614512){if(_0x279047[_0xa05e('0x24')]['toUpperCase']()==_0xa05e('0x41')){var _0x5557e7=fs['readFileSync'](path['join'](config[_0xa05e('0x43')],_0xa05e('0x44')),'utf8');var _0x370304=ejs['render'](_0x5557e7,{'networks':_0x614512||[]});fs[_0xa05e('0x46')](_0xa05e('0x47'),_0x370304);return respondWithRpcPromise(_0xa05e('0x48'),_0xa05e('0x1a'),{'module':_0xa05e('0x49')});}else if(_0x279047[_0xa05e('0x24')][_0xa05e('0x40')]()=='TURN'){var _0xdc4069=fs[_0xa05e('0x4d')](path[_0xa05e('0x42')](config[_0xa05e('0x43')],_0xa05e('0x4b')),_0xa05e('0x45'));var _0x2ea8c0=ejs[_0xa05e('0x4c')](_0xdc4069,{'networks':_0x614512||[]});fs[_0xa05e('0x46')](_0xa05e('0x53'),_0x2ea8c0);return respondWithRpcPromise(_0xa05e('0x48'),_0xa05e('0x1a'),{'module':_0xa05e('0x49')});}else{var _0x3cf021=fs['readFileSync'](path[_0xa05e('0x42')](config['root'],'server/files/templates/network.ejs'),_0xa05e('0x45'));var _0xff6eb6=ejs[_0xa05e('0x4c')](_0x3cf021,{'networks':_0x614512||[]});fs[_0xa05e('0x46')](util['format'](_0xa05e('0x4f'),_0x279047['type'][_0xa05e('0x50')]()),_0xff6eb6);return respondWithRpcPromise(_0xa05e('0x48'),'destroy',{'module':_0xa05e('0x51')});}})[_0xa05e('0x11')](handleError(_0x141a73,null));};