038e9c2117cc19e051cac12b6ef96cacddd76514
[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 _0x0006=['params','update','TURN','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','destroy','util','path','ejs','lodash','../../components/parsers/qs','../../config/logger','api','../../mysqldb','jayson/promise','client','http','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','error','message','result','catch','status','json','offset','undefined','limit','count','set','Content-Range','then','end','sendStatus','stack','name','send','map','Network','rawAttributes','fieldName','key','query','keys','intersection','attributes','fields','model','hasOwnProperty','order','sort','where','filters','pick','filter','type','VIRTUAL','merge','options','includeAll','findAll','rows','show','include','create','body','toUpperCase','STUN','server/files/templates/stun_multiple.ejs','utf8','render','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','readFileSync','join','root','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','Reload','format','chan_sip.so','find'];(function(_0x1a7253,_0x28fd20){var _0x1fc611=function(_0x340443){while(--_0x340443){_0x1a7253['push'](_0x1a7253['shift']());}};_0x1fc611(++_0x28fd20);}(_0x0006,0x1ba));var _0x6000=function(_0x408ad0,_0x212b64){_0x408ad0=_0x408ad0-0x0;var _0x15077b=_0x0006[_0x408ad0];return _0x15077b;};'use strict';var util=require(_0x6000('0x0'));var path=require(_0x6000('0x1'));var ejs=require(_0x6000('0x2'));var fs=require('fs');var _=require(_0x6000('0x3'));var qs=require(_0x6000('0x4'));var logger=require(_0x6000('0x5'))(_0x6000('0x6'));var config=require('../../config/environment');var db=require(_0x6000('0x7'))['db'];var jayson=require(_0x6000('0x8'));var client=jayson[_0x6000('0x9')][_0x6000('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5843d5,_0x1e9881,_0x5c0a2e,_0x400947){return new Promise(function(_0x50f8ff,_0x4c86e6){var _0x7e07a3=_0x400947||client;return _0x7e07a3['request'](_0x5843d5,_0x5c0a2e)['then'](function(_0x4eaf8a){logger[_0x6000('0xb')](_0x6000('0xc'),_0x1e9881,_0x6000('0xd'));logger[_0x6000('0xe')](_0x6000('0xf'),_0x1e9881,_0x6000('0xd'),JSON['stringify'](_0x4eaf8a));if(_0x4eaf8a['error']){if(_0x4eaf8a['error']['code']===0x1f4){logger[_0x6000('0x10')](_0x6000('0xc'),_0x1e9881,_0x4eaf8a[_0x6000('0x10')][_0x6000('0x11')]);return _0x4c86e6(_0x4eaf8a[_0x6000('0x10')]['message']);}logger[_0x6000('0x10')](_0x6000('0xc'),_0x1e9881,_0x4eaf8a[_0x6000('0x10')][_0x6000('0x11')]);return _0x50f8ff(_0x4eaf8a[_0x6000('0x10')][_0x6000('0x11')]);}else{logger[_0x6000('0xb')](_0x6000('0xc'),_0x1e9881,_0x6000('0xd'));_0x50f8ff(_0x4eaf8a[_0x6000('0x12')][_0x6000('0x11')]);}})[_0x6000('0x13')](function(_0x321607){logger[_0x6000('0x10')](_0x6000('0xc'),_0x1e9881,_0x321607);_0x4c86e6(_0x321607);});});}function respondWithResult(_0x4e8792,_0x2ab44b){_0x2ab44b=_0x2ab44b||0xc8;return function(_0xdf8bab){if(_0xdf8bab){return _0x4e8792[_0x6000('0x14')](_0x2ab44b)[_0x6000('0x15')](_0xdf8bab);}};}function respondWithFilteredResult(_0x34f6fa,_0x34a53c){return function(_0x2f691f){if(_0x2f691f){var _0xdf4e2e=typeof _0x34a53c[_0x6000('0x16')]===_0x6000('0x17')&&typeof _0x34a53c[_0x6000('0x18')]==='undefined';var _0x47e36e=_0x2f691f[_0x6000('0x19')];var _0x360c8b=_0xdf4e2e?0x0:_0x34a53c[_0x6000('0x16')];var _0x15c466=_0xdf4e2e?_0x2f691f[_0x6000('0x19')]:_0x34a53c[_0x6000('0x16')]+_0x34a53c['limit'];var _0x179907;if(_0x15c466>=_0x47e36e){_0x15c466=_0x47e36e;_0x179907=0xc8;}else{_0x179907=0xce;}_0x34f6fa[_0x6000('0x14')](_0x179907);return _0x34f6fa[_0x6000('0x1a')](_0x6000('0x1b'),_0x360c8b+'-'+_0x15c466+'/'+_0x47e36e)[_0x6000('0x15')](_0x2f691f);}return null;};}function saveUpdates(_0x11c948){return function(_0x3cae4d){if(_0x3cae4d){return _0x3cae4d['update'](_0x11c948)[_0x6000('0x1c')](function(_0x10d1e8){return _0x10d1e8;});}return null;};}function removeEntity(_0x24df64){return function(_0x2d82d5){if(_0x2d82d5){return _0x2d82d5['destroy']()[_0x6000('0x1c')](function(){_0x24df64[_0x6000('0x14')](0xcc)[_0x6000('0x1d')]();});}};}function handleEntityNotFound(_0x4a2ddd){return function(_0x70be4a){if(!_0x70be4a){_0x4a2ddd[_0x6000('0x1e')](0x194);}return _0x70be4a;};}function handleError(_0x38cb1b,_0x1d42c8){_0x1d42c8=_0x1d42c8||0x1f4;return function(_0x519de4){logger[_0x6000('0x10')](_0x519de4[_0x6000('0x1f')]);if(_0x519de4[_0x6000('0x20')]){delete _0x519de4[_0x6000('0x20')];}_0x38cb1b[_0x6000('0x14')](_0x1d42c8)[_0x6000('0x21')](_0x519de4);};}exports['index']=function(_0x2edf05,_0x1319e){var _0xfca66b={},_0x26bd82={},_0x52a4c8={'count':0x0,'rows':[]};var _0x5816c4=_[_0x6000('0x22')](db[_0x6000('0x23')][_0x6000('0x24')],function(_0x27b67e){return{'name':_0x27b67e[_0x6000('0x25')],'type':_0x27b67e['type'][_0x6000('0x26')]};});_0x26bd82['model']=_[_0x6000('0x22')](_0x5816c4,_0x6000('0x20'));_0x26bd82[_0x6000('0x27')]=_[_0x6000('0x28')](_0x2edf05[_0x6000('0x27')]);_0x26bd82['filters']=_[_0x6000('0x29')](_0x26bd82['model'],_0x26bd82[_0x6000('0x27')]);_0xfca66b[_0x6000('0x2a')]=_[_0x6000('0x29')](_0x26bd82['model'],qs[_0x6000('0x2b')](_0x2edf05[_0x6000('0x27')][_0x6000('0x2b')]));_0xfca66b[_0x6000('0x2a')]=_0xfca66b[_0x6000('0x2a')]['length']?_0xfca66b[_0x6000('0x2a')]:_0x26bd82[_0x6000('0x2c')];if(!_0x2edf05['query'][_0x6000('0x2d')]('nolimit')){_0xfca66b[_0x6000('0x18')]=qs[_0x6000('0x18')](_0x2edf05[_0x6000('0x27')][_0x6000('0x18')]);_0xfca66b['offset']=qs[_0x6000('0x16')](_0x2edf05['query'][_0x6000('0x16')]);}_0xfca66b[_0x6000('0x2e')]=qs[_0x6000('0x2f')](_0x2edf05[_0x6000('0x27')][_0x6000('0x2f')]);_0xfca66b[_0x6000('0x30')]=qs[_0x6000('0x31')](_[_0x6000('0x32')](_0x2edf05['query'],_0x26bd82[_0x6000('0x31')]),_0x5816c4);if(_0x2edf05[_0x6000('0x27')][_0x6000('0x33')]){_0xfca66b[_0x6000('0x30')]=_['merge'](_0xfca66b[_0x6000('0x30')],{'$or':_[_0x6000('0x22')](_0x5816c4,function(_0x3493e3){if(_0x3493e3[_0x6000('0x34')]!==_0x6000('0x35')){var _0xa11d32={};_0xa11d32[_0x3493e3[_0x6000('0x20')]]={'$like':'%'+_0x2edf05[_0x6000('0x27')][_0x6000('0x33')]+'%'};return _0xa11d32;}})});}_0xfca66b=_[_0x6000('0x36')]({},_0xfca66b,_0x2edf05[_0x6000('0x37')]);var _0x37b49f={'where':_0xfca66b[_0x6000('0x30')]};return db[_0x6000('0x23')]['count'](_0x37b49f)['then'](function(_0x5a2d30){_0x52a4c8[_0x6000('0x19')]=_0x5a2d30;if(_0x2edf05[_0x6000('0x27')][_0x6000('0x38')]){_0xfca66b['include']=[{'all':!![]}];}return db['Network'][_0x6000('0x39')](_0xfca66b);})[_0x6000('0x1c')](function(_0x5ea306){_0x52a4c8[_0x6000('0x3a')]=_0x5ea306;return _0x52a4c8;})[_0x6000('0x1c')](respondWithFilteredResult(_0x1319e,_0xfca66b))[_0x6000('0x13')](handleError(_0x1319e,null));};exports[_0x6000('0x3b')]=function(_0x36d42c,_0x32deea){var _0x284c8f={'raw':!![],'where':{'id':_0x36d42c['params']['id']}},_0x5e4380={};_0x5e4380[_0x6000('0x2c')]=_[_0x6000('0x28')](db[_0x6000('0x23')][_0x6000('0x24')]);_0x5e4380['query']=_['keys'](_0x36d42c[_0x6000('0x27')]);_0x5e4380['filters']=_[_0x6000('0x29')](_0x5e4380[_0x6000('0x2c')],_0x5e4380[_0x6000('0x27')]);_0x284c8f[_0x6000('0x2a')]=_['intersection'](_0x5e4380[_0x6000('0x2c')],qs[_0x6000('0x2b')](_0x36d42c[_0x6000('0x27')]['fields']));_0x284c8f[_0x6000('0x2a')]=_0x284c8f[_0x6000('0x2a')]['length']?_0x284c8f[_0x6000('0x2a')]:_0x5e4380[_0x6000('0x2c')];if(_0x36d42c['query'][_0x6000('0x38')]){_0x284c8f[_0x6000('0x3c')]=[{'all':!![]}];}_0x284c8f=_[_0x6000('0x36')]({},_0x284c8f,_0x36d42c[_0x6000('0x37')]);return db['Network']['find'](_0x284c8f)[_0x6000('0x1c')](handleEntityNotFound(_0x32deea,null))['then'](respondWithResult(_0x32deea,null))['catch'](handleError(_0x32deea,null));};exports['create']=function(_0x2bc9f9,_0x2407db){var _0x154251;return db['Network'][_0x6000('0x3d')](_0x2bc9f9[_0x6000('0x3e')],{'raw':!![]})[_0x6000('0x1c')](function(_0x2cdfa8){_0x154251=_0x2cdfa8;return db[_0x6000('0x23')]['findAll']({'where':{'type':_0x2bc9f9['body']['type']},'raw':!![]});})[_0x6000('0x1c')](function(_0x328318){if(_0x154251[_0x6000('0x34')][_0x6000('0x3f')]()==_0x6000('0x40')){var _0x3eaec3=fs['readFileSync'](path['join'](config['root'],_0x6000('0x41')),_0x6000('0x42'));var _0x278f99=ejs[_0x6000('0x43')](_0x3eaec3,{'networks':_0x328318||[]});fs['writeFileSync'](_0x6000('0x44'),_0x278f99);return respondWithRpcPromise('Reload',_0x6000('0x3d'),{'module':_0x6000('0x45')});}else if(_0x154251['type'][_0x6000('0x3f')]()=='TURN'){var _0x31d6b8=fs[_0x6000('0x46')](path[_0x6000('0x47')](config[_0x6000('0x48')],_0x6000('0x49')),'utf8');var _0x4283b4=ejs[_0x6000('0x43')](_0x31d6b8,{'networks':_0x328318||[]});fs[_0x6000('0x4a')](_0x6000('0x4b'),_0x4283b4);return respondWithRpcPromise(_0x6000('0x4c'),_0x6000('0x3d'),{'module':_0x6000('0x45')});}else{var _0x26dfff=fs[_0x6000('0x46')](path['join'](config[_0x6000('0x48')],'server/files/templates/network.ejs'),_0x6000('0x42'));var _0x263326=ejs[_0x6000('0x43')](_0x26dfff,{'networks':_0x328318||[]});fs['writeFileSync'](util[_0x6000('0x4d')]('/etc/asterisk/sip_xcally_%s.conf',_0x2bc9f9['body'][_0x6000('0x34')]['toLowerCase']()),_0x263326);return respondWithRpcPromise(_0x6000('0x4c'),_0x6000('0x3d'),{'module':_0x6000('0x4e')});}})[_0x6000('0x1c')](function(){return _0x154251;})[_0x6000('0x1c')](respondWithResult(_0x2407db,0xc9))[_0x6000('0x13')](handleError(_0x2407db,null));};exports['update']=function(_0x1b3081,_0x40d26d){var _0x1f709c;return db[_0x6000('0x23')][_0x6000('0x4f')]({'where':{'id':_0x1b3081[_0x6000('0x50')]['id']}})[_0x6000('0x1c')](handleEntityNotFound(_0x40d26d,null))[_0x6000('0x1c')](saveUpdates(_0x1b3081[_0x6000('0x3e')],null))['then'](function(_0x46d59c){if(_0x46d59c){_0x1f709c=_0x46d59c;return db[_0x6000('0x23')][_0x6000('0x39')]({'where':{'type':_0x1f709c['type']},'raw':!![]});}return null;})[_0x6000('0x1c')](function(_0x2ab75c){if(_0x1f709c['type']['toUpperCase']()==_0x6000('0x40')){var _0x384f29=fs[_0x6000('0x46')](path[_0x6000('0x47')](config[_0x6000('0x48')],_0x6000('0x41')),_0x6000('0x42'));var _0x43fa3f=ejs[_0x6000('0x43')](_0x384f29,{'networks':_0x2ab75c||[]});fs[_0x6000('0x4a')]('/etc/asterisk/stun_xcally.conf',_0x43fa3f);return respondWithRpcPromise(_0x6000('0x4c'),_0x6000('0x51'),{'module':_0x6000('0x45')});}else if(_0x1f709c[_0x6000('0x34')][_0x6000('0x3f')]()==_0x6000('0x52')){var _0xb27197=fs[_0x6000('0x46')](path[_0x6000('0x47')](config['root'],_0x6000('0x49')),_0x6000('0x42'));var _0xc35222=ejs[_0x6000('0x43')](_0xb27197,{'networks':_0x2ab75c||[]});fs[_0x6000('0x4a')]('/etc/asterisk/turn_xcally.conf',_0xc35222);return respondWithRpcPromise(_0x6000('0x4c'),_0x6000('0x51'),{'module':_0x6000('0x45')});}else{var _0x112127=fs[_0x6000('0x46')](path['join'](config[_0x6000('0x48')],_0x6000('0x53')),_0x6000('0x42'));var _0x3435b6=ejs[_0x6000('0x43')](_0x112127,{'networks':_0x2ab75c||[]});fs[_0x6000('0x4a')](util[_0x6000('0x4d')](_0x6000('0x54'),_0x1b3081[_0x6000('0x3e')][_0x6000('0x34')][_0x6000('0x55')]()),_0x3435b6);return respondWithRpcPromise(_0x6000('0x4c'),'update',{'module':_0x6000('0x4e')});}})['then'](function(_0x501277){if(_0x501277){return _0x1f709c;}return null;})[_0x6000('0x1c')](respondWithResult(_0x40d26d,null))[_0x6000('0x13')](handleError(_0x40d26d,null));};exports[_0x6000('0x56')]=function(_0x40a569,_0x5bcdaa){var _0x538f85;return db[_0x6000('0x23')]['find']({'where':{'id':_0x40a569[_0x6000('0x50')]['id']}})[_0x6000('0x1c')](function(_0x75ede8){_0x538f85=_0x75ede8;return _0x75ede8;})[_0x6000('0x1c')](handleEntityNotFound(_0x5bcdaa,null))[_0x6000('0x1c')](removeEntity(_0x5bcdaa,null))[_0x6000('0x1c')](function(){if(_0x538f85){return db[_0x6000('0x23')][_0x6000('0x39')]({'where':{'type':_0x538f85[_0x6000('0x34')]},'raw':!![]});}})[_0x6000('0x1c')](function(_0x19ebdd){if(_0x538f85[_0x6000('0x34')]['toUpperCase']()==_0x6000('0x40')){var _0x507f3e=fs[_0x6000('0x46')](path[_0x6000('0x47')](config[_0x6000('0x48')],'server/files/templates/stun_multiple.ejs'),_0x6000('0x42'));var _0x4bc6a6=ejs[_0x6000('0x43')](_0x507f3e,{'networks':_0x19ebdd||[]});fs[_0x6000('0x4a')](_0x6000('0x44'),_0x4bc6a6);return respondWithRpcPromise(_0x6000('0x4c'),'destroy',{'module':_0x6000('0x45')});}else if(_0x538f85[_0x6000('0x34')][_0x6000('0x3f')]()=='TURN'){var _0x97c331=fs[_0x6000('0x46')](path['join'](config[_0x6000('0x48')],'server/files/templates/turn_multiple.ejs'),'utf8');var _0x1dde10=ejs[_0x6000('0x43')](_0x97c331,{'networks':_0x19ebdd||[]});fs[_0x6000('0x4a')](_0x6000('0x4b'),_0x1dde10);return respondWithRpcPromise(_0x6000('0x4c'),_0x6000('0x56'),{'module':_0x6000('0x45')});}else{var _0x4215da=fs[_0x6000('0x46')](path[_0x6000('0x47')](config[_0x6000('0x48')],_0x6000('0x53')),_0x6000('0x42'));var _0x517907=ejs[_0x6000('0x43')](_0x4215da,{'networks':_0x19ebdd||[]});fs[_0x6000('0x4a')](util[_0x6000('0x4d')](_0x6000('0x54'),_0x538f85[_0x6000('0x34')][_0x6000('0x55')]()),_0x517907);return respondWithRpcPromise(_0x6000('0x4c'),_0x6000('0x56'),{'module':_0x6000('0x4e')});}})[_0x6000('0x13')](handleError(_0x5bcdaa,null));};