13aaefd9b4a295b6d8eee5002f16134ef804e4aa
[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 _0x9e12=['server/files/templates/turn_multiple.ejs','chan_sip.so','TURN','toLowerCase','path','lodash','../../config/logger','api','../../mysqldb','jayson/promise','client','http','request','info','request\x20sent','debug','stringify','error','code','Network,\x20%s,\x20%s','message','result','catch','status','json','offset','undefined','count','limit','set','Content-Range','update','then','destroy','end','sendStatus','stack','name','send','index','Network','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','params','find','create','body','findAll','readFileSync','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','join','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toUpperCase','STUN'];(function(_0x1d24eb,_0x12295b){var _0x1dc576=function(_0x4d5770){while(--_0x4d5770){_0x1d24eb['push'](_0x1d24eb['shift']());}};_0x1dc576(++_0x12295b);}(_0x9e12,0x1b2));var _0x29e1=function(_0x5d73b2,_0x1ea5cd){_0x5d73b2=_0x5d73b2-0x0;var _0x1e4551=_0x9e12[_0x5d73b2];return _0x1e4551;};'use strict';var util=require('util');var path=require(_0x29e1('0x0'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x29e1('0x1'));var qs=require('../../components/parsers/qs');var logger=require(_0x29e1('0x2'))(_0x29e1('0x3'));var config=require('../../config/environment');var db=require(_0x29e1('0x4'))['db'];var jayson=require(_0x29e1('0x5'));var client=jayson[_0x29e1('0x6')][_0x29e1('0x7')]({'port':0x232a});function respondWithRpcPromise(_0xf16e37,_0xb705c7,_0x2260b1,_0x1f1fa5){return new Promise(function(_0x484c70,_0x330d35){var _0xc93c88=_0x1f1fa5||client;return _0xc93c88[_0x29e1('0x8')](_0xf16e37,_0x2260b1)['then'](function(_0x359b25){logger[_0x29e1('0x9')]('Network,\x20%s,\x20%s',_0xb705c7,_0x29e1('0xa'));logger[_0x29e1('0xb')]('Network,\x20%s,\x20%s,\x20%s',_0xb705c7,_0x29e1('0xa'),JSON[_0x29e1('0xc')](_0x359b25));if(_0x359b25[_0x29e1('0xd')]){if(_0x359b25['error'][_0x29e1('0xe')]===0x1f4){logger[_0x29e1('0xd')](_0x29e1('0xf'),_0xb705c7,_0x359b25[_0x29e1('0xd')][_0x29e1('0x10')]);return _0x330d35(_0x359b25[_0x29e1('0xd')][_0x29e1('0x10')]);}logger['error']('Network,\x20%s,\x20%s',_0xb705c7,_0x359b25[_0x29e1('0xd')][_0x29e1('0x10')]);return _0x484c70(_0x359b25[_0x29e1('0xd')][_0x29e1('0x10')]);}else{logger[_0x29e1('0x9')](_0x29e1('0xf'),_0xb705c7,_0x29e1('0xa'));_0x484c70(_0x359b25[_0x29e1('0x11')][_0x29e1('0x10')]);}})[_0x29e1('0x12')](function(_0x2fb397){logger[_0x29e1('0xd')](_0x29e1('0xf'),_0xb705c7,_0x2fb397);_0x330d35(_0x2fb397);});});}function respondWithResult(_0x2f7191,_0x45b1f2){_0x45b1f2=_0x45b1f2||0xc8;return function(_0xbc4f17){if(_0xbc4f17){return _0x2f7191[_0x29e1('0x13')](_0x45b1f2)[_0x29e1('0x14')](_0xbc4f17);}};}function respondWithFilteredResult(_0x35d421,_0x5fcc4){return function(_0x29835e){if(_0x29835e){var _0x3d47df=typeof _0x5fcc4[_0x29e1('0x15')]==='undefined'&&typeof _0x5fcc4['limit']===_0x29e1('0x16');var _0x4db941=_0x29835e['count'];var _0x130b6e=_0x3d47df?0x0:_0x5fcc4[_0x29e1('0x15')];var _0x323760=_0x3d47df?_0x29835e[_0x29e1('0x17')]:_0x5fcc4['offset']+_0x5fcc4[_0x29e1('0x18')];var _0x39497d;if(_0x323760>=_0x4db941){_0x323760=_0x4db941;_0x39497d=0xc8;}else{_0x39497d=0xce;}_0x35d421[_0x29e1('0x13')](_0x39497d);return _0x35d421[_0x29e1('0x19')](_0x29e1('0x1a'),_0x130b6e+'-'+_0x323760+'/'+_0x4db941)[_0x29e1('0x14')](_0x29835e);}return null;};}function saveUpdates(_0x53a00b){return function(_0x45414c){if(_0x45414c){return _0x45414c[_0x29e1('0x1b')](_0x53a00b)[_0x29e1('0x1c')](function(_0x2a1418){return _0x2a1418;});}return null;};}function removeEntity(_0x33e271){return function(_0x32643b){if(_0x32643b){return _0x32643b[_0x29e1('0x1d')]()[_0x29e1('0x1c')](function(){_0x33e271[_0x29e1('0x13')](0xcc)[_0x29e1('0x1e')]();});}};}function handleEntityNotFound(_0x2a80a1){return function(_0x3bed66){if(!_0x3bed66){_0x2a80a1[_0x29e1('0x1f')](0x194);}return _0x3bed66;};}function handleError(_0x190583,_0xfeb88b){_0xfeb88b=_0xfeb88b||0x1f4;return function(_0x18ba8d){logger[_0x29e1('0xd')](_0x18ba8d[_0x29e1('0x20')]);if(_0x18ba8d[_0x29e1('0x21')]){delete _0x18ba8d['name'];}_0x190583[_0x29e1('0x13')](_0xfeb88b)[_0x29e1('0x22')](_0x18ba8d);};}exports[_0x29e1('0x23')]=function(_0x40f6d3,_0x56ec03){var _0x26c445={},_0x380092={},_0x517aa8={'count':0x0,'rows':[]};var _0x24b128=_['map'](db[_0x29e1('0x24')][_0x29e1('0x25')],function(_0x2fbed8){return{'name':_0x2fbed8[_0x29e1('0x26')],'type':_0x2fbed8['type'][_0x29e1('0x27')]};});_0x380092[_0x29e1('0x28')]=_[_0x29e1('0x29')](_0x24b128,'name');_0x380092[_0x29e1('0x2a')]=_[_0x29e1('0x2b')](_0x40f6d3['query']);_0x380092[_0x29e1('0x2c')]=_[_0x29e1('0x2d')](_0x380092[_0x29e1('0x28')],_0x380092[_0x29e1('0x2a')]);_0x26c445[_0x29e1('0x2e')]=_[_0x29e1('0x2d')](_0x380092[_0x29e1('0x28')],qs[_0x29e1('0x2f')](_0x40f6d3[_0x29e1('0x2a')][_0x29e1('0x2f')]));_0x26c445['attributes']=_0x26c445[_0x29e1('0x2e')][_0x29e1('0x30')]?_0x26c445[_0x29e1('0x2e')]:_0x380092['model'];if(!_0x40f6d3[_0x29e1('0x2a')][_0x29e1('0x31')](_0x29e1('0x32'))){_0x26c445['limit']=qs['limit'](_0x40f6d3[_0x29e1('0x2a')]['limit']);_0x26c445[_0x29e1('0x15')]=qs[_0x29e1('0x15')](_0x40f6d3[_0x29e1('0x2a')][_0x29e1('0x15')]);}_0x26c445[_0x29e1('0x33')]=qs[_0x29e1('0x34')](_0x40f6d3['query'][_0x29e1('0x34')]);_0x26c445[_0x29e1('0x35')]=qs[_0x29e1('0x2c')](_[_0x29e1('0x36')](_0x40f6d3[_0x29e1('0x2a')],_0x380092[_0x29e1('0x2c')]),_0x24b128);if(_0x40f6d3[_0x29e1('0x2a')][_0x29e1('0x37')]){_0x26c445[_0x29e1('0x35')]=_[_0x29e1('0x38')](_0x26c445[_0x29e1('0x35')],{'$or':_[_0x29e1('0x29')](_0x24b128,function(_0x2f3d23){if(_0x2f3d23[_0x29e1('0x39')]!=='VIRTUAL'){var _0x35392d={};_0x35392d[_0x2f3d23[_0x29e1('0x21')]]={'$like':'%'+_0x40f6d3['query'][_0x29e1('0x37')]+'%'};return _0x35392d;}})});}_0x26c445=_[_0x29e1('0x38')]({},_0x26c445,_0x40f6d3[_0x29e1('0x3a')]);var _0x4e6b8a={'where':_0x26c445[_0x29e1('0x35')]};return db[_0x29e1('0x24')]['count'](_0x4e6b8a)[_0x29e1('0x1c')](function(_0x386843){_0x517aa8[_0x29e1('0x17')]=_0x386843;if(_0x40f6d3[_0x29e1('0x2a')][_0x29e1('0x3b')]){_0x26c445[_0x29e1('0x3c')]=[{'all':!![]}];}return db[_0x29e1('0x24')]['findAll'](_0x26c445);})[_0x29e1('0x1c')](function(_0x1c4d25){_0x517aa8['rows']=_0x1c4d25;return _0x517aa8;})[_0x29e1('0x1c')](respondWithFilteredResult(_0x56ec03,_0x26c445))['catch'](handleError(_0x56ec03,null));};exports['show']=function(_0x2af502,_0x282649){var _0x410239={'raw':!![],'where':{'id':_0x2af502[_0x29e1('0x3d')]['id']}},_0x50ba65={};_0x50ba65['model']=_[_0x29e1('0x2b')](db[_0x29e1('0x24')]['rawAttributes']);_0x50ba65[_0x29e1('0x2a')]=_[_0x29e1('0x2b')](_0x2af502[_0x29e1('0x2a')]);_0x50ba65[_0x29e1('0x2c')]=_['intersection'](_0x50ba65[_0x29e1('0x28')],_0x50ba65[_0x29e1('0x2a')]);_0x410239['attributes']=_['intersection'](_0x50ba65['model'],qs['fields'](_0x2af502[_0x29e1('0x2a')][_0x29e1('0x2f')]));_0x410239[_0x29e1('0x2e')]=_0x410239[_0x29e1('0x2e')]['length']?_0x410239[_0x29e1('0x2e')]:_0x50ba65[_0x29e1('0x28')];if(_0x2af502[_0x29e1('0x2a')][_0x29e1('0x3b')]){_0x410239[_0x29e1('0x3c')]=[{'all':!![]}];}_0x410239=_[_0x29e1('0x38')]({},_0x410239,_0x2af502['options']);return db[_0x29e1('0x24')][_0x29e1('0x3e')](_0x410239)['then'](handleEntityNotFound(_0x282649,null))[_0x29e1('0x1c')](respondWithResult(_0x282649,null))[_0x29e1('0x12')](handleError(_0x282649,null));};exports['create']=function(_0x45e5fb,_0x26c44d){var _0x5a42e6;return db['Network'][_0x29e1('0x3f')](_0x45e5fb[_0x29e1('0x40')],{'raw':!![]})[_0x29e1('0x1c')](function(_0x85f804){_0x5a42e6=_0x85f804;return db[_0x29e1('0x24')][_0x29e1('0x41')]({'where':{'type':_0x45e5fb[_0x29e1('0x40')][_0x29e1('0x39')]},'raw':!![]});})[_0x29e1('0x1c')](function(_0x28d090){if(_0x5a42e6[_0x29e1('0x39')]['toUpperCase']()=='STUN'){var _0x490df7=fs[_0x29e1('0x42')](path['join'](config[_0x29e1('0x43')],_0x29e1('0x44')),_0x29e1('0x45'));var _0x428814=ejs[_0x29e1('0x46')](_0x490df7,{'networks':_0x28d090||[]});fs[_0x29e1('0x47')](_0x29e1('0x48'),_0x428814);return respondWithRpcPromise(_0x29e1('0x49'),_0x29e1('0x3f'),{'module':_0x29e1('0x4a')});}else if(_0x5a42e6[_0x29e1('0x39')]['toUpperCase']()=='TURN'){var _0x269026=fs[_0x29e1('0x42')](path[_0x29e1('0x4b')](config['root'],'server/files/templates/turn_multiple.ejs'),_0x29e1('0x45'));var _0x4148eb=ejs[_0x29e1('0x46')](_0x269026,{'networks':_0x28d090||[]});fs[_0x29e1('0x47')](_0x29e1('0x4c'),_0x4148eb);return respondWithRpcPromise(_0x29e1('0x49'),_0x29e1('0x3f'),{'module':'res_stun_monitor.so'});}else{var _0x467bbf=fs[_0x29e1('0x42')](path['join'](config[_0x29e1('0x43')],_0x29e1('0x4d')),_0x29e1('0x45'));var _0x4efbaf=ejs[_0x29e1('0x46')](_0x467bbf,{'networks':_0x28d090||[]});fs[_0x29e1('0x47')](util[_0x29e1('0x4e')](_0x29e1('0x4f'),_0x45e5fb[_0x29e1('0x40')][_0x29e1('0x39')]['toLowerCase']()),_0x4efbaf);return respondWithRpcPromise(_0x29e1('0x49'),_0x29e1('0x3f'),{'module':'chan_sip.so'});}})['then'](function(){return _0x5a42e6;})[_0x29e1('0x1c')](respondWithResult(_0x26c44d,0xc9))[_0x29e1('0x12')](handleError(_0x26c44d,null));};exports[_0x29e1('0x1b')]=function(_0x51abcf,_0x5a1aea){var _0x5604b2;return db['Network']['find']({'where':{'id':_0x51abcf['params']['id']}})[_0x29e1('0x1c')](handleEntityNotFound(_0x5a1aea,null))[_0x29e1('0x1c')](saveUpdates(_0x51abcf['body'],null))[_0x29e1('0x1c')](function(_0x111a26){if(_0x111a26){_0x5604b2=_0x111a26;return db[_0x29e1('0x24')]['findAll']({'where':{'type':_0x5604b2[_0x29e1('0x39')]},'raw':!![]});}return null;})[_0x29e1('0x1c')](function(_0x508a23){if(_0x5604b2[_0x29e1('0x39')][_0x29e1('0x50')]()==_0x29e1('0x51')){var _0x513b56=fs[_0x29e1('0x42')](path[_0x29e1('0x4b')](config[_0x29e1('0x43')],_0x29e1('0x44')),_0x29e1('0x45'));var _0x900cbf=ejs[_0x29e1('0x46')](_0x513b56,{'networks':_0x508a23||[]});fs[_0x29e1('0x47')](_0x29e1('0x48'),_0x900cbf);return respondWithRpcPromise(_0x29e1('0x49'),_0x29e1('0x1b'),{'module':'res_stun_monitor.so'});}else if(_0x5604b2[_0x29e1('0x39')][_0x29e1('0x50')]()=='TURN'){var _0x57e64e=fs['readFileSync'](path[_0x29e1('0x4b')](config['root'],_0x29e1('0x52')),_0x29e1('0x45'));var _0x5952ef=ejs[_0x29e1('0x46')](_0x57e64e,{'networks':_0x508a23||[]});fs['writeFileSync'](_0x29e1('0x4c'),_0x5952ef);return respondWithRpcPromise(_0x29e1('0x49'),_0x29e1('0x1b'),{'module':'res_stun_monitor.so'});}else{var _0x1d743d=fs['readFileSync'](path[_0x29e1('0x4b')](config[_0x29e1('0x43')],'server/files/templates/network.ejs'),_0x29e1('0x45'));var _0x31301c=ejs[_0x29e1('0x46')](_0x1d743d,{'networks':_0x508a23||[]});fs[_0x29e1('0x47')](util[_0x29e1('0x4e')](_0x29e1('0x4f'),_0x51abcf[_0x29e1('0x40')]['type']['toLowerCase']()),_0x31301c);return respondWithRpcPromise('Reload','update',{'module':_0x29e1('0x53')});}})[_0x29e1('0x1c')](function(_0x34bd91){if(_0x34bd91){return _0x5604b2;}return null;})['then'](respondWithResult(_0x5a1aea,null))['catch'](handleError(_0x5a1aea,null));};exports[_0x29e1('0x1d')]=function(_0x11d40b,_0x3b40b6){var _0x1cffe6;return db[_0x29e1('0x24')][_0x29e1('0x3e')]({'where':{'id':_0x11d40b['params']['id']}})['then'](function(_0x3ef07c){_0x1cffe6=_0x3ef07c;return _0x3ef07c;})[_0x29e1('0x1c')](handleEntityNotFound(_0x3b40b6,null))['then'](removeEntity(_0x3b40b6,null))[_0x29e1('0x1c')](function(){if(_0x1cffe6){return db[_0x29e1('0x24')][_0x29e1('0x41')]({'where':{'type':_0x1cffe6[_0x29e1('0x39')]},'raw':!![]});}})[_0x29e1('0x1c')](function(_0x4d0966){if(_0x1cffe6[_0x29e1('0x39')][_0x29e1('0x50')]()==_0x29e1('0x51')){var _0x316538=fs[_0x29e1('0x42')](path['join'](config[_0x29e1('0x43')],'server/files/templates/stun_multiple.ejs'),_0x29e1('0x45'));var _0x19c1c2=ejs[_0x29e1('0x46')](_0x316538,{'networks':_0x4d0966||[]});fs[_0x29e1('0x47')](_0x29e1('0x48'),_0x19c1c2);return respondWithRpcPromise('Reload',_0x29e1('0x1d'),{'module':'res_stun_monitor.so'});}else if(_0x1cffe6['type']['toUpperCase']()==_0x29e1('0x54')){var _0x1c75c0=fs[_0x29e1('0x42')](path[_0x29e1('0x4b')](config[_0x29e1('0x43')],_0x29e1('0x52')),_0x29e1('0x45'));var _0x5c39ed=ejs[_0x29e1('0x46')](_0x1c75c0,{'networks':_0x4d0966||[]});fs[_0x29e1('0x47')](_0x29e1('0x4c'),_0x5c39ed);return respondWithRpcPromise(_0x29e1('0x49'),_0x29e1('0x1d'),{'module':_0x29e1('0x4a')});}else{var _0x151daf=fs[_0x29e1('0x42')](path[_0x29e1('0x4b')](config[_0x29e1('0x43')],'server/files/templates/network.ejs'),_0x29e1('0x45'));var _0x3662f9=ejs['render'](_0x151daf,{'networks':_0x4d0966||[]});fs['writeFileSync'](util['format'](_0x29e1('0x4f'),_0x1cffe6['type'][_0x29e1('0x55')]()),_0x3662f9);return respondWithRpcPromise('Reload',_0x29e1('0x1d'),{'module':_0x29e1('0x53')});}})[_0x29e1('0x12')](handleError(_0x3b40b6,null));};