Built motion from commit 47436d59.|2.6.7
[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 _0x8eee=['status','set','Content-Range','update','destroy','sendStatus','stack','name','send','map','Network','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','includeAll','findAll','params','length','find','create','body','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','TURN','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','res_stun_monitor.so','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','server/files/templates/network.ejs','format','util','path','ejs','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','json','offset','undefined','count','limit'];(function(_0x55dc51,_0x5dcc6b){var _0x113feb=function(_0x4be8ef){while(--_0x4be8ef){_0x55dc51['push'](_0x55dc51['shift']());}};_0x113feb(++_0x5dcc6b);}(_0x8eee,0x1d7));var _0xe8ee=function(_0x36909d,_0x2795f1){_0x36909d=_0x36909d-0x0;var _0x1fd29d=_0x8eee[_0x36909d];return _0x1fd29d;};'use strict';var util=require(_0xe8ee('0x0'));var path=require(_0xe8ee('0x1'));var ejs=require(_0xe8ee('0x2'));var fs=require('fs');var _=require(_0xe8ee('0x3'));var qs=require(_0xe8ee('0x4'));var logger=require(_0xe8ee('0x5'))(_0xe8ee('0x6'));var config=require(_0xe8ee('0x7'));var db=require('../../mysqldb')['db'];var jayson=require(_0xe8ee('0x8'));var client=jayson[_0xe8ee('0x9')][_0xe8ee('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3a950f,_0x12fca7,_0x37acec,_0x116c8e){return new Promise(function(_0x4a073d,_0x4dcd76){var _0x2c8352=_0x116c8e||client;return _0x2c8352[_0xe8ee('0xb')](_0x3a950f,_0x37acec)[_0xe8ee('0xc')](function(_0x5951d7){logger[_0xe8ee('0xd')](_0xe8ee('0xe'),_0x12fca7,_0xe8ee('0xf'));logger['debug'](_0xe8ee('0x10'),_0x12fca7,_0xe8ee('0xf'),JSON[_0xe8ee('0x11')](_0x5951d7));if(_0x5951d7[_0xe8ee('0x12')]){if(_0x5951d7[_0xe8ee('0x12')]['code']===0x1f4){logger[_0xe8ee('0x12')]('Network,\x20%s,\x20%s',_0x12fca7,_0x5951d7[_0xe8ee('0x12')][_0xe8ee('0x13')]);return _0x4dcd76(_0x5951d7['error'][_0xe8ee('0x13')]);}logger[_0xe8ee('0x12')](_0xe8ee('0xe'),_0x12fca7,_0x5951d7[_0xe8ee('0x12')]['message']);return _0x4a073d(_0x5951d7[_0xe8ee('0x12')][_0xe8ee('0x13')]);}else{logger[_0xe8ee('0xd')](_0xe8ee('0xe'),_0x12fca7,'request\x20sent');_0x4a073d(_0x5951d7[_0xe8ee('0x14')][_0xe8ee('0x13')]);}})[_0xe8ee('0x15')](function(_0x42bea9){logger[_0xe8ee('0x12')](_0xe8ee('0xe'),_0x12fca7,_0x42bea9);_0x4dcd76(_0x42bea9);});});}function respondWithResult(_0x490664,_0x322374){_0x322374=_0x322374||0xc8;return function(_0x1f21de){if(_0x1f21de){return _0x490664['status'](_0x322374)[_0xe8ee('0x16')](_0x1f21de);}};}function respondWithFilteredResult(_0x122833,_0x13b5a2){return function(_0x2d2c26){if(_0x2d2c26){var _0x3fcff4=typeof _0x13b5a2[_0xe8ee('0x17')]==='undefined'&&typeof _0x13b5a2['limit']===_0xe8ee('0x18');var _0x1a5dbc=_0x2d2c26[_0xe8ee('0x19')];var _0x231dde=_0x3fcff4?0x0:_0x13b5a2[_0xe8ee('0x17')];var _0x485ee4=_0x3fcff4?_0x2d2c26[_0xe8ee('0x19')]:_0x13b5a2[_0xe8ee('0x17')]+_0x13b5a2[_0xe8ee('0x1a')];var _0x24864d;if(_0x485ee4>=_0x1a5dbc){_0x485ee4=_0x1a5dbc;_0x24864d=0xc8;}else{_0x24864d=0xce;}_0x122833[_0xe8ee('0x1b')](_0x24864d);return _0x122833[_0xe8ee('0x1c')](_0xe8ee('0x1d'),_0x231dde+'-'+_0x485ee4+'/'+_0x1a5dbc)['json'](_0x2d2c26);}return null;};}function saveUpdates(_0x45abdf){return function(_0x3c87ad){if(_0x3c87ad){return _0x3c87ad[_0xe8ee('0x1e')](_0x45abdf)['then'](function(_0x454760){return _0x454760;});}return null;};}function removeEntity(_0xe5697e){return function(_0xdf54f8){if(_0xdf54f8){return _0xdf54f8[_0xe8ee('0x1f')]()[_0xe8ee('0xc')](function(){_0xe5697e[_0xe8ee('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x416832){return function(_0x1150ee){if(!_0x1150ee){_0x416832[_0xe8ee('0x20')](0x194);}return _0x1150ee;};}function handleError(_0x275025,_0x267240){_0x267240=_0x267240||0x1f4;return function(_0x4cfc9f){logger['error'](_0x4cfc9f[_0xe8ee('0x21')]);if(_0x4cfc9f[_0xe8ee('0x22')]){delete _0x4cfc9f[_0xe8ee('0x22')];}_0x275025[_0xe8ee('0x1b')](_0x267240)[_0xe8ee('0x23')](_0x4cfc9f);};}exports['index']=function(_0x111e5b,_0x1e1ab4){var _0x1048d0={},_0x1a46b1={},_0x34b5b6={'count':0x0,'rows':[]};var _0x4f2563=_[_0xe8ee('0x24')](db[_0xe8ee('0x25')][_0xe8ee('0x26')],function(_0x42ebd6){return{'name':_0x42ebd6[_0xe8ee('0x27')],'type':_0x42ebd6[_0xe8ee('0x28')][_0xe8ee('0x29')]};});_0x1a46b1[_0xe8ee('0x2a')]=_[_0xe8ee('0x24')](_0x4f2563,_0xe8ee('0x22'));_0x1a46b1[_0xe8ee('0x2b')]=_[_0xe8ee('0x2c')](_0x111e5b[_0xe8ee('0x2b')]);_0x1a46b1['filters']=_[_0xe8ee('0x2d')](_0x1a46b1[_0xe8ee('0x2a')],_0x1a46b1[_0xe8ee('0x2b')]);_0x1048d0[_0xe8ee('0x2e')]=_[_0xe8ee('0x2d')](_0x1a46b1[_0xe8ee('0x2a')],qs[_0xe8ee('0x2f')](_0x111e5b['query'][_0xe8ee('0x2f')]));_0x1048d0[_0xe8ee('0x2e')]=_0x1048d0['attributes']['length']?_0x1048d0[_0xe8ee('0x2e')]:_0x1a46b1[_0xe8ee('0x2a')];if(!_0x111e5b['query'][_0xe8ee('0x30')](_0xe8ee('0x31'))){_0x1048d0[_0xe8ee('0x1a')]=qs[_0xe8ee('0x1a')](_0x111e5b[_0xe8ee('0x2b')][_0xe8ee('0x1a')]);_0x1048d0[_0xe8ee('0x17')]=qs['offset'](_0x111e5b[_0xe8ee('0x2b')][_0xe8ee('0x17')]);}_0x1048d0[_0xe8ee('0x32')]=qs[_0xe8ee('0x33')](_0x111e5b[_0xe8ee('0x2b')][_0xe8ee('0x33')]);_0x1048d0['where']=qs['filters'](_['pick'](_0x111e5b[_0xe8ee('0x2b')],_0x1a46b1[_0xe8ee('0x34')]),_0x4f2563);if(_0x111e5b[_0xe8ee('0x2b')][_0xe8ee('0x35')]){_0x1048d0[_0xe8ee('0x36')]=_['merge'](_0x1048d0['where'],{'$or':_['map'](_0x4f2563,function(_0x195c78){if(_0x195c78['type']!=='VIRTUAL'){var _0x147406={};_0x147406[_0x195c78[_0xe8ee('0x22')]]={'$like':'%'+_0x111e5b['query'][_0xe8ee('0x35')]+'%'};return _0x147406;}})});}_0x1048d0=_[_0xe8ee('0x37')]({},_0x1048d0,_0x111e5b['options']);var _0x48686c={'where':_0x1048d0[_0xe8ee('0x36')]};return db[_0xe8ee('0x25')][_0xe8ee('0x19')](_0x48686c)[_0xe8ee('0xc')](function(_0xe37a6d){_0x34b5b6[_0xe8ee('0x19')]=_0xe37a6d;if(_0x111e5b['query'][_0xe8ee('0x38')]){_0x1048d0['include']=[{'all':!![]}];}return db[_0xe8ee('0x25')][_0xe8ee('0x39')](_0x1048d0);})[_0xe8ee('0xc')](function(_0x187433){_0x34b5b6['rows']=_0x187433;return _0x34b5b6;})[_0xe8ee('0xc')](respondWithFilteredResult(_0x1e1ab4,_0x1048d0))[_0xe8ee('0x15')](handleError(_0x1e1ab4,null));};exports['show']=function(_0xea4bc9,_0x371edf){var _0x1d6e1e={'raw':!![],'where':{'id':_0xea4bc9[_0xe8ee('0x3a')]['id']}},_0x23d7f2={};_0x23d7f2[_0xe8ee('0x2a')]=_[_0xe8ee('0x2c')](db[_0xe8ee('0x25')]['rawAttributes']);_0x23d7f2[_0xe8ee('0x2b')]=_[_0xe8ee('0x2c')](_0xea4bc9[_0xe8ee('0x2b')]);_0x23d7f2[_0xe8ee('0x34')]=_['intersection'](_0x23d7f2[_0xe8ee('0x2a')],_0x23d7f2[_0xe8ee('0x2b')]);_0x1d6e1e['attributes']=_[_0xe8ee('0x2d')](_0x23d7f2[_0xe8ee('0x2a')],qs[_0xe8ee('0x2f')](_0xea4bc9['query'][_0xe8ee('0x2f')]));_0x1d6e1e[_0xe8ee('0x2e')]=_0x1d6e1e[_0xe8ee('0x2e')][_0xe8ee('0x3b')]?_0x1d6e1e[_0xe8ee('0x2e')]:_0x23d7f2[_0xe8ee('0x2a')];if(_0xea4bc9[_0xe8ee('0x2b')][_0xe8ee('0x38')]){_0x1d6e1e['include']=[{'all':!![]}];}_0x1d6e1e=_[_0xe8ee('0x37')]({},_0x1d6e1e,_0xea4bc9['options']);return db[_0xe8ee('0x25')][_0xe8ee('0x3c')](_0x1d6e1e)[_0xe8ee('0xc')](handleEntityNotFound(_0x371edf,null))['then'](respondWithResult(_0x371edf,null))[_0xe8ee('0x15')](handleError(_0x371edf,null));};exports[_0xe8ee('0x3d')]=function(_0x233ccc,_0x310416){var _0x2b57ea;return db[_0xe8ee('0x25')][_0xe8ee('0x3d')](_0x233ccc[_0xe8ee('0x3e')],{'raw':!![]})['then'](function(_0x4eb553){_0x2b57ea=_0x4eb553;return db['Network'][_0xe8ee('0x39')]({'where':{'type':_0x233ccc[_0xe8ee('0x3e')][_0xe8ee('0x28')]},'raw':!![]});})[_0xe8ee('0xc')](function(_0x9a56f5){if(_0x2b57ea['type'][_0xe8ee('0x3f')]()==_0xe8ee('0x40')){var _0x270fb4=fs[_0xe8ee('0x41')](path[_0xe8ee('0x42')](config[_0xe8ee('0x43')],_0xe8ee('0x44')),_0xe8ee('0x45'));var _0x52acf0=ejs[_0xe8ee('0x46')](_0x270fb4,{'networks':_0x9a56f5||[]});fs['writeFileSync'](_0xe8ee('0x47'),_0x52acf0);return respondWithRpcPromise(_0xe8ee('0x48'),_0xe8ee('0x3d'),{'module':'res_stun_monitor.so'});}else if(_0x2b57ea[_0xe8ee('0x28')][_0xe8ee('0x3f')]()==_0xe8ee('0x49')){var _0x5830e0=fs['readFileSync'](path[_0xe8ee('0x42')](config[_0xe8ee('0x43')],_0xe8ee('0x4a')),'utf8');var _0x18c6a1=ejs[_0xe8ee('0x46')](_0x5830e0,{'networks':_0x9a56f5||[]});fs[_0xe8ee('0x4b')](_0xe8ee('0x4c'),_0x18c6a1);return respondWithRpcPromise('Reload',_0xe8ee('0x3d'),{'module':_0xe8ee('0x4d')});}else{var _0xd9fab8=fs[_0xe8ee('0x41')](path[_0xe8ee('0x42')](config[_0xe8ee('0x43')],'server/files/templates/network.ejs'),_0xe8ee('0x45'));var _0x2d10ac=ejs['render'](_0xd9fab8,{'networks':_0x9a56f5||[]});fs[_0xe8ee('0x4b')](util['format'](_0xe8ee('0x4e'),_0x233ccc[_0xe8ee('0x3e')][_0xe8ee('0x28')][_0xe8ee('0x4f')]()),_0x2d10ac);return respondWithRpcPromise(_0xe8ee('0x48'),_0xe8ee('0x3d'),{'module':_0xe8ee('0x50')});}})[_0xe8ee('0xc')](function(){return _0x2b57ea;})[_0xe8ee('0xc')](respondWithResult(_0x310416,0xc9))[_0xe8ee('0x15')](handleError(_0x310416,null));};exports[_0xe8ee('0x1e')]=function(_0x2ea0b5,_0x3dabf2){var _0x53b896;return db[_0xe8ee('0x25')]['find']({'where':{'id':_0x2ea0b5[_0xe8ee('0x3a')]['id']}})[_0xe8ee('0xc')](handleEntityNotFound(_0x3dabf2,null))[_0xe8ee('0xc')](saveUpdates(_0x2ea0b5[_0xe8ee('0x3e')],null))[_0xe8ee('0xc')](function(_0x2e2807){if(_0x2e2807){_0x53b896=_0x2e2807;return db['Network'][_0xe8ee('0x39')]({'where':{'type':_0x53b896[_0xe8ee('0x28')]},'raw':!![]});}return null;})[_0xe8ee('0xc')](function(_0x3e011d){if(_0x53b896[_0xe8ee('0x28')][_0xe8ee('0x3f')]()==_0xe8ee('0x40')){var _0x4ebeb4=fs[_0xe8ee('0x41')](path[_0xe8ee('0x42')](config[_0xe8ee('0x43')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x3f6f78=ejs[_0xe8ee('0x46')](_0x4ebeb4,{'networks':_0x3e011d||[]});fs[_0xe8ee('0x4b')](_0xe8ee('0x47'),_0x3f6f78);return respondWithRpcPromise(_0xe8ee('0x48'),_0xe8ee('0x1e'),{'module':_0xe8ee('0x4d')});}else if(_0x53b896[_0xe8ee('0x28')][_0xe8ee('0x3f')]()==_0xe8ee('0x49')){var _0x528847=fs[_0xe8ee('0x41')](path['join'](config[_0xe8ee('0x43')],_0xe8ee('0x4a')),_0xe8ee('0x45'));var _0x54700f=ejs[_0xe8ee('0x46')](_0x528847,{'networks':_0x3e011d||[]});fs[_0xe8ee('0x4b')]('/etc/asterisk/turn_xcally.conf',_0x54700f);return respondWithRpcPromise(_0xe8ee('0x48'),_0xe8ee('0x1e'),{'module':_0xe8ee('0x4d')});}else{var _0x223a9a=fs[_0xe8ee('0x41')](path[_0xe8ee('0x42')](config[_0xe8ee('0x43')],_0xe8ee('0x51')),_0xe8ee('0x45'));var _0xf0c361=ejs[_0xe8ee('0x46')](_0x223a9a,{'networks':_0x3e011d||[]});fs['writeFileSync'](util[_0xe8ee('0x52')](_0xe8ee('0x4e'),_0x2ea0b5[_0xe8ee('0x3e')][_0xe8ee('0x28')][_0xe8ee('0x4f')]()),_0xf0c361);return respondWithRpcPromise(_0xe8ee('0x48'),_0xe8ee('0x1e'),{'module':'chan_sip.so'});}})[_0xe8ee('0xc')](function(_0x573cb3){if(_0x573cb3){return _0x53b896;}return null;})[_0xe8ee('0xc')](respondWithResult(_0x3dabf2,null))['catch'](handleError(_0x3dabf2,null));};exports[_0xe8ee('0x1f')]=function(_0x59fe37,_0x1000ff){var _0x8e2892;return db[_0xe8ee('0x25')][_0xe8ee('0x3c')]({'where':{'id':_0x59fe37['params']['id']}})['then'](function(_0x3bc256){_0x8e2892=_0x3bc256;return _0x3bc256;})[_0xe8ee('0xc')](handleEntityNotFound(_0x1000ff,null))[_0xe8ee('0xc')](removeEntity(_0x1000ff,null))['then'](function(){if(_0x8e2892){return db[_0xe8ee('0x25')]['findAll']({'where':{'type':_0x8e2892['type']},'raw':!![]});}})[_0xe8ee('0xc')](function(_0x1539e2){if(_0x8e2892[_0xe8ee('0x28')][_0xe8ee('0x3f')]()==_0xe8ee('0x40')){var _0x57691a=fs[_0xe8ee('0x41')](path[_0xe8ee('0x42')](config['root'],_0xe8ee('0x44')),_0xe8ee('0x45'));var _0x554535=ejs[_0xe8ee('0x46')](_0x57691a,{'networks':_0x1539e2||[]});fs['writeFileSync'](_0xe8ee('0x47'),_0x554535);return respondWithRpcPromise(_0xe8ee('0x48'),'destroy',{'module':'res_stun_monitor.so'});}else if(_0x8e2892[_0xe8ee('0x28')]['toUpperCase']()==_0xe8ee('0x49')){var _0x53d2b7=fs[_0xe8ee('0x41')](path[_0xe8ee('0x42')](config[_0xe8ee('0x43')],_0xe8ee('0x4a')),_0xe8ee('0x45'));var _0x5768ec=ejs['render'](_0x53d2b7,{'networks':_0x1539e2||[]});fs[_0xe8ee('0x4b')](_0xe8ee('0x4c'),_0x5768ec);return respondWithRpcPromise('Reload',_0xe8ee('0x1f'),{'module':_0xe8ee('0x4d')});}else{var _0x55626c=fs[_0xe8ee('0x41')](path['join'](config[_0xe8ee('0x43')],_0xe8ee('0x51')),'utf8');var _0x49734a=ejs['render'](_0x55626c,{'networks':_0x1539e2||[]});fs[_0xe8ee('0x4b')](util[_0xe8ee('0x52')](_0xe8ee('0x4e'),_0x8e2892[_0xe8ee('0x28')][_0xe8ee('0x4f')]()),_0x49734a);return respondWithRpcPromise(_0xe8ee('0x48'),_0xe8ee('0x1f'),{'module':_0xe8ee('0x50')});}})[_0xe8ee('0x15')](handleError(_0x1000ff,null));};