Built motion from commit d1eab355.|2.6.28
[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 _0xded6=['info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','undefined','limit','count','status','set','Content-Range','update','end','sendStatus','stack','name','send','rawAttributes','fieldName','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','offset','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','Network','findAll','rows','params','create','body','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','/etc/asterisk/turn_xcally.conf','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','server/files/templates/network.ejs','chan_sip.so','find','destroy','util','path','ejs','../../components/parsers/qs','api','../../config/environment','../../mysqldb','jayson/promise','client','request','then'];(function(_0x20f8cf,_0x1681d8){var _0x827120=function(_0x300c20){while(--_0x300c20){_0x20f8cf['push'](_0x20f8cf['shift']());}};_0x827120(++_0x1681d8);}(_0xded6,0xa1));var _0x6ded=function(_0x3434c8,_0x38ee08){_0x3434c8=_0x3434c8-0x0;var _0x2f421e=_0xded6[_0x3434c8];return _0x2f421e;};'use strict';var util=require(_0x6ded('0x0'));var path=require(_0x6ded('0x1'));var ejs=require(_0x6ded('0x2'));var fs=require('fs');var _=require('lodash');var qs=require(_0x6ded('0x3'));var logger=require('../../config/logger')(_0x6ded('0x4'));var config=require(_0x6ded('0x5'));var db=require(_0x6ded('0x6'))['db'];var jayson=require(_0x6ded('0x7'));var client=jayson[_0x6ded('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x48a326,_0x5d1cd9,_0x1e4f81,_0x11a972){return new Promise(function(_0x11d101,_0x157dfb){var _0x928a5d=_0x11a972||client;return _0x928a5d[_0x6ded('0x9')](_0x48a326,_0x1e4f81)[_0x6ded('0xa')](function(_0x408a0a){logger[_0x6ded('0xb')](_0x6ded('0xc'),_0x5d1cd9,_0x6ded('0xd'));logger[_0x6ded('0xe')]('Network,\x20%s,\x20%s,\x20%s',_0x5d1cd9,_0x6ded('0xd'),JSON[_0x6ded('0xf')](_0x408a0a));if(_0x408a0a[_0x6ded('0x10')]){if(_0x408a0a['error'][_0x6ded('0x11')]===0x1f4){logger[_0x6ded('0x10')]('Network,\x20%s,\x20%s',_0x5d1cd9,_0x408a0a[_0x6ded('0x10')]['message']);return _0x157dfb(_0x408a0a[_0x6ded('0x10')][_0x6ded('0x12')]);}logger['error']('Network,\x20%s,\x20%s',_0x5d1cd9,_0x408a0a[_0x6ded('0x10')][_0x6ded('0x12')]);return _0x11d101(_0x408a0a[_0x6ded('0x10')][_0x6ded('0x12')]);}else{logger['info'](_0x6ded('0xc'),_0x5d1cd9,_0x6ded('0xd'));_0x11d101(_0x408a0a[_0x6ded('0x13')][_0x6ded('0x12')]);}})[_0x6ded('0x14')](function(_0x468554){logger[_0x6ded('0x10')]('Network,\x20%s,\x20%s',_0x5d1cd9,_0x468554);_0x157dfb(_0x468554);});});}function respondWithResult(_0x2dfc23,_0x5bc747){_0x5bc747=_0x5bc747||0xc8;return function(_0x328cdd){if(_0x328cdd){return _0x2dfc23['status'](_0x5bc747)['json'](_0x328cdd);}};}function respondWithFilteredResult(_0x3e75ac,_0x442969){return function(_0x183b3d){if(_0x183b3d){var _0x52ff93=typeof _0x442969['offset']===_0x6ded('0x15')&&typeof _0x442969[_0x6ded('0x16')]===_0x6ded('0x15');var _0x2aa133=_0x183b3d[_0x6ded('0x17')];var _0x22c521=_0x52ff93?0x0:_0x442969['offset'];var _0x496f2c=_0x52ff93?_0x183b3d['count']:_0x442969['offset']+_0x442969['limit'];var _0x1be0d0;if(_0x496f2c>=_0x2aa133){_0x496f2c=_0x2aa133;_0x1be0d0=0xc8;}else{_0x1be0d0=0xce;}_0x3e75ac[_0x6ded('0x18')](_0x1be0d0);return _0x3e75ac[_0x6ded('0x19')](_0x6ded('0x1a'),_0x22c521+'-'+_0x496f2c+'/'+_0x2aa133)['json'](_0x183b3d);}return null;};}function saveUpdates(_0x202671){return function(_0x624abc){if(_0x624abc){return _0x624abc[_0x6ded('0x1b')](_0x202671)[_0x6ded('0xa')](function(_0x2e9819){return _0x2e9819;});}return null;};}function removeEntity(_0xa33f16){return function(_0x1f13d0){if(_0x1f13d0){return _0x1f13d0['destroy']()[_0x6ded('0xa')](function(){_0xa33f16[_0x6ded('0x18')](0xcc)[_0x6ded('0x1c')]();});}};}function handleEntityNotFound(_0x24ead2){return function(_0x3a7cdd){if(!_0x3a7cdd){_0x24ead2[_0x6ded('0x1d')](0x194);}return _0x3a7cdd;};}function handleError(_0x28d67c,_0x4cc374){_0x4cc374=_0x4cc374||0x1f4;return function(_0x4515e5){logger[_0x6ded('0x10')](_0x4515e5[_0x6ded('0x1e')]);if(_0x4515e5[_0x6ded('0x1f')]){delete _0x4515e5[_0x6ded('0x1f')];}_0x28d67c['status'](_0x4cc374)[_0x6ded('0x20')](_0x4515e5);};}exports['index']=function(_0x560f7f,_0x33e4bf){var _0x4032c4={},_0x22d05f={},_0x4e7296={'count':0x0,'rows':[]};var _0x11f720=_['map'](db['Network'][_0x6ded('0x21')],function(_0x13bb9a){return{'name':_0x13bb9a[_0x6ded('0x22')],'type':_0x13bb9a['type'][_0x6ded('0x23')]};});_0x22d05f[_0x6ded('0x24')]=_[_0x6ded('0x25')](_0x11f720,'name');_0x22d05f[_0x6ded('0x26')]=_[_0x6ded('0x27')](_0x560f7f[_0x6ded('0x26')]);_0x22d05f[_0x6ded('0x28')]=_['intersection'](_0x22d05f[_0x6ded('0x24')],_0x22d05f['query']);_0x4032c4[_0x6ded('0x29')]=_[_0x6ded('0x2a')](_0x22d05f[_0x6ded('0x24')],qs[_0x6ded('0x2b')](_0x560f7f[_0x6ded('0x26')][_0x6ded('0x2b')]));_0x4032c4['attributes']=_0x4032c4[_0x6ded('0x29')][_0x6ded('0x2c')]?_0x4032c4['attributes']:_0x22d05f[_0x6ded('0x24')];if(!_0x560f7f[_0x6ded('0x26')][_0x6ded('0x2d')]('nolimit')){_0x4032c4[_0x6ded('0x16')]=qs[_0x6ded('0x16')](_0x560f7f[_0x6ded('0x26')][_0x6ded('0x16')]);_0x4032c4[_0x6ded('0x2e')]=qs[_0x6ded('0x2e')](_0x560f7f[_0x6ded('0x26')][_0x6ded('0x2e')]);}_0x4032c4[_0x6ded('0x2f')]=qs[_0x6ded('0x30')](_0x560f7f[_0x6ded('0x26')]['sort']);_0x4032c4[_0x6ded('0x31')]=qs[_0x6ded('0x28')](_[_0x6ded('0x32')](_0x560f7f[_0x6ded('0x26')],_0x22d05f[_0x6ded('0x28')]),_0x11f720);if(_0x560f7f['query'][_0x6ded('0x33')]){_0x4032c4[_0x6ded('0x31')]=_[_0x6ded('0x34')](_0x4032c4['where'],{'$or':_[_0x6ded('0x25')](_0x11f720,function(_0x55382b){if(_0x55382b[_0x6ded('0x35')]!==_0x6ded('0x36')){var _0x3e857b={};_0x3e857b[_0x55382b[_0x6ded('0x1f')]]={'$like':'%'+_0x560f7f[_0x6ded('0x26')][_0x6ded('0x33')]+'%'};return _0x3e857b;}})});}_0x4032c4=_['merge']({},_0x4032c4,_0x560f7f[_0x6ded('0x37')]);var _0x4ea909={'where':_0x4032c4[_0x6ded('0x31')]};return db['Network'][_0x6ded('0x17')](_0x4ea909)[_0x6ded('0xa')](function(_0x47dd26){_0x4e7296[_0x6ded('0x17')]=_0x47dd26;if(_0x560f7f[_0x6ded('0x26')][_0x6ded('0x38')]){_0x4032c4[_0x6ded('0x39')]=[{'all':!![]}];}return db[_0x6ded('0x3a')][_0x6ded('0x3b')](_0x4032c4);})[_0x6ded('0xa')](function(_0x4e9e4e){_0x4e7296[_0x6ded('0x3c')]=_0x4e9e4e;return _0x4e7296;})[_0x6ded('0xa')](respondWithFilteredResult(_0x33e4bf,_0x4032c4))['catch'](handleError(_0x33e4bf,null));};exports['show']=function(_0x1549d9,_0x2e8b9c){var _0x8e9987={'raw':!![],'where':{'id':_0x1549d9[_0x6ded('0x3d')]['id']}},_0x3403c8={};_0x3403c8['model']=_[_0x6ded('0x27')](db[_0x6ded('0x3a')][_0x6ded('0x21')]);_0x3403c8['query']=_['keys'](_0x1549d9[_0x6ded('0x26')]);_0x3403c8[_0x6ded('0x28')]=_[_0x6ded('0x2a')](_0x3403c8[_0x6ded('0x24')],_0x3403c8['query']);_0x8e9987[_0x6ded('0x29')]=_[_0x6ded('0x2a')](_0x3403c8[_0x6ded('0x24')],qs[_0x6ded('0x2b')](_0x1549d9[_0x6ded('0x26')]['fields']));_0x8e9987[_0x6ded('0x29')]=_0x8e9987['attributes'][_0x6ded('0x2c')]?_0x8e9987['attributes']:_0x3403c8['model'];if(_0x1549d9[_0x6ded('0x26')]['includeAll']){_0x8e9987[_0x6ded('0x39')]=[{'all':!![]}];}_0x8e9987=_[_0x6ded('0x34')]({},_0x8e9987,_0x1549d9['options']);return db[_0x6ded('0x3a')]['find'](_0x8e9987)['then'](handleEntityNotFound(_0x2e8b9c,null))[_0x6ded('0xa')](respondWithResult(_0x2e8b9c,null))[_0x6ded('0x14')](handleError(_0x2e8b9c,null));};exports[_0x6ded('0x3e')]=function(_0x54fb81,_0x223584){var _0x547e2a;return db[_0x6ded('0x3a')]['create'](_0x54fb81['body'],{'raw':!![]})['then'](function(_0x29ffbf){_0x547e2a=_0x29ffbf;return db[_0x6ded('0x3a')][_0x6ded('0x3b')]({'where':{'type':_0x54fb81[_0x6ded('0x3f')][_0x6ded('0x35')]},'raw':!![]});})['then'](function(_0x9d13f5){if(_0x547e2a[_0x6ded('0x35')][_0x6ded('0x40')]()==_0x6ded('0x41')){var _0xd36d5c=fs[_0x6ded('0x42')](path[_0x6ded('0x43')](config[_0x6ded('0x44')],_0x6ded('0x45')),_0x6ded('0x46'));var _0x234e2c=ejs[_0x6ded('0x47')](_0xd36d5c,{'networks':_0x9d13f5||[]});fs[_0x6ded('0x48')](_0x6ded('0x49'),_0x234e2c);return respondWithRpcPromise(_0x6ded('0x4a'),'create',{'module':'res_stun_monitor.so'});}else if(_0x547e2a[_0x6ded('0x35')]['toUpperCase']()=='TURN'){var _0x5c4e3b=fs[_0x6ded('0x42')](path[_0x6ded('0x43')](config[_0x6ded('0x44')],'server/files/templates/turn_multiple.ejs'),_0x6ded('0x46'));var _0x5361e7=ejs[_0x6ded('0x47')](_0x5c4e3b,{'networks':_0x9d13f5||[]});fs[_0x6ded('0x48')](_0x6ded('0x4b'),_0x5361e7);return respondWithRpcPromise('Reload',_0x6ded('0x3e'),{'module':'res_stun_monitor.so'});}else{var _0x353d0a=fs['readFileSync'](path['join'](config[_0x6ded('0x44')],'server/files/templates/network.ejs'),_0x6ded('0x46'));var _0x4154a6=ejs[_0x6ded('0x47')](_0x353d0a,{'networks':_0x9d13f5||[]});fs[_0x6ded('0x48')](util[_0x6ded('0x4c')](_0x6ded('0x4d'),_0x54fb81[_0x6ded('0x3f')][_0x6ded('0x35')][_0x6ded('0x4e')]()),_0x4154a6);return respondWithRpcPromise('Reload',_0x6ded('0x3e'),{'module':'chan_sip.so'});}})[_0x6ded('0xa')](function(){return _0x547e2a;})[_0x6ded('0xa')](respondWithResult(_0x223584,0xc9))[_0x6ded('0x14')](handleError(_0x223584,null));};exports[_0x6ded('0x1b')]=function(_0x5bae68,_0x4a132a){var _0x3fa69d;return db[_0x6ded('0x3a')]['find']({'where':{'id':_0x5bae68[_0x6ded('0x3d')]['id']}})[_0x6ded('0xa')](handleEntityNotFound(_0x4a132a,null))[_0x6ded('0xa')](saveUpdates(_0x5bae68[_0x6ded('0x3f')],null))[_0x6ded('0xa')](function(_0x4143d8){if(_0x4143d8){_0x3fa69d=_0x4143d8;return db[_0x6ded('0x3a')][_0x6ded('0x3b')]({'where':{'type':_0x3fa69d[_0x6ded('0x35')]},'raw':!![]});}return null;})[_0x6ded('0xa')](function(_0x58d8bf){if(_0x3fa69d[_0x6ded('0x35')][_0x6ded('0x40')]()==_0x6ded('0x41')){var _0x58af12=fs[_0x6ded('0x42')](path[_0x6ded('0x43')](config[_0x6ded('0x44')],_0x6ded('0x45')),_0x6ded('0x46'));var _0x311e09=ejs[_0x6ded('0x47')](_0x58af12,{'networks':_0x58d8bf||[]});fs[_0x6ded('0x48')]('/etc/asterisk/stun_xcally.conf',_0x311e09);return respondWithRpcPromise('Reload',_0x6ded('0x1b'),{'module':_0x6ded('0x4f')});}else if(_0x3fa69d['type'][_0x6ded('0x40')]()==_0x6ded('0x50')){var _0x66137=fs[_0x6ded('0x42')](path[_0x6ded('0x43')](config[_0x6ded('0x44')],_0x6ded('0x51')),_0x6ded('0x46'));var _0x2a1941=ejs[_0x6ded('0x47')](_0x66137,{'networks':_0x58d8bf||[]});fs['writeFileSync'](_0x6ded('0x4b'),_0x2a1941);return respondWithRpcPromise('Reload',_0x6ded('0x1b'),{'module':_0x6ded('0x4f')});}else{var _0x554c72=fs[_0x6ded('0x42')](path['join'](config[_0x6ded('0x44')],_0x6ded('0x52')),'utf8');var _0x5f229d=ejs[_0x6ded('0x47')](_0x554c72,{'networks':_0x58d8bf||[]});fs[_0x6ded('0x48')](util['format'](_0x6ded('0x4d'),_0x5bae68['body']['type'][_0x6ded('0x4e')]()),_0x5f229d);return respondWithRpcPromise(_0x6ded('0x4a'),_0x6ded('0x1b'),{'module':_0x6ded('0x53')});}})[_0x6ded('0xa')](function(_0x5a60d8){if(_0x5a60d8){return _0x3fa69d;}return null;})[_0x6ded('0xa')](respondWithResult(_0x4a132a,null))[_0x6ded('0x14')](handleError(_0x4a132a,null));};exports['destroy']=function(_0x2acb2d,_0x420e0c){var _0x139712;return db['Network'][_0x6ded('0x54')]({'where':{'id':_0x2acb2d[_0x6ded('0x3d')]['id']}})['then'](function(_0x1d22eb){_0x139712=_0x1d22eb;return _0x1d22eb;})[_0x6ded('0xa')](handleEntityNotFound(_0x420e0c,null))[_0x6ded('0xa')](removeEntity(_0x420e0c,null))[_0x6ded('0xa')](function(){if(_0x139712){return db[_0x6ded('0x3a')]['findAll']({'where':{'type':_0x139712['type']},'raw':!![]});}})[_0x6ded('0xa')](function(_0x369dc3){if(_0x139712[_0x6ded('0x35')][_0x6ded('0x40')]()==_0x6ded('0x41')){var _0x349f22=fs[_0x6ded('0x42')](path[_0x6ded('0x43')](config[_0x6ded('0x44')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x39a04=ejs[_0x6ded('0x47')](_0x349f22,{'networks':_0x369dc3||[]});fs[_0x6ded('0x48')]('/etc/asterisk/stun_xcally.conf',_0x39a04);return respondWithRpcPromise('Reload',_0x6ded('0x55'),{'module':_0x6ded('0x4f')});}else if(_0x139712[_0x6ded('0x35')][_0x6ded('0x40')]()==_0x6ded('0x50')){var _0x564938=fs['readFileSync'](path[_0x6ded('0x43')](config['root'],_0x6ded('0x51')),_0x6ded('0x46'));var _0x5d0070=ejs[_0x6ded('0x47')](_0x564938,{'networks':_0x369dc3||[]});fs['writeFileSync'](_0x6ded('0x4b'),_0x5d0070);return respondWithRpcPromise(_0x6ded('0x4a'),'destroy',{'module':_0x6ded('0x4f')});}else{var _0x271d55=fs[_0x6ded('0x42')](path[_0x6ded('0x43')](config['root'],_0x6ded('0x52')),_0x6ded('0x46'));var _0x251174=ejs['render'](_0x271d55,{'networks':_0x369dc3||[]});fs[_0x6ded('0x48')](util[_0x6ded('0x4c')](_0x6ded('0x4d'),_0x139712[_0x6ded('0x35')][_0x6ded('0x4e')]()),_0x251174);return respondWithRpcPromise(_0x6ded('0x4a'),'destroy',{'module':'chan_sip.so'});}})['catch'](handleError(_0x420e0c,null));};